如何处理屏幕阅读器的版本号?
How to handle version numbers for screen readers?
我正在使用 Windows 讲述人,像 2.3.96 这样的版本号被 reader 作为日期“1996 年 3 月 2 日”。如何处理屏幕 readers 的版本号?我看到一些建议使用标签并拼出点的答案,例如:aria-label="2 dot 3 dot 96"
。有更好的方法吗?
在 Whosebug 和其他地方已经有几个类似的问题,关于数字和其他没有按照页面作者预期发音的东西。
同样的答案适用于解释为日期的版本号:你最好什么都不做,不要写任何特殊的东西。
问题是数字的发音取决于很多层:
- 浏览器及其公开辅助功能树的方式。
- OS、屏幕reader及其设置。例如,Jaws 提供了许多选项,可以更改数字和日期的解释和读出方式。
- 使用的语音。同一个屏幕reader,同一个OS,同一个浏览器,不同的声音,读同一个文字确实可以有天壤之别。
您可以尝试多种方法,例如将其分隔为不同的 <span>
、添加或删除空格、通过 aria-label 写入 "dot" 等
但是,这样做很可能会改善某些用户的发音,同时降低大多数其他用户的发音。 OS、浏览器、屏幕 reader 和声音的组合太大,无法测试所有内容。
所以最好是保持务实,不要做任何特别的事情。保留您的版本号,因为它通常随处可见。
屏幕 reader 用户一般都习惯了这样的发音怪癖,必要时可以调整选项和设置词典。
简答
使用 <p aria-label="Version 2 point 3 point 96">Version 2.3.96</p>
,这将在最流行的屏幕 reader 中得到正确解析。确保没有 <spans>
从文本中拆分版本号,使用 aria-label
作为矫枉过正/备份。
长答案
通常我会建议 永远不要 干扰屏幕 reader 发音的方式,正如@QuentinC 所建议的那样。
但是在这种情况下我会说你确实想尝试解决这个问题,因为听到应该有版本号的日期可能会非常混乱(是编写软件的日期,还是公司成立的日期?谁知道呢!)。
这是屏幕中的一个解析问题 reader,与大多数人遇到的不喜欢某些内容的阅读方式的问题截然不同,请仅针对此示例遵循以下建议。
修复一个,更改标记。
你没有添加你的标记,但下面的解释是基于我的测试。
这个问题实际上会自行解决(至少在我测试的 JAW、NVDA 和 VoiceOver 中)只需在版本号前添加 'Version'。
我猜你的版本号格式类似于以下内容:
<p>Version <span>2.3.96</span></p>
或 <p>2.3.96</p>
没有 'version'.
通过删除第一个示例 JAWS 中的 <span>
,NVDA 和 VoiceOver 在我的测试中正确读取了以下内容:
<p>Version 2.3.96</p>
一旦在版本号周围添加了 <span>
,数字的上下文就会丢失(<span>
元素中的文本会自行评估),因此屏幕 reader 将尝试并在没有任何上下文的情况下自行解析它,并确定它是一个日期。
当然使用 aria-label
可以解决问题吗?
还有 aria-label
will probably not work on static elements(<div>
、<span>
等)没有 role
表明它们是活跃元素,所以很可能不会无论如何为你工作。
出于这个原因,我不建议尝试单独使用 aria-label
来解决这个问题,但是将它添加到考虑到它的屏幕 readers 是一个不会造成伤害的步骤.
这是我唯一一次建议干扰屏幕 reader 说话的方式,请不要将此作为解决其他发音问题的步骤,因为这是一个解析问题不是发音问题。
考虑到这一点,我建议您使用以下内容:
<span aria-label="Version 2 point 4 point 99">Version 2.4.99</span>
周围有 <span>
、<p>
或其他内容块。
我正在使用 Windows 讲述人,像 2.3.96 这样的版本号被 reader 作为日期“1996 年 3 月 2 日”。如何处理屏幕 readers 的版本号?我看到一些建议使用标签并拼出点的答案,例如:aria-label="2 dot 3 dot 96"
。有更好的方法吗?
在 Whosebug 和其他地方已经有几个类似的问题,关于数字和其他没有按照页面作者预期发音的东西。 同样的答案适用于解释为日期的版本号:你最好什么都不做,不要写任何特殊的东西。
问题是数字的发音取决于很多层:
- 浏览器及其公开辅助功能树的方式。
- OS、屏幕reader及其设置。例如,Jaws 提供了许多选项,可以更改数字和日期的解释和读出方式。
- 使用的语音。同一个屏幕reader,同一个OS,同一个浏览器,不同的声音,读同一个文字确实可以有天壤之别。
您可以尝试多种方法,例如将其分隔为不同的 <span>
、添加或删除空格、通过 aria-label 写入 "dot" 等
但是,这样做很可能会改善某些用户的发音,同时降低大多数其他用户的发音。 OS、浏览器、屏幕 reader 和声音的组合太大,无法测试所有内容。
所以最好是保持务实,不要做任何特别的事情。保留您的版本号,因为它通常随处可见。 屏幕 reader 用户一般都习惯了这样的发音怪癖,必要时可以调整选项和设置词典。
简答
使用 <p aria-label="Version 2 point 3 point 96">Version 2.3.96</p>
,这将在最流行的屏幕 reader 中得到正确解析。确保没有 <spans>
从文本中拆分版本号,使用 aria-label
作为矫枉过正/备份。
长答案
通常我会建议 永远不要 干扰屏幕 reader 发音的方式,正如@QuentinC 所建议的那样。
但是在这种情况下我会说你确实想尝试解决这个问题,因为听到应该有版本号的日期可能会非常混乱(是编写软件的日期,还是公司成立的日期?谁知道呢!)。
这是屏幕中的一个解析问题 reader,与大多数人遇到的不喜欢某些内容的阅读方式的问题截然不同,请仅针对此示例遵循以下建议。
修复一个,更改标记。
你没有添加你的标记,但下面的解释是基于我的测试。
这个问题实际上会自行解决(至少在我测试的 JAW、NVDA 和 VoiceOver 中)只需在版本号前添加 'Version'。
我猜你的版本号格式类似于以下内容:
<p>Version <span>2.3.96</span></p>
或 <p>2.3.96</p>
没有 'version'.
通过删除第一个示例 JAWS 中的 <span>
,NVDA 和 VoiceOver 在我的测试中正确读取了以下内容:
<p>Version 2.3.96</p>
一旦在版本号周围添加了 <span>
,数字的上下文就会丢失(<span>
元素中的文本会自行评估),因此屏幕 reader 将尝试并在没有任何上下文的情况下自行解析它,并确定它是一个日期。
当然使用 aria-label
可以解决问题吗?
还有 aria-label
will probably not work on static elements(<div>
、<span>
等)没有 role
表明它们是活跃元素,所以很可能不会无论如何为你工作。
出于这个原因,我不建议尝试单独使用 aria-label
来解决这个问题,但是将它添加到考虑到它的屏幕 readers 是一个不会造成伤害的步骤.
这是我唯一一次建议干扰屏幕 reader 说话的方式,请不要将此作为解决其他发音问题的步骤,因为这是一个解析问题不是发音问题。
考虑到这一点,我建议您使用以下内容:
<span aria-label="Version 2 point 4 point 99">Version 2.4.99</span>
周围有 <span>
、<p>
或其他内容块。