No positive tabindex (logical focus order)
What it checks
Positive tabindex values force a non-DOM focus order. Agents that traverse the page by focus order then encounter a confusing, non-linear sequence.
Why it matters
A tabindex greater than 0 places the element in a tabindex-ordered focus navigation scope ahead of every tabindex="0" element, so a consumer that reaches controls by pressing Tab visits them in a non-DOM order.
Evidence
- WHATWG HTML Standard: a positive
tabindexplaces the element “in the tabindex-ordered focus navigation scope”, ordered by its numeric value. The advisory follows: “Developers should use caution when using values other than 0 or −1 for theirtabindexattributes as this is complicated to do correctly” — html.spec.whatwg.org/…/interaction.html (verified 2026-08-21) - The proven agent action path is reference-based, not tab-based. Playwright MCP click and type take an “Exact target element reference from the page snapshot” — github.com/…/playwright-mcp (verified 2026-08-21). chrome-devtools-mcp
clickandfilltake “The uid of an element on the page from the page content snapshot”. That uid is produced bytake_snapshot“based on the a11y tree” — github.com/…/tool-reference.md (verified 2026-08-21) - Playwright’s accessibility-tree serialisation exposes role, name and ARIA state, but no focus-order information at all — playwright.dev/…/aria-snapshots (verified 2026-08-21)
Limits
None of the searched vendor or tool documentation describes an agent that traverses a page by sequential focus order; the accessibility-tree snapshot an agent reads carries no tab-order data, so a scrambled tab order is invisible to it. The defensible consumer is a human keyboard/AT user (WCAG 2.4.3 Focus Order), which is outside this module’s stated scope of non-human consumers. The rule is a human keyboard-navigation requirement with an agent rationale attached to it. Vision/computer-use agents that do send Tab keys are a plausible but undocumented exception.
How it scores
The focus-order effect is ratified in the HTML Standard and implemented by all browsers. But the audit’s stated agent mechanism, “agents that traverse the page by focus order”, has no documented consumer. Every agent tool-chain with published docs addresses elements by accessibility-tree reference, not by tab sequence.
Sources
- HTML Standard — the tabindex attribute — WHATWG, spec (verified 2026-08-21)
- microsoft/playwright-mcp README — Microsoft, vendor-doc (verified 2026-08-21)
- Chrome DevTools MCP — tool reference — Google / Chrome DevTools, repo (verified 2026-08-21)
- Live Chromium accessibility snapshot of a probe page (own experiment) — Own experiment via Playwright MCP + Chromium, study (verified 2026-08-21)