如何处理 HTML 中可访问性的语义符号?
Posted
技术标签:
【中文标题】如何处理 HTML 中可访问性的语义符号?【英文标题】:How to deal with semantic symbols for accessibility in HTML? 【发布时间】:2013-12-15 21:47:51 【问题描述】:我发现这是一个有趣的问题,因为目前还没有任何资源讨论这个问题:在编写可访问标记时如何处理具有语义意义的符号?
例如“&”、“$”、“*”、“-”、“~”等符号......也许屏幕阅读器足够聪明,可以将“&”读成“and”、“ $" 为 "dollar" 等等,但有些符号在每种情况下并不总是具有明确的含义。例如,当您看到“Jan 2 - 3, 2013”或“Jan 2 ~ 3, 2013”时,您知道“-”和“~”的意思是“从 ... 到 ...”。但是我如何将这个含义编码到标记中呢?我应该像Jan 2 <abbr title="to">~</abbr> 3, 2013
这样使用<abbr>
标签吗?
【问题讨论】:
您习惯于将连字符视为一个范围。盲人也是。&amp;
和 &amp;
将以相同的方式读取。一些辅助技术会说“和”,而其他人会说“与”。要成为有效的 html,您应该使用 &amp;
。
【参考方案1】:
屏幕阅读器有自己阅读字符的方式,但不应期望他们在这方面特别聪明。对于大多数特殊字符,他们只说出字符的某个名称,与上下文和含义无关。
您对此无能为力。您可以使用 span
标记和包含解释的 title
属性,但它通常会被忽略。对abbr
有更好的支持,尽管将它用于特殊字符是有问题的。更重要的是,正如a W3C WAI document 所说,“JAWS 6.2 及更高版本和 WindowEyes 5.0 及更高版本支持 abbr 和 acronym 元素。当遇到这些元素时,它们都可以设置为说出标题属性,但这不是默认设置,并且通常不会被用户打开。”
所以你可以做的是尽可能自然地写作,例如“2013 年 1 月 2 日至 3 日”(根据英文风格指南,使用破折号而不是连字符)。
【讨论】:
感谢您的信息,我会确保我始终使用自然和“正确”的符号。 也许kbd
元素比span
更好?想象一下标记可以在密码中使用哪些特殊字符的说明。 kbd
本身似乎不会将“内容”传达给屏幕阅读器,但标题似乎可以解决问题:<kbd title="exclamation point">!</kbd>
。【参考方案2】:
你不需要对特殊字符做任何特别的事情。你习惯于解释符号的各种含义,使用辅助技术的人也习惯于解释符号的各种含义。
您需要添加额外信息的情况是当您使用符号图像或非标准含义时。
【讨论】:
我明白了,说得好,但是如果您听到“一月二连字符三,二十三”会不会很奇怪? @Xavier_Ex,这对你来说很奇怪,因为你不习惯听到它。对于经常使用屏幕阅读器的人来说,这很自然。目的不是让它像人类一样阅读,目的是识别屏幕上的所有内容。此外,屏幕阅读器阅读文本的速度比您或我可能觉得舒服得多。 是的,我见过有人使用辅助阅读器,而且他们说得很快。总而言之,您提出了很好的观点,即“事物可访问并不一定意味着事物是自然的”,或者至少对于我们不依赖辅助代理的人来说不一定是自然的。以上是关于如何处理 HTML 中可访问性的语义符号?的主要内容,如果未能解决你的问题,请参考以下文章