Skip to content
A11ySignal
criticalWCAG 1.3.1 · AWCAG 4.1.2 · A

aria-hidden="true" must not be present on the document body

aria-hidden-body

Ensure aria-hidden="true" is not present on the document body.

The criterion behind it

1.3.1 Info and Relationships

Structure you show with layout — headings, lists, tables, groups — has to exist in the markup too.

Level A · EN 301 549 § 9.1.3.1

Why this check exists

Screen reader users navigate by heading and landmark. If your headings are styled `div`s, that navigation does not exist and the page becomes one long paragraph.

What usually triggers it

  • fails`<div class="h2">` instead of `<h2>`.
  • failsA layout table with no `<th>`, or a data table with no header cells.
  • failsRelated radio buttons not wrapped in a `<fieldset>` with a `<legend>`.
  • failsA visual list built from `<br>` tags.

How to fix it

  • doUse the element that means what you mean, then style it. Semantics first, CSS second.
  • doGive data tables `<th scope="col">` or `scope="row"`.
  • doGroup related form controls in `<fieldset>` and name the group in `<legend>`.
  • doAdd landmarks: `<main>`, `<nav>`, `<header>`, `<footer>`.

How it is reported

A11ySignal reports this at critical impact. Every failing element comes with its CSS selector and the markup that failed, so you can go straight to the line rather than hunting for it. Deque publishes the engine-level detail:

https://dequeuniversity.com/rules/axe/4.13/aria-hidden-body

Check implemented by axe-core 4.13.0, © Deque Systems, MPL-2.0.

Other checks for 1.3.1