Multiple headers should be marked in data tables  
Section 508 1194.22(h); WAI / WCAG 1.0 checkpoint 5.2
 
 
Issue Description

The page includes a TABLE tag with a TH tag and does not have any THEAD, TFOOT, TBODY elements. If the table is used to show data and if it includes multiple levels of row and column headers, then consider adopting THEAD, TFOOT, TBODY to mark up such levels.

 
 
How to check

If you're using the table to present data and the data is organized in different sections requiring different headers, use the THEAD, TFOOT, TBODY tags (perhaps with COLGROUP and COL) to mark up the different sections.

 
 
Issue Explanation

Data tables are used to convey information in a bidirectional medium, which often is not available for certain users. Consider the following examples:

  • A textual browser may not align rows and columns correctly because, for example, the content of a cell wraps
  • A reading browser sequentially reads the content of the table
  • A braille reader also sequentially scans the table
  • A browser with a very small display (such as a PDA or a cellular phone) shows only a limited portion of the table

In all these cases, the user has to mentally remember the context of the cell (which row and column does it refer to?). This requirement may be too strong, for example, when the table is large, when the user is under stress, or is impatient to find the needed information.

Consider also that in these situations, users might not be able to move directly from one cell of the table to any other. They are constrained to move sequentially, from one cell to its neighbors only (within the same row, for example).

If the table is structured in different sections, each with its own row or column headers, then this structure should be clearly marked up so that specialized browsers can take advantage of it and articulate it (perhaps by repeating the appropriate headings when moving to a cell).