tabindex - HTML: HyperText Markup Language 编辑
The tabindex
global attribute indicates that its element can be focused, and where it participates in sequential keyboard navigation (usually with the Tab key, hence the name).
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
It accepts an integer as a value, with different results depending on the integer's value:
- A negative value (usually
tabindex="-1"
) means that the element is not reachable via sequential keyboard navigation, but could be focused with Javascript or visually by clicking with the mouse. It's mostly useful to create accessible widgets with JavaScript.A negative value is useful when you have off-screen content that appears on a specific event. The user won't be able to focus any element with a negative
tabindex
using the keyboard, but a script can do so by calling thefocus()
method. tabindex="0"
means that the element should be focusable in sequential keyboard navigation, after any positive tabindex values and its order is defined by the document's source order.- A positive value means the element should be focusable in sequential keyboard navigation, with its order defined by the value of the number. That is,
tabindex="4"
is focused beforetabindex="5"
andtabindex="0"
, but aftertabindex="3"
. If multiple elements share the same positivetabindex
value, their order relative to each other follows their position in the document source. The maximum value fortabindex
is 32767. If not specified, it takes the default value 0.Avoid using
tabindex
values greater than 0. Doing so makes it difficult for people who rely on assistive technology to navigate and operate page content. Instead, write the document with the elements in a logical sequence.
If you set the tabindex
attribute on a <div>
, then its child content cannot be scrolled with the arrow keys unless you set tabindex
on the content, too. Check out this fiddle to understand the scrolling effects of tabindex
.
Accessibility concerns
Avoid using the tabindex
attribute in conjunction with non-interactive content to make something intended to be interactive focusable by keyboard input. An example of this would be using a <div>
element to describe a button, instead of the <button>
element.
Interactive components authored using non-interactive elements are not listed in the accessibility tree. This prevents assistive technology from being able to navigate to and manipulate those components. The content should be semantically described using interactive elements (<a>
, <button>
, <details>
, <input>
, <select>
, <textarea>
, etc.) instead. These elements have built-in roles and states that communicate status to the accessibility that would otherwise have to be managed by ARIA.
Specifications
Specification | Status | Comment |
---|---|---|
HTML Living Standard The definition of 'tabindex' in that specification. | Living Standard | No change from latest snapshot, HTML 5.1. |
HTML 5.1 The definition of 'tabindex' in that specification. | Recommendation | Snapshot of HTML Living Standard, no change from HTML5. |
HTML5 The definition of 'tabindex' in that specification. | Recommendation | Snapshot of HTML Living Standard. From HTML 4.01 Specification, the attribute is now supported on all elements (global attributes). |
HTML 4.01 Specification The definition of 'tabindex' in that specification. | Recommendation | Only supported on <a> , <area> , <button> , <input> , <object> , <select> , and <textarea> . |
Browser compatibility
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, check out https://github.com/mdn/browser-compat-data and send us a pull request.
See also
- All global attributes
HTMLElement.tabIndex
that reflects this attribute- Accessibility problems with tabindex: see Don’t Use Tabindex Greater than 0 by Adrian Roselli
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论