Basically, designers use two types of tables when creating Web sites.
Layout tables position items such as text and graphics on the page. For example, navigation bars are often laid out in a table.
Data tables use grids to organize information about relationships within the data set. For example, the bus schedules we tried to use in Chapter 5 are data tables.
Both uses of table structure are of great value to Web developers. Studies have shown, however, that tables can be variously troublesome to most users, even those without disabilities. Content organized in tables that contain accessibility barriers is content unavailable or meaningless to millions of users. With this in mind, we offer in this chapter a number of design techniques for creating trouble-free tables with maximum accessibility.
HTML Elements and Attributes Addressed in This Chapter
<table>, <caption>, <thead>, <tbody>, <tr>, <th>, <td>, <abbr>, <acronym>
id, headers, summary
Accessibility Checkpoints and Standards Addressed in This Chapter
Web Content Accessibility Guidelines 1.0 Checkpoints
3.3. Use style sheets to control layout and presentation. [Priority 2]
5. Create tables that transform gracefully.
5.1. For data tables, identify row and column headers. [Priority 1]
5.2. For data tables that have two or more logical levels of row or column headers, use markup to associate data cells and header cells. [Priority 1]
5.3. Do not use tables for layout unless the table makes sense when linearized. Otherwise, if the table does not make sense, provide an alternative equivalent (which may be a linearized version). [Priority 2]
5.4. If a table is used for layout, do not use any structural markup for the purpose of visual formatting. [Priority 2]
5.5. Provide summaries for tables. [Priority 3]
5.6. Provide abbreviations for header labels. [Priority 3]
11.2. Avoid deprecated features of HTML. [Priority 2]
13. Provide clear navigation mechanisms.
13.4. Use navigation mechanisms in a consistent manner. [Priority 2]
Section 508 Standards, §1194.22
(g) Row and column headers shall be identified for data tables.
(h) Markup shall be used to associate data cells and header cells for data tables that have two or more logical levels of row or column headers.