- Success Criterion 1.3.1
- Conformance level A
- W3C reference F46
Layout-Only Table Wrongly Coded With Real Header Cells
1.3.1 — Info and Relationships
Scenario
Setting
An online marketplace's seller dashboard
What’s wrong
A table used purely for visual layout contains header cells or a caption — screen readers treat it as a data table and announce meaningless headers.
Example
<table>
<caption>Dashboard layout</caption>
<tr><th>Logo</th><th>Stats</th></tr>
<tr><td><img src="logo.png" alt="Shop logo"></td><td>Orders: 12</td></tr>
</table> Why it matters
A seller using a screen reader hears "table, Logo, Stats" before every row, even though the table only arranges page layout.
How to test
Check a layout-only table (used for visual positioning) in DevTools: if it has th, caption, or summary, a screen reader misreads it as a real data table.
How to fix
A layout table should carry no caption or header cells; if it needs real headers, it's actual data and deserves a proper table.
<div class="dashboard-layout">
<img src="logo.png" alt="Shop logo">
<p>Orders: 12</p>
</div> Outcome
A seller hears the logo and order count read plainly, with no phantom table announcement in the way.
Who is affected
Screen reader users browsing the seller dashboard get false table navigation prompts for what is really a layout wrapper.
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
- Tabular Data Placed Inside a Preformatted Text Block