Accessibility Checkpoint WCAG 2 F91 and Section 508 1194.22 (g)
Identify row and column headers in data tables using TH elements, and mark layout tables with role=‘presentation’.
Data tables allow screen reader users to understand column and row relationships. Layout tables read cells as a series of unrelated paragraphs with no tabular structure. Without TH or ROLE, screen readers apply heuristics to decide whether a table is a layout table or data table. These heuristics vary greatly between screen readers, and are affected by browser being used, window size, and font size (so the outcome is very unpredictable without TH or ROLE). If a data table has headers marked up using TD, then change these to TH. If a data table has no headers, add TH elements describing each row and/or column. If the table is only used for layout add role=‘presentation’ to the TABLE element.
Note: Section 508 checkpoints (a) through (k) are equivalent to WCAG 1 level A checkpoints.
Impact on Users
- JAWS Treats tables without TH and ROLE as layout tables if the table contains cells above or below certain pixel sizes. This measurement is affected by browser window size, browser font size, and the browser used.
- NVDA Applies a ‘layout table’ heuristic to tables without TH and ROLE which varies depending on the browser used and on the window size in some circumstances.
- VoiceOver / OSX 10.9 Uses a sophisticated heuristic on tables without TH and ROLE, which is similar (but not identical) to the heuristic used by NVDA with Firefox.
- 5.6 Sep 2014 Updated to reflect results of screen reader testing.
- 5.5 May 2014 Updated to April 2014 version of Techniques for WCAG 2.0.
- 5.3 Sep 2013 Updated to Sept 2013 version of Techniques for WCAG 2.0.
- 4.2 Dec 2010 Modified layout table detection algorithm.
- 3.0 Dec 2008 Now triggers WCAG2 issue.
- 2.0 Dec 2007 Now triggers Section 508 issue.
- 1.0 Feb 2007 Added.
This page describes a web site issue detected by SortSite Desktop and OnDemand Suite.
Rule ID: AccWcag1-5.1.1