- Success Criterion 1.3.1
- Conformance level A
ARIA Reference Attribute Pointing to a Nonexistent Element
1.3.1 — Info and Relationships
Scenario
Setting
A grocery delivery app's shopping cart
What’s wrong
aria-labelledby (code pointing to the element that names it)/aria-describedby (code that ties help or error text to a field) pointing at nonexistent IDs.
Example
On a grocery delivery app's shopping cart: aria-labelledby (code pointing to the element that names it)/aria-describedby (code that ties help or error text to a field) pointing at nonexistent IDs.
Why it matters
Screen-reader, braille, and reading-tool users who depend on coded structure rather than visual layout. The practical effect on a grocery delivery app's shopping cart: they can't tell how the page is organized.
How to test
Check aria-labelledby/aria-describedby values in DevTools against the DOM: if they reference an id that doesn't exist anywhere on the page, the reference silently fails.
How to fix
Point aria-labelledby (code pointing to the element that names it)/aria-describedby (code that ties help or error text to a field) at existing element ids.
Outcome
That one change on a grocery delivery app's shopping cart means they understand how the page is organized.
Who is affected
Screen-reader, braille, and reading-tool users who depend on coded structure rather than visual layout.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Text Styled to Look Like a Heading Instead of Coded as One
- Text Columns Faked With Spaces Instead of Real Table Markup
- Table Layout Faked With Spaces Instead of Real Table Code
- Clickable Div Acting as a Link Button With No Real Role
- Structural HTML Tags Used Purely for Visual Styling
- Layout-Only Table Wrongly Coded With Real Header Cells