![](/img/trans.png)
[英]AngularJS - NVDA screen reader not finding names of child elements
[英]NVDA screen reader reads clickable word on text
知道为什么 NVDA 在 html 示例中的文本中读取可点击单词:
<h1 tabindex="1"> testing </h1>
NVDA 将读取可点击测试
简短的回答:
tabindex 属性暗示了某些屏幕阅读器的功能。
长答案:
屏幕阅读器用户浏览网页的两种主要方式是跳过交互式元素或标题。 交互元素是链接、按钮、表单域和用户将在您的页面上启动的任何其他功能。 这些是通过使用“tab”键来导航的。
他们浏览您页面的另一种主要方式是通过标题。 事实上,webaim 的一项调查将标题列为绝大多数导航页面以查找信息的主要方法(来源)。 在您的示例中,您为标题提供了一个 tabindex,这会给人一种它具有某些功能或交互性的印象。 据我了解,JAWS 和 NVDA 都会在具有 tabindex 的元素上读出“可点击”,因为它们很容易(并且通常会)有一些在屏幕阅读器中不明显的javascript点击处理程序。
首先请记住,tabindex 在 a11y 中不是一个好习惯,而且标题不需要 tabindex NVDA 提供了带有 H 键的标题导航。 关于可点击,根据我的经验,我可以说是 NVDA 的一个已知问题,如果您检查在其他 SR(Voice over 或 Chromebox)中是否应该正确读取
回答:
这是因为属性tabindex
使此元素键盘可聚焦。 可以通过按键盘上的 TAB 键来聚焦它。
提示#1:通常应避免使用值大于 0 的属性
tabindex
!
不要使用tabindex="1"
、 tabindex="2"
等等。 在某些情况下,只有tabindex="0"
或tabindex="-1"
才有用。 否则,您可能会为用户体验造成一团糟。
阅读更多:
提示#2:通常不需要制作用户无法与之交互的可聚焦元素。
在特定情况下,如果用户无法与其交互,则使标题元素键盘可聚焦是没有意义的。
如果您担心屏幕阅读器,用户就不用担心,因为他们阅读不可聚焦的内容就好了。 来自辅助功能开发人员指南的引用:与仅使用键盘的用户相反,屏幕阅读器用户通常不使用 Tab 键来阅读页面! 阅读“屏幕阅读器浏览和聚焦模式”以了解使用箭头键和 Tab 键导航之间的区别。
但是......规则的例外存在
存在规则的例外情况,如果开发人员将tabindex="-1"
为他们希望以编程方式移动焦点以实现可访问性的标题,这可能是一个好主意。 例如,这种情况是在单页应用程序中使用 AJAX 更新新鲜内容。 焦点将移至标题,以便用户了解内容更新并能够从那里开始。 当当前关注的内容即将从 DOM 中删除(例如删除当前关注的表条目)或在表单提交试用后将焦点移动到错误摘要标题时,它也很有用。
就我而言(MacOS 上的 VoiceOver),似乎 H1 仅在 Firefox 上被宣布为可点击。 在 Chrome 上,它已正确宣布。
这让我相信这是一个 Firefox 错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.