The following is an example of sample markup for a table without TH information:
<TABLE>
<CAPTION>A table without any HD tags</CAPTION>
<COL WIDTH=1*>
<COL WIDTH=1*>
<TR>
<TD>AAAAA AA AAAA AAA AAAA AA A AAAAA AAAA AAAAA</TD>
<TD>BB BBBB BB BBBB BBBBBB B BBB BB BBBBB BBBB BBB</TD>
</TR>
<TR>
<TD>DDD DD DDDD DD DDDD DDD DDDDD DDD DD DDDD D DDDD</TD>
<TD>E EE EEEE EE EEEE E EEEEE EE EEEEE EE EEE EEEE EE</TD>
</TR>
</TABLE>
For a particular narrow window for rendering and large font size choice the <TD> cell contents might fold in a visual user agent to appear as:
AAAAA AA AAAA AAA AAAA AA A AAAAA AAAA AAAAA | BB BBBB BB BBBB BBBBBB B BBB BB BBBBB BBBB BBB |
DDD DD DDDD DD DDDD DDD DDDDD DDD DD DDDD D DDDD | E EE EEEE EE EEEE E EEEEE EE EEEEE EE EEE EEEE EE |
Tabular information can confuse users with certain dependent user agents that are unaware of cell content display requiring more than one line.
A table without any HD tags
AAAAA AA AAAA AAA AAAA BB BBBB BB BBBB BBBBBB
AA A AAAAA AAAA AAAAA B BBB BB BBBBB BBBB BBB
DDD DD DDDD DD DDDD DDD E EE EEEE EE EEEE E EEEEE
DDDDD DDD DD DDDD D DDDD EE EEEEE EE EEE EEEE EE
User agents should be able to serialize the table -- render it one cell at a time -- to reduce confusion.
Users should be able to specify whether they want the cells rendered in row order or column order.
A serialization based on row order that preserves the visual folding would be rendered as:
A table without any HD tags
AAAAA AA AAAA AAA AAAA
AA A AAAAA AAAA AAAAA
BB BBBB BB BBBB BBBBBB
B BBB BB BBBBB BBBB BBB
DDD DD DDDD DD DDDD DDD
DDDDD DDD DD DDDD D DDDD
E EE EEEE EE EEEE E EEEEE
EE EEEEE EE EEE EEEE EE
A serialization based on column order would be rendered as:
A table without any HD tags
AAAAA AA AAAA AAA AAAA
AA A AAAAA AAAA AAAAA
DDD DD DDDD DD DDDD DDD
DDDDD DDD DD DDDD D DDDD
BB BBBB BB BBBB BBBBBB
B BBB BB BBBBB BBBB BBB
E EE EEEE EE EEEE E EEEEE
EE EEEEE EE EEE EEEE EE
Table serialization without preserving the visual folding is logically more consistent, though the folded form may be valuable to remain synchronized with the visual rendering where both are in use at the same time.
In row order:
A table without any HD tags
AAAAA AA AAAA AAA AAAA AA A AAAAA AAAA AAAAA
BB BBBB BB BBBB BBBBBB B BBB BB BBBBB BBBB BBB
DDD DD DDDD DD DDDD DDD DDDDD DDD DD DDDD D DDDD
E EE EEEE EE EEEE E EEEEE EE EEEEE EE EEE EEEE EE
A table without any HD tags
AAAAA AA AAAA AAA AAAA AA A AAAAA AAAA AAAAA
DDD DD DDDD DD DDDD DDD DDDDD DDD DD DDDD D DDDD
BB BBBB BB BBBB BBBBBB B BBB BB BBBBB BBBB BBB
E EE EEEE EE EEEE E EEEEE EE EEEEE EE EEE EEEE EE
Users may choose different mechanisms for rendering cell header information (e.g., render row and/or column header information before each cell, render row header information once at the beginning of the row, ask for cell identification, etc.) The HTML 4.0 specification (see [HTML40], chapter 11 and in particular section 11.4.3) and the CSS 2 specification (see [CSS2], chapters 12, 17, and 19) describe mechanisms for structuring tables, identifying headers, and rendering them in accessible ways.
See also the section on table navigation for related information.
Note. Table serialization is important for tables used to structure tabular information as well as those used to lay out blocks of information.
The following is an example of sample markup for a table with TH information:
<TABLE>
<CAPTION>A 3 by 3 data table using HD tags for row stubs and column heads</CAPTION>
<TR>
<TH></TH>
<TH>R/C</TH>
<TH>HD1</TH>
<TH>HD2</TH>
</TR>
<TR>
<TH>RS1</TH>
<TD>Data 11</TD>
<TD>Data 12</TD>
</TR>
<TR>
<TR>
<TH>RS2</TH>
<TD>Data 21</TD>
<TD>Data 22</TD>
</TR>
</TABLE>
That table might be rendered as:
R/C | HD1 | HD2 |
---|---|---|
RS1 | Data 11 | Data 12 |
RS2 | Data 21 | Data 22 |
A serialization based on row order with row and column identification on each cell would be rendered fully including the HD cells and their content as:
A 3x3 data table using HD tags for column heads and row stubs
Row: R/C Column: R/C
R/C
Row: R/C Column: HD1
HD1
Row: R/C Column: HD2
HD2
Row: RS1 Column: R/C
RS1
Row: RS1 Column: HD1
Data 11
Row: RS1 Column: HD2
Data 12
Row: RS2 Column: R/C
R/C
Row: RS2 Column: HD1
Data 21
Row: RS2 Column: HD2
Data 22
A serialization based on column order would be rendered as:
A 3x3 data table using HD tags for column heads and row stubs
Row: R/C Column: R/C
R/C
Row: R/C Column: HD1
HD1
Row: R/C Column: HD2
HD2
Row: RS1 Column: R/C
RS1
Row: RS1 Column: HD1
Data 11
Row: RS1 Column: HD2
Data 12
Row: RS2 Column: R/C
R/C
Row: RS2 Column: HD1
Data 21
Row: RS2 Column: HD2
Data 22
With that much identifying information, the above examples can be simplified by suppressing those redundant descriptions of the TH cell content. For example in row order:
A 3x3 data table using HD tags for column heads and row stubs
Row: RS1 Column: HD1
Data 11
Row: RS1 Column: HD2
Data 12
Row: RS2 Column: HD1
Data 21
Row: RS2 Column: HD2
Data 22
Tabular information can confuse users with certain dependent user agents. User agents should be able to serialize the table -- render it one cell at a time -- to reduce confusion.
Users should be able to specify whether they want the cells rendered row order or column order.
Users may choose different mechanisms for rendering cell header information (e.g., render row and column header information before each cell, render row header information once at the beginning of the row, etc.) The HTML 4.0 specification (see [HTML40], chapter 11 and in particular section 11.4.3) and the CSS 2 specification (see [CSS2], chapters 12, 17, and 19) describe mechanisms for structuring tables, identifying headers, and rendering them in accessible ways.
See also the section on table navigation for related information.
Note. Table serialization is important for tables used to structure tabular information as well as those used to lay out blocks of information.
Allow the user to determine the structure of tables (how many rows and how many columns in each of its sections), and any nesting of tables in cells of other tables.
A table navigation mechanism should also provide the user with information about the current table cell (see the guidelines on alternative representations of tables).