Accessibility Wiki

Header cells need a scope

PDF/UA check TABLE_HEADER_SCOPE · Tables · severity Critical · PDF/UA 8.2.5.26 Table

↩ Back to the rules index · WCAG cross-reference

Why it matters

Scope tells screen readers whether a header applies to a row or column. It is required when the table structure cannot be unambiguously inferred, such as in complex tables with spanning headers.

What you will see

Header cells do not declare whether they apply to a row or a column, and the table is too complex for that to be inferred.

How to fix

Set a Scope attribute (Column, Row, or Both) on each TH cell so its relationship to data cells is explicit. In Acrobat: Reading Order tool > Table Editor > right-click the cell > Table Cell Properties > select the Scope.

Step-by-step guide

  1. Determine whether the table is complex: EQChecker requires explicit Scope on a TH only when more than one row of the table contains TH cells, or when the flagged TH itself carries a RowSpan or ColSpan attribute. A simple table with a single header row and no spanning header passes without Scope, because the default header algorithm of ISO 32000-2:2020, 14.8.4.8.3 is sufficient.
  2. Open All tools > Prepare for accessibility > Fix reading order (the Reading Order tool), click in the table, right-click the table region, and choose Table Editor.
  3. Right-click each header cell and choose Table Cell Properties.
  4. Set Type to Header Cell and choose the Scope that matches the cell's role: Column for a cell heading the cells below it, Row for a cell heading the cells to its side, Both for a cell that heads its row and column.
  5. For spanning header cells, set Row Span and Column Span in the same dialog so the Scope covers exactly the cells the header visually governs.
  6. Repeat for every TH in the table, including row headers in the first column, which are commonly missed.
  7. If even explicit Scope cannot describe the header/cell relationship for every cell (e.g. multi-level stub headers), switch to ID/Headers associations for the affected cells as described in the TABLE_DATA_ASSOCIATION guide; per 8.2.5.26 NOTE 7, keep the Scope attributes in place, since Headers does not negate the need for Scope.

Verify: Re-run the EQChecker scan and confirm TABLE_HEADER_SCOPE passes for the table. Acrobat's accessibility check should pass the Tables > Headers rule.

Note: Scope values in the tag structure are Row, Column, and Both, stored as the Scope attribute with owner /Table on the TH element. PDF/UA-2 8.2.5.26 mandates Scope only when the algorithm's default Scope values are insufficient to describe the relationship, so do not treat every missing Scope as a violation; the fix is mandatory only on complex tables, though adding Scope to simple tables is harmless and good practice.

Fixing it in your authoring tool

Tool Steps
Adobe Acrobat Pro Reading Order tool → Table Editor → right-click a header cell → Table Cell Properties → Scope.

WCAG success criteria

1.3.1 Info and Relationships — Level A

Structure and relationships conveyed visually (headings, lists, tables, labels, groups) must also be available programmatically.

Understanding 1.3.1

Standards

This check contributes to the following standards:

PDF/UA WCAG A EN 301 549

Standard Criteria
PDF/UA-2 (ISO 14289-2:2024) 8.2.5.26 Table
EN 301 549 (non-web documents) 10.1.3.1