Table Row Headers
Row headers identify what the rest of a row describes. Microsoft recommends placing row-identifying information in the leftmost column, and W3C accessibility guidance uses header markup and row/column relationships so assistive technology can preserve that context.
Use row headers when the first cell in each row identifies the data that follows, and mark the header relationship semantically in accessible formats such as HTML.
Key details
Important caveats
Accessibility Boundary
Visual emphasis alone is not enough for accessible HTML tables; header relationships should be programmatically identifiable.
Left Column Boundary
Microsoft recommends placing information that identifies a row in the leftmost column.
Structure Boundary
W3C distinguishes header cells from data cells and supports row headers through header markup and scope relationships.
Further guidance
Practical Application
Use a row header when the first cell identifies what the remaining cells in that row describe. In accessible formats such as HTML, preserve that relationship semantically rather than relying only on bold text.
Reader Check
Can a screen-reader or visual reader determine which label belongs to each row without guessing from position alone?
Worked Example
Example: in a plan-comparison table, make “Basic,” “Standard,” and “Premium” the row headers for the values that follow in each row.
Sources and evidence
Sources are shown with the role they play in this guide. Historical or style-sensitive claims are kept within the evidence boundary described above.
- Tables Tutorial (opens in a new tab)W3C Web Accessibility Initiative · Accessible table header/data relationships and caption context
- Tables — Microsoft Style Guide (opens in a new tab)Microsoft Style Guide · House-style guidance on when structured data belongs in a table instead of a simple list