给出语义版本号,如1.2.3 iOS Accessibility读取它像“一点二三”而不是“一点二点三”
这种情况发生在html(如条款和条件)和标签中。
有没有办法让它正确读出? 使用xcode 7.2.x。
答案 0 :(得分:1)
我怀疑这与用户特定的VoiceOver偏好相关 - 您可以自定义屏幕阅读器的详细程度,是否宣布重复的标点符号等。
如果您想尝试强制它以某种方式读取,至少在HTML中,您可以使用aria-label属性将数字换行,这将覆盖内容:
<span aria-label="one dot two dot three">1.2.3</span>
或
<span aria-label="one point two point three">1.2.3</span>
例如。
答案 1 :(得分:1)
嗯......如果杰克的回答不起作用,您可能需要确认您正在测试Voice Over的iOS版本。但很有可能因为VoiceOver以这种方式不支持咏叹调标签,因为它的原始用途最初是用于输入字段或按钮,其中实际的物理标签不存在(不是跨度)或divs)。
http://modernaccessibility.com/forum/topic/voiceover-ios-html4-html5-wai-aria-accessibility-support/在9.1中提到支持,似乎它已经存在了一段时间,但我可以看到错误发挥作用。列表可能不正确,或者不支持在VoiceOver中支持aria-label,因此您也可以尝试替代方案。
如果aria-hidden工作正常,则应根据需要阅读:
<span aria-hidden="true">1.2.3</span> <span class="visuallyhidden">one dot two dot three</span>
或
<span>1.2<span class="visuallyhidden">dot</span><span class="addDotInBeforePseudoElement">3</span>
或者可以用咏叹调来对待它以更好地解释语义版本
<span aria-describedby="helperText">1.2.3</span>
<p id="helperText" class="visuallyhidden">Major version 1 - Minor version 2 - Patch version 3</p>
CSS
.visuallyhidden {
position: absolute;
overflow: hidden;
clip: rect(0 0 0 0);
height: 1px; width: 1px;
margin: -1px; padding: 0; border: 0;
}
.addDotInBeforePseudoElement:before {
content: ".";
}
旁注:
从这里看,有其他屏幕阅读器在早期版本(例如NVDA)中不支持div / span上的aria-label https://github.com/nvaccess/nvda/issues/1354