Back to Learn
Pulseaccessibility

No Element Has tabindex Greater Than Zero

What This Audit Checks

This audit verifies that no element on the page has a tabindex attribute with a value greater than zero. A positive tabindex forces the element to the front of the tab order, overriding the natural document flow.

Why It Matters

Positive tabindex values create an unpredictable and fragile tab order. Keyboard users expect to tab through the page in the visual order they see. When elements jump out of sequence, navigation becomes confusing and maintenance becomes a nightmare.

How to Fix It

  • Remove or replace positive tabindex values. Set them to 0 (adds to natural tab order) or -1 (programmatically focusable but not in tab order).
  • Rely on DOM order. Place interactive elements in the HTML in the order you want users to reach them. This is the most robust approach.
  • Use tabindex="0" only when you need a non-interactive element (like a <div>) to be focusable. Prefer native interactive elements (<button>, <a>, <input>) instead.
<!-- Bad: forces this div to be tabbed first -->
<div tabindex="5">Settings panel</div>
<button>Save</button>

<!-- Good: natural DOM order controls tab sequence -->
<button>Save</button>
<div tabindex="0" role="region" aria-label="Settings">
  Settings panel
</div>

How Pulse Tracks This

Pulse flags this audit in your Lighthouse accessibility score. When the audit fails, Pulse shows which elements triggered it so you can fix them directly.

Resources