tabindex=“0”在哪里? HTML 元素最终会按 Tab 键顺序排列吗?
当网页选项卡式显示时,tabindex
值为 0 的元素按什么顺序聚焦?
In what order are elements with a tabindex
value of 0 focused when the web page is tabbed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
tabindex
分配按以下方式处理(对于支持tabindex
属性的元素):此信息取自:http://www.w3.org /TR/html401/interact/forms.html#adef-tabindex
tabindex
assignments are handled the following way (for elements that support thetabindex
attribute):This information is taken from : http://www.w3.org/TR/html401/interact/forms.html#adef-tabindex
HTML 规范指出:
The HTML specification states:
这比 Alan Haggai Alavi 的答案要复杂一些。
解析后,IE8 和 Opera 按照 HTML4 规范的说明进行操作。然而 Firefox 和 Chrome 使用 DOM 顺序。这对于像这样的格式错误的标记很重要。
您可能会争辩说,无论如何,对于格式错误的标记,所有的赌注都会失败,那么 JavaScript 呢?
考虑这种情况:
在这种情况下,当用户单击“移动”时,IE8、Firefox、Chrome 和 Opera 都使用 DOM 顺序,而不是字符流顺序。
最后 HTML5 提供几乎不保证 tabindex 为 0 的元素之间的 Tab 键顺序,只是声明它应该遵循平台约定。
It's a bit more complicated than Alan Haggai Alavi's answer.
After parsing, IE8 and Opera do as the HTML4 spec says. Firefox and Chrome however use DOM order. This matters with malformed markup like this.
You might well argue that with malformed mark-up all bets are off anyway, so what about JavaScript?
Consider this case:
In this case, when a user clicks on "move", IE8, Firefox, Chrome and Opera all use DOM order, not character stream order.
Finally HTML5 offers pretty much no guarantees about the tab order between elements that have a tabindex of 0, merely stating that it should follow platform conventions.
tabindex="0"
可以包含对 Web 浏览器的非页面元素的 Tab 键切换,例如 URL 地址栏。经过测试,Firefox 32.03 也是如此。
tabindex="0"
can include tabbing to non-page elements of the web browser, such as the URL address bar.Tested to be the case for Firefox 32.03.