因此,我能够让我的页面与 NDVA 屏幕阅读器一起正常工作,但是,在 JAWS 中测试时,它跳转到跨度,但不阅读文本。
<span tabindex="0" title="whatever">whatever</span>
更新:
我想要实现的是我有一些元素可以展开/折叠我正在构建的网站的某些部分。然而,这些功能元素不是链接。
回复@discojoe(感谢回复)
- 添加
TABINDEX="0"
属性会将 SPAN/DIV 元素按自然顺序插入到标签列表中(而默认情况下,它们通常不会添加到标签列表中)。这允许屏幕阅读器切换到该元素,并且工作正常。具体来说,我的问题是 JAWS 只会跳转到那个元素,它不会读取它。 - 我同意,使用
TABINDEX="n"
(其中 n > 0)是一件坏事,它会扰乱制表符列表的自然顺序,我不会那样做。 - 另外,您可以使用
TABINDEX="-1"
从选项卡列表中删除默认放置的元素(例如 A 或 INPUT 标签)。 - 我已经尝试过使用标签,但是,当用户点击此链接上的 Enter(以触发 onclick 事件)时,它会对页面执行某些操作(不是完全重新加载,而是有点重新初始化),从而延迟与那个元素。我发现这对普通用户和残障用户来说都是糟糕的体验。
- 在 IE 中使用 A 标签中的 # 标签将哈希标签添加到页面标题。
- 此外,使用 A 标签会使屏幕阅读器在每个元素之前/之后读出“LINK”,并且由于它们实际上并不是链接,我认为这会对可访问性产生负面影响。
最佳答案
我首先想知道您为什么使用 span 元素而不是标准的 href 元素?你想要达到什么目的?如果您可以提供更多上下文\代码,它可能会有所帮助。
我刚试过,遇到了同样的问题;虽然我可以通过箭头浏览文档并读出一个跨度,但我不能然后点击它并读出它。
使用类似的东西
<a href="#" onclick="javascript: return false;">Whatever</a>
工作正常。
使用 tabindex 属性还有其他问题,特别是对于键盘用户。在使用 tabindex 属性的页面上,tab 焦点顺序将首先遍历所有指定了 tabindex 的元素,然后按照源代码顺序遍历所有没有指定 tabindex 的元素。
一个好的通用规则是要么对所有键盘可访问元素使用 tabindex,要么不对任何元素使用 tabindex,以解决此问题。
我意识到在这种情况下,您可能使用 tabindex 只是为这一项提供键盘可访问性,因此如果您使用提到的 a href 方法,这个问题可能无关紧要,但我想提及它是为了完整性
关于html - JAWS 屏幕阅读器忽略 SPAN 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777177/