Moderate1.3.1 Info and Relationships (Level A)Rule ID: scope-attr-valid
Scope attribute must be used correctly on table headers
The `scope` attribute is invalid, misplaced, or used on elements other than `<th>`.
Rule Description
Checks that scope exists only on <th> and contains one of the valid keyword values.
Why It Matters
- Screen readers rely on
scopeto announce related headers - Invalid scope values break table understanding
- Users may hear incomplete context for data cells
How to Fix
Use only valid values (col, row, colgroup, rowgroup) on <th> elements.
Bad Example:
<td scope="col">Name</td> <th scope="column">Price</th>
Good Example:
<th scope="col">Name</th> <th scope="row">Total</th>
Common Mistakes
- Using
scopeon<td> - Misspelled values like
column - Combining incorrect scope with broken table structure
Testing
- Validate table header markup in devtools
- Run axe/lint checks for scope errors
- Verify spoken output for table navigation
External Resources
Automate Your Accessibility Testing
Our tool automatically checks for this rule and hundreds of other accessibility issues.
Start Your Free Trial