删除两个文本元素之间的空格是否存在可访问性问题? (例如,跨度,a)

时间:2018-08-04 11:06:09

标签: html accessibility whitespace screen-readers web-accessibility

我想知道拥有此HTML是否会以任何方式损害可访问性:

<a href="privacy.html">Privacy</a><a href="terms">Terms</a>

代替此:

<a href="privacy.html">Privacy</a> <a href="terms">Terms</a>

或者这个:

<a href="privacy.html">Privacy</a>
<a href="terms">Terms</a>

我正在考虑使用屏幕阅读器:是否可以正确识别它们是两个不同的词,而不是“ PrivacyTerms”?如果我使用<span>或其他任何元素代替<a>,会有区别吗?

我有时会删除空白的原因是,我想使用CSS(边距)指定元素之间的确切间距,并且在源代码中保留空白会根据字体大小增加可视空间,这也是可选的(当元素可单击时尤其令人讨厌,因为当您将光标从一个元素移到下一个元素时,光标会从pointer变为textdefault。如果有解决此问题的更好方法,我希望听到他们的声音。

2 个答案:

答案 0 :(得分:2)

从视觉上看,您的第一个示例看起来像一个链接,但是它们将是单独的制表符,因此屏幕阅读器将分别读取它们。其他两个示例在视觉上看起来像单独的链接。屏幕阅读器将对所有三个示例进行相同处理。

如果您有两个<span>元素,但没有空格,则JAWS和NVDA等PC屏幕阅读器将连接文本,并将其读取为一个。但是在iOS的VoiceOver上,它们将被视为单独的元素。

答案 1 :(得分:2)

在您的带有链接的示例中,当今的屏幕阅读器不太可能出现问题。它们将被识别为单独的链接,并因此宣布。通常,用户会听到每个用户的“链接”角色:“隐私,链接,条款,链接。”

对于相邻的跨度,结果在浏览器,操作系统和屏幕阅读器的不同组合之间会有所不同。跨度作为单个单词一起运行,有时会导致异常的发音。我建议相邻跨度之间的空格,通常是单词之间通常存在空格的地方。

例如,在recent Drupal issue中,<button>包含两个范围,但没有空格:

<button><span>Collapse</span><span>Development</span></button>

该按钮的可访问名称计算为“ CollapseDevelopment”,一些屏幕阅读器宣布该按钮为“ Collaps-ey Development”,但带有一个额外的音节。最终我发现 归结为屏幕阅读器使用的语音(某些屏幕阅读器可以使用多个文本语音转换引擎)。

历史记录:WCAG 1.0(已过时,请使用WCAG 2 ...)建议以下内容。请注意强调“直到”。

  

直到用户代理(包括辅助技术)清楚地呈现相邻链接,并在相邻链接之间包含不可链接的可打印字符(用空格包围)。   (WCAG 1.0 checkpoint 10.5

如今,这已不是问题:“直到”子句在多年前就得到了满足。屏幕阅读器确实会明显对待相邻链接。