aria-hidden="true" hides content that is still keyboard-focusable
Part of Documentation, UX & Accessibility, which counts for 15% of the overall score. When this check fires it deducts 8 points from that category, once per scan, no matter how many places it turns up.
What it detects
An element marked aria-hidden="true" is removed from the accessibility tree, but any link, button, form control, or tabindex="0" element still inside it remains a real tab stop: a sighted keyboard user (or a screen reader that does not fully honor aria-hidden on focus) lands on a control with no accessible name and no way to know what it does. Either move the interactive control outside the hidden region, or also make it unreachable with tabindex="-1"/the inert attribute, or drop aria-hidden if the content genuinely needs to stay operable.
Why it matters
aria-hidden="true" removes an element from the accessibility tree entirely, but it does not remove focusability: a link, button, input, or anything with tabindex="0" left inside it is still a live tab stop. A keyboard user (or a screen reader/browser combination that does not fully suppress focus inside aria-hidden regions) can land on a control that is invisible to assistive technology, with no announced name and no way to know what pressing it would do.
How to fix it
Move the interactive element outside the aria-hidden region if it needs to stay usable, or add tabindex="-1" (and ideally the inert attribute, which handles this automatically in modern browsers) to every focusable descendant so it cannot be tabbed to while hidden. If the whole region including its controls should really be hidden and disabled together, inert on the container replaces both aria-hidden and manual tabindex management in one step.
The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing
Does your repo trip this check?
Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.
Scan your repo