Back to All Rules
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 scope to 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 scope on <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

Automate Your Accessibility Testing

Our tool automatically checks for this rule and hundreds of other accessibility issues.

Start Your Free Trial