- Success Criterion 1.3.1
- Conformance level A
Table Semantics Wrongly Applied to Non-Tabular Layout Content
1.3.1 — Info and Relationships
Scenario
Setting
A used-car marketplace's listing filter
What’s wrong
Table semantics applied to non-tabular content for layout, announcing a false data table.
Example
<table>
<tr><td><input type="checkbox"> Toyota</td></tr>
<tr><td><input type="checkbox"> Honda</td></tr>
<tr><td><input type="checkbox"> Ford</td></tr>
</table> Why it matters
A screen reader user opens the filter sidebar and hears "table with 1 column" before every checkbox, adding confusing noise.
How to test
Inspect a layout-only grid (used purely for visual arrangement) for table or role="table"/"row"/"cell": if present, it falsely announces as a data table to screen readers.
How to fix
Reserve table markup for genuinely tabular data; a checkbox list is a form group, not a table.
<fieldset>
<legend>Make</legend>
<label><input type="checkbox"> Toyota</label>
<label><input type="checkbox"> Honda</label>
<label><input type="checkbox"> Ford</label>
</fieldset> Outcome
A buyer hears Make, Toyota checkbox cleanly, with no stray table announcement in the way.
Who is affected
Screen reader users trying to filter car listings get a false table announcement around a plain checkbox list.
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