知道为什么 NVDA 在浏览 html 示例中的文本时会读取可点击的单词:
<h1 tabindex="1"> testing </h1>
NVDA 将读取可点击测试
知道为什么 NVDA 在浏览 html 示例中的文本时会读取可点击的单词:
<h1 tabindex="1"> testing </h1>
NVDA 将读取可点击测试
首先请记住 tabindex 在 a11y 中不是一个好习惯,而且标题也不需要 tabindex NVDA 提供了带有 H 键的标题导航。关于可点击,我可以根据我的经验说是 NVDA 的一个已知问题,如果您检查其他 SR(Voice over 或 Chromebox)应该被正确读取
简短的回答:
tabindex 属性意味着某些屏幕阅读器的功能。
长答案:
屏幕阅读器用户浏览网页的两种主要方式是跳过交互式元素或标题。交互式元素是诸如链接、按钮、表单字段和用户将在您的页面上启动的任何其他功能。这些是通过使用“tab”键导航的。
他们将浏览您的页面的另一种主要方式是通过标题。事实上,webaim 的一项调查将标题绝大多数列为浏览页面以查找信息的主要方法(来源)。在您的示例中,您为标题提供了一个 tabindex,这将给人的印象是它具有一些功能或交互性。据我了解,JAWS 和 NVDA 都会在具有 tabindex 的元素上读出“可点击”,因为它们可以轻松(并且通常会)拥有一些屏幕阅读器不明显的 javascript 点击处理程序。
回答:
这是因为属性tabindex
使该元素键盘可聚焦。可以通过按键盘上的 TAB 键来聚焦它。
提示 #1:通常应避免值大于 0 的属性!
tabindex
不要使用tabindex="1"
,tabindex="2"
等等。仅在某些情况下tabindex="0"
或tabindex="-1"
可能有用。否则,您可能会为用户体验造成一团糟。
阅读更多:
提示 #2:通常不需要制作用户无法与之交互的可聚焦元素。
在特定情况下,如果用户无法与之交互,则使标题元素键盘可聚焦是没有意义的。
如果您担心屏幕阅读器,用户不必担心,因为他们可以阅读不可聚焦的内容。来自Accessibility Developer Guide的引用:与仅使用键盘的用户不同,屏幕阅读器用户通常不使用 Tab 键来阅读页面!阅读“屏幕阅读器浏览和聚焦模式”以了解使用箭头键和 Tab 键导航之间的区别。
但是......规则的例外情况存在
该规则存在例外情况,如果开发人员设置tabindex="-1"
为他们希望以编程方式移动焦点以实现可访问性目的的标题,这可能是一个好主意。例如,在单页应用程序中使用 AJAX 更新新内容。焦点将转移到一个标题,以便用户了解内容更新并能够从那里开始。当当前关注的内容即将从 DOM 中删除(ag 删除当前关注的表条目)或在表单提交试验后将焦点移动到错误摘要标题等时,它也很有用。