我使用的是Windows解说器,像2.3.96这样的版本号作为日期“1996年3月2日”。如何处理屏幕阅读器的版本号?我看到了一些建议使用标签和拼写点的答案,比如:aria-label="2 dot 3 dot 96"。有更好的方法吗?
发布于 2020-04-10 19:16:42
简短回答
使用<p aria-label="Version 2 point 3 point 96">Version 2.3.96</p>,这将在大多数流行的屏幕阅读器中得到正确的解析。确保没有将版本号从文本中分割出来的<spans>,使用aria-label作为过载/备份。
长答案
通常,我建议不要像@QuentinC建议的那样干扰屏幕阅读器的发音方式。
但是,在这种情况下,我想说,您do想要解决这个问题,因为在应该有版本号的地方听到日期可能会非常混乱(是软件编写的日期,还是公司成立的日期?谁知道呢!)
这是屏幕阅读器中的一个解析问题,与大多数人不喜欢读东西的方式存在的问题非常不同,请只对这一个例子遵循下面的建议。
修正一个,改变你的标记。
您没有添加标记,但是下面的解释是基于我的测试。
这个问题实际上将修复自己(至少在JAWs,NVDA和VoiceOver从我的测试),简单地添加‘版本’前的版本号。
我的猜测是,版本号的格式类似于以下内容:
<p>Version <span>2.3.96</span></p>或<p>2.3.96</p>没有“版本”这个词。
通过删除第一个示例JAWS中的<span>,NVDA和VoiceOver在我的测试中正确地读取了以下内容:
<p>Version 2.3.96</p>
一旦在版本号周围添加了<span>,数字的上下文就会丢失( <span>元素中的文本是自己计算的),因此屏幕阅读器将尝试自己解析它,没有任何上下文,并确定它是一个日期。
当然,使用aria-label可以修复它吗?
还有aria-label will probably not work on static elements (<div>,<span>等)它没有一个表示它们是活动元素的role,所以不管怎么说,它都不会对您起作用。
出于这个原因,我不建议仅用aria-label来解决这个问题,但是将它添加到考虑它的屏幕读取器中是无害的一步。
这是我唯一一次建议干扰屏幕阅读器的讲话方式,请不要将此作为解决其他语音问题的步骤,因为这是一个解析问题,而不是语音问题。
考虑到这一点,我建议您使用以下方法:
<span aria-label="Version 2 point 4 point 99">Version 2.4.99</span>
它周围有一个<span>、<p>或其他内容块。
发布于 2020-04-10 18:07:46
在堆栈溢出和其他地方,已经有几个类似的问题涉及到数字和其他不像页面作者所期望的那样发音的东西。同样的答案也适用于被解释为日期的版本号:你最好什么也不做,不写任何特别的东西。
问题是,数字的发音取决于许多层:
您可以尝试几种方法,比如将其分离到不同的<span>中,添加或删除空格,通过咏叹号写“点”等等。
然而,通过这样做,您很可能会改进一些用户的发音,而对大多数其他用户来说则会降低发音。操作系统、浏览器、屏幕阅读器和声音的组合太大,无法测试所有内容。
所以最好是保持务实,不要做任何特别的事情。保持您的版本号写,因为它通常是做在任何地方。屏幕阅读器用户通常习惯于这种发音怪癖,如果有必要,可以调整选项并设置字典。
https://stackoverflow.com/questions/61118191
复制相似问题