PRACTICE 2 OF 8 · Complex widgets and data
Table headers
Move through a data table and check whether header context remains available.
Determine whether table cells are programmatically associated with their row and column headers.
PREPARE
Set up your test
- Turn on a screen reader you know how to operate.
- Navigate by controls or use Tab where the task asks you to.
- Listen for purpose and state, not one exact sequence of spoken words.
WORKING EXAMPLE
Establish the expected behavior
Navigate through the table by cells if your screen reader supports table commands. Listen for row and column context.
| Task | Owner | Due |
|---|---|---|
| Design review | Sam | Aug 4 |
| Release notes | Mina | Aug 9 |
Expected behavior: cells retain their row and column meaning when navigated out of visual context.
INTENTIONAL DEFECT
Find the barrier
The example below deliberately contains one accessibility defect. Skip the defective example.
Navigate the visual table. Determine whether it is exposed as a table with headers.
Hint
If table navigation commands do not find a table, the visual grid is not enough.
End of intentional defect.
DIAGNOSE
Choose the primary cause
EXPLANATION
Understand and repair it
Reveal explanation
What happened
The defective example uses generic containers to mimic a table. The visual alignment is present, but the relationships between headers and cells are not.
Repair
Use native table markup for real data tables. Mark column and row headers with th and scope where appropriate.
<table>
<thead>
<tr><th scope="col">Task</th></tr>
</thead>
<tbody>
<tr><th scope="row">Design review</th></tr>
</tbody>
</table>Retest
- Confirm the table has a useful caption or surrounding context.
- Move cell by cell and confirm column headers are announced.
- Confirm row headers are available where rows need labels.
Report it
Example: The milestones grid is built with generic containers, so screen reader users cannot use table navigation or hear header context for each cell.
Standards and support
This exercise describes behavior rather than promising identical speech across screen reader and browser combinations.
- WCAG 2.2: Understanding Info and Relationships
- W3C Technique H51: Using table markup to present tabular information
- W3C Technique H63: Using scope attributes to associate header cells and data cells
Editorially reviewed 20 July 2026.