tabindex (HTML attribute)

Spec
Depr. Version
No HTML 4
Browser support (more…)
IE8 FF1+ SA4 OP9.2+ CH2
None Full None Full None

Syntax

tabindex="number"

Description

The tabindex is used to define a sequence that users follow when they use the Tab key to navigate through a page. By default, the natural tabbing order will match the source order in the markup. In certain circumstances it may be necessary to override the default tabbing order, but it’s strongly recommended that you craft a page in a logical flow and let the browser work through it in the default order—an approach that negates the need for the tabindex attribute.

A tabindex can start at 0 and increment in any value. As such, the sequence 1, 2, 3, 4, 5 would be fine, as would 10, 20, 30, 40, 50. If you need to introduce a tabindex, it’s advisable to use a sequence that contains intervals (like the second example provided), as this will give you the opportunity to inject other controls later if need be (for example, 10, 15, 20) without having to reindex all the tabindex values on the page. Should a given tabindex value be applied to more than one element (e.g. all links in one section given a tabindex of "1", and sidebar links given a tabindex of "2"), the tabbing order of those affected elements will be as per the source markup order. Many people will choose to use this approach rather than a sequence with a defined interval, such as 5, 10, 15, because it allows for additional links or form controls to be added without the headache of re-numbering. If a tabindex of "-1" is used, the element it’s applied to will no longer be keyboard focusable.

If a tabindex is set anywhere on a page—even if it’s the hundredth link or the fiftieth form control—the tab order will start at the element with the lowest tabindex value, and work through the increments. Only then will the tab order take in the remaining elements for which no tabindex has been set. As such, great care must be taken to ensure that adding a tabindex doesn’t harm the usability of the page as a whole.

Example

This code sets the tabindex for both form controls:

<object data="giant-dog.jpg" height="225" tabindex="1"></object>

Value

This attribute takes a number value.

Compatibility

Internet Explorer Firefox Safari Opera Chrome
5.5 6.0 7.0 8.0 1.0 1.5 2.0 3.0 3.5 1.3 2.0 3.1 4.0 9.2 9.5 10.0 2.0
None None None None Full Full Full Full Full None None None None Full Full Full None

Whether you would be able to use the tab key (or equivalent) to access the object would largely depend on the nature of the content displayed in the object tag. Using the simple image example shown above, only Firefox and Opera allow the user to make use of the tabindex attribute in this context (in almost all other cases—namely form controls and links—the tabindex has excellent support)

User-contributed notes

There are no comments yet.

Related Products