4

知道为什么 NVDA 在浏览 html 示例中的文本时会读取可点击的单词:

<h1 tabindex="1"> testing </h1>

NVDA 将读取可点击测试

4

3 回答 3

1

首先请记住 tabindex 在 a11y 中不是一个好习惯,而且标题也不需要 tabindex NVDA 提供了带有 H 键的标题导航。关于可点击,我可以根据我的经验说是 NVDA 的一个已知问题,如果您检查其他 SR(Voice over 或 Chromebox)应该被正确读取

于 2017-01-10T06:31:54.297 回答
1

简短的回答:

tabindex 属性意味着某些屏幕阅读器的功能。

长答案:

屏幕阅读器用户浏览网页的两种主要方式是跳过交互式元素或标题。交互式元素是诸如链接、按钮、表单字段和用户将在您的页面上启动的任何其他功能。这些是通过使用“tab”键导航的。

他们将浏览您的页面的另一种主要方式是通过标题。事实上,webaim 的一项调查将标题绝大多数列为浏览页面以查找信息的主要方法(来源)。在您的示例中,您为标题提供了一个 tabindex,这将给人的印象是它具有一些功能或交互性。据我了解,JAWS 和 NVDA 都会在具有 tabindex 的元素上读出“可点击”,因为它们可以轻松(并且通常会)拥有一些屏幕阅读器不明显的 javascript 点击处理程序。

于 2016-11-30T17:45:00.683 回答
1

回答:

这是因为属性tabindex使该元素键盘可聚焦。可以通过按键盘上的 TAB 键来聚焦它。

提示 #1:通常应避免值大于 0 的属性!tabindex

不要使用tabindex="1"tabindex="2"等等。仅在某些情况下tabindex="0"tabindex="-1"可能有用。否则,您可能会为用户体验造成一团糟。

阅读更多:

提示 #2:通常不需要制作用户无法与之交互的可聚焦元素。

在特定情况下,如果用户无法与之交互,则使标题元素键盘可聚焦是没有意义的。

如果您担心屏幕阅读器,用户不必担心,因为他们可以阅读不可聚焦的内容。来自Accessibility Developer Guide的引用:与仅使用键盘的用户不同,屏幕阅读器用户通常不使用 Tab 键来阅读页面!阅读“屏幕阅读器浏览和聚焦模式”以了解使用箭头键和 Tab 键导航之间的区别。

但是......规则的例外情况存在

该规则存在例外情况,如果开发人员设置tabindex="-1"为他们希望以编程方式移动焦点以实现可访问性目的的标题,这可能是一个好主意。例如,在单页应用程序中使用 AJAX 更新新内容。焦点将转移到一个标题,以便用户了解内容更新并能够从那里开始。当当前关注的内容即将从 DOM 中删除(ag 删除当前关注的表条目)或在表单提交试验后将焦点移动到错误摘要标题等时,它也很有用。

于 2020-02-26T12:41:50.243 回答