Page exposed to the accessibility tree
What it checks
aria-hidden="true" on the document body removes the entire page from the accessibility tree. AI browser agents that navigate via the accessibility tree would see nothing at all.
Why it matters
aria-hidden="true" on <body> excludes the element and all its descendants from the accessibility tree, per WAI-ARIA 1.2 §7.1. An agent whose page representation is built from that tree — Playwright MCP browser_snapshot, chrome-devtools-mcp take_snapshot — receives an empty snapshot. It can then neither read nor act on any page content.
Evidence
- WAI-ARIA 1.2 is a W3C Recommendation (06 June 2023); §7.1 “Excluding Elements from the Accessibility Tree” specifies that
aria-hidden="true"removes the element and its descendants from the tree — w3.org/…/wai-aria-1.2 (verified 2026-08-21) - Playwright ARIA snapshots are “a YAML representation of the accessibility tree of a page” — playwright.dev/…/aria-snapshots (verified 2026-08-21)
- Playwright MCP “Uses Playwright’s accessibility tree, not pixel-based input… operates purely on structured data” — github.com/…/playwright-mcp (verified 2026-08-21)
- Chrome DevTools MCP
take_snapshotgives the model “a text snapshot of the currently selected page based on the a11y tree”, and interaction tools address elements only by uids from that snapshot — github.com/…/tool-reference.md (verified 2026-08-21) - axe rule: “Document content is not accessible to assistive technology if
<body aria-hidden="true">” (impact: critical) — dequeuniversity.com/…/aria-hidden-body (verified 2026-08-21)
Limits
Screenshot/pixel-driven agents (computer-use style) are unaffected — they never consult the accessibility tree, so the failure is total for tree-based agents and invisible to vision-based ones. The condition is also vanishingly rare in static HTML. Its realistic occurrence is a modal library setting aria-hidden on the root at open time, which happens only after JS runs — and this pipeline never observes that. A high grade for the signal therefore coexists with a near-zero hit rate for the audit as implemented.
How it scores
WAI-ARIA 1.2 is a ratified W3C Recommendation whose accessibility-tree exclusion is implemented by every browser, and the two documented agent snapshot tools state their representation is that tree, so the empty-page outcome is deterministic rather than inferred.
Sources
- WAI-ARIA 1.2 — aria-hidden — W3C, spec (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)
- microsoft/playwright-mcp README — Microsoft, vendor-doc (verified 2026-08-21)
- Chrome DevTools MCP — tool reference — Google / Chrome DevTools, repo (verified 2026-08-21)
- axe rule — aria-hidden-body — Deque, vendor-doc (verified 2026-08-21)