我使用的是Windows"讲述人",像2.3.96这样的版本号作为日期"1996年3月2日"。如何处理屏幕阅读器的版本号?我看到一些建议使用标签并拼写出点的答案,比如:aria-label="2 dot 3 dot 96"
。有更好的方法吗?
在stackoverflow和其他地方已经有几个类似的问题,关于数字和其他没有像页面作者所期望的那样发音的东西。同样的答案也适用于被解释为日期的版本号:你最好什么都不做,写出来没有任何特别的东西。
问题是数字的发音取决于许多层:
- 浏览器及其公开辅助功能树的方法
- 操作系统、屏幕阅读器及其设置。例如,Jaws提供了许多选项,可以改变数字和日期的解释和说出方式
- 使用的声音。相同的屏幕阅读器,在相同的操作系统上,使用相同的浏览器,但使用不同的声音,确实可以以非常不同的方式阅读相同的文本
你可以尝试几种方法,比如在不同的<span>
中分离,添加或删除空格,通过咏叹调标签写"点",等等。
然而,通过这样做,你很可能会改善一些用户的发音,而降低大多数其他用户的发音。操作系统、浏览器、屏幕阅读器和语音的组合太大,无法测试所有内容。
所以最好是保持务实,不要做任何特别的事情。保持你的版本号写下来,就像通常在任何地方都会做的那样。屏幕阅读器用户通常习惯于这种发音怪癖,如有必要,可以调整选项并设置词典。
简短回答
使用<p aria-label="Version 2 point 3 point 96">Version 2.3.96</p>
,这将在大多数流行的屏幕阅读器中得到正确的解析。确保没有<spans>
从文本中分割版本号,使用aria-label
作为过度杀伤/a备份。
答案很长
通常我会建议永远不要干扰屏幕阅读器发音的方式,就像@QuentinC建议的那样。
然而,在这种情况下,我想说,您确实想尝试解决这个问题,因为听到应该有版本号的日期可能会非常令人困惑(这是软件编写的日期吗,还是公司成立的日期?谁知道呢!(。
这是屏幕阅读器中的一个解析问题,与大多数人不喜欢阅读方式的问题非常不同,请只遵循下面的建议。
修复一个,更改标记
您没有添加标记,但下面的解释是基于我的测试。
这个问题实际上可以通过在版本号之前添加"Version"来自行解决(至少在我测试的JAW、NVDA和VoiceOver中是这样(。
我的猜测是你有一个类似于以下格式的版本号:
CCD_ 6或CCD_。
通过删除第一个示例中的<span>
,JAWS、NVDA和VoiceOver在我的测试中正确读取了以下内容:
<p>Version 2.3.96</p>
一旦在版本号周围添加了<span>
,数字的上下文就会丢失(<span>
元素中的文本会自行评估(,因此屏幕阅读器会尝试在没有任何上下文的情况下自行解析它,并决定它是一个日期。
当然,使用aria-label
可以修复它吗
此外,aria-label
可能不适用于没有role
的静态元素(<div>
、<span>
等(,这表明它们是活动元素,所以它很可能无论如何都不适用于您。
出于这个原因,我不建议尝试单独使用aria-label
来解决这个问题,但为考虑到它的屏幕阅读器添加它是一个无害的步骤。
这是我唯一一次建议干扰屏幕阅读器的说话方式,请不要将此作为解决其他发音问题的步骤,因为这是一个解析问题,而不是发音问题
考虑到这一点,我建议您使用以下方法:
<span aria-label="Version 2 point 4 point 99">Version 2.4.99</span>
有<span>
、<p>
或其他内容块围绕。