<h1 tabindex="1"> testing </h1>
NVDA将会读取可点击的测试。
<h1 tabindex="1"> testing </h1>
简短回答:
tabindex 属性对于某些屏幕阅读器意味着功能。
详细回答:
屏幕阅读器用户浏览您的网页的两种主要方式是通过跳过交互元素或标题。交互元素包括链接、按钮、表单字段和用户在页面上启动的任何其他功能。这些元素可以使用“Tab”键进行导航。
他们浏览您的页面的另一种主要方式是通过标题。实际上,来自 webaim 的一项调查显示,标题是浏览页面以查找信息的主要方法(source)。在您的示例中,您给标题赋予了 tabindex,这将给人留下它具有某些功能或交互性的印象。据我所知,JAWS 和 NVDA 都会在具有 tabindex 的元素上读出“可点击”,因为它们可能很容易(并且通常会)具有一些不明显的 JavaScript 单击处理程序,这些处理程序无法从屏幕阅读器中看到。
tabindex
与H1被宣布为可点击无关。 - Nicu Surdu答案:
这是因为属性tabindex
使该元素可通过键盘聚焦。用户可以通过按下键盘上的TAB键来聚焦它。
提示1:应避免使用值大于0的属性
tabindex
!
不要使用tabindex="1"
、tabindex="2"
等。只有在某些情况下tabindex="0"
或tabindex="-1"
才有用。否则,您可能会给用户体验带来很大的混乱。
阅读更多:
提示#2:通常不需要使用户无法与之交互的可聚焦元素。
在特定情况下,如果用户无法与其交互,则没有必要使标题元素成为键盘可聚焦的。
如果您担心屏幕阅读器用户无法正常阅读非可聚焦内容,那么请放心,因为他们可以很好地阅读。辅助功能开发人员指南中的一句话:与仅使用键盘的用户不同,屏幕阅读器用户通常不使用 Tab 键来阅读页面!请阅读“屏幕阅读器浏览和聚焦模式”以了解使用箭头键和 Tab 键进行导航之间的区别。
但是... 例外情况也存在
规则总有例外,对于开发人员将 tabindex="-1"
设置为标题的情况,这可能是一个好主意,以便通过编程方式移动焦点以实现辅助功能。例如,在单页应用程序中使用 AJAX 更新新内容时,焦点将移动到标题上,以使用户了解内容更新并能够从那里开始。此外,在当前聚焦的内容即将从 DOM 中删除(例如删除当前聚焦的表格条目)或在表单提交尝试后将焦点移动到错误摘要标题时,它也可能很有用。
tabindex
与H1被宣布为可点击无关。 - Nicu Surdutabindex
有关吗?如果您删除 tabindex
,它是否仍会宣布 h1 可点击? - Nicu Surdu