HTML标签中的冒号会被屏幕阅读器发音吗?

4
我想知道这两个做法哪个更加优良:
<label>Foo</label>:
<label>Bar:</label>

哪一个更适合无障碍访问?屏幕阅读器在两种情况下都会读出冒号吗?

祝好!


1
可能并不重要。您甚至可以将整个输入字段作为标签的后代,连同标签文本一起,AT似乎也不介意。考虑到这一点,出于清洁度的考虑,我建议至少在标签文本中包含冒号。 - BoltClock
3个回答

3
你可以使用 CSS 的 :after 来添加冒号,这样就只剩下标签中需要插入的标签文本了。对于语义可能会更好一些。
<label>Your label here</label>

.label:after {
    content:":";
}

http://jsfiddle.net/j7cqw6wg/


我喜欢这种方式,因为你不会在任何地方忘记它。 - Wavemaster

2

一些屏幕阅读器确实可以读取某些符号。添加冒号的好处是,通常情况下,屏幕阅读器会在其后暂停朗读。这可用于控制阅读速度或在您想要分隔文本或强调文本时使用。

请查看http://webaim.org/techniques/screenreader/


0

这有点离题,但如果你要为字段添加标签,你需要在 <label> 标签中使用 "for=" 属性,或者将 <input> 字段嵌套在 <label> 标签内。

<label for='foo'>my label</label>
<input id='foo'/>

<label>my label <input/></label>

这将允许屏幕阅读器在焦点转移到输入字段时读取标签。

至于冒号,如果冒号出现在段落中间,那么就像santialurralde所说的那样,读者会暂停一下。类似于它遇到句号时所做的操作。如果您的冒号位于标签上(使用上面示例的格式),则标签成为输入字段的可访问性名称。读者通常在说出可访问性名称和元素类型之间暂停,因此冒号并没有太大的区别。

话虽如此,我可以在JAWS中打开一个选项,使其读取所有标点符号。我会听到“冒号”、“句号”、“逗号”等。这不是我的默认设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接