- Success Criterion 1.3.1
- Conformance level A
- W3C reference F92
Presentation Role Wrongly Applied to a Real Table or List
1.3.1 — Info and Relationships
Scenario
Setting
A subscription box service's account settings
What’s wrong
role="presentation" (code that strips an element's meaning) is put on real content (an actual table or list), stripping its structure — screen readers lose the table/list entirely.
Example
<div class="heading">Shipping Address</div> Why it matters
Screen-reader, braille, and reading-tool users who depend on coded structure rather than visual layout.
How to test
Search the DOM for role="presentation" or role="none": if applied to an actual data table or list, screen reader users lose all structure — check what the element actually is.
How to fix
Remove role="presentation" (code that strips an element's meaning) from real tables/lists — keep semantics on content that has meaning.
<h2>Shipping Address</h2>A real heading element exposes the section structure to assistive tech; a styled div doesn't.
Outcome
On a subscription box service's account settings, this barrier is gone for screen-reader, braille — they can finish what they came here to do.
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)
- Technique Related technique (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