- Success Criterion 1.3.1
- Conformance level A
Multiple Data Tables With No Captions to Tell Them Apart
1.3.1 — Info and Relationships
Scenario
Setting
A survey tool's question builder
What’s wrong
Multiple data tables on a page with no caption or accessible name to distinguish them where identification is needed.
Example
<table>
<tr><th>Option</th><th>Value</th></tr>
<tr><td>Strongly agree</td><td>5</td></tr>
<tr><td>Agree</td><td>4</td></tr>
</table>
<table>
<tr><th>Option</th><th>Value</th></tr>
<tr><td>Yes</td><td>1</td></tr>
<tr><td>No</td><td>0</td></tr>
</table> Why it matters
A screen reader user editing the second question's answer options hears the same Option, Value headers as the first question, with nothing in either table saying which question the choices belong to.
How to test
Navigate to a data table with a screen reader: it should announce a caption/name identifying its content — an unlabeled table (or one of several unlabeled tables) fails.
How to fix
A caption gives each table its own accessible name, so a table navigation list actually means something.
<table>
<caption>Answer options for "Rate your satisfaction"</caption>
<tr><th>Option</th><th>Value</th></tr>
<tr><td>Strongly agree</td><td>5</td></tr>
<tr><td>Agree</td><td>4</td></tr>
</table>
<table>
<caption>Answer options for "Did this resolve your issue?"</caption>
<tr><th>Option</th><th>Value</th></tr>
<tr><td>Yes</td><td>1</td></tr>
<tr><td>No</td><td>0</td></tr>
</table> Outcome
A survey builder editing answer options hears Answer options for Did this resolve your issue announced clearly, without reopening each table to check.
Who is affected
Screen reader users configuring answer options for multiple questions in the builder can't tell which table of choices belongs to which question.
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