Accessibility Voiceover读出没有'dot'的语义版本补丁

时间:2016-04-27 05:57:22

标签: ios accessibility

给出语义版本号,如1.2.3 iOS Accessibility读取它像“一点二三”而不是“一点二点三”

这种情况发生在html(如条款和条件)和标签中。

有没有办法让它正确读出? 使用xcode 7.2.x。

2 个答案:

答案 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