4.6 Alternative Representations of Tables

  1. [PRIORITY 2]
    Give access to table summary information. User agents must give users access to the value of the "summary" attribute of the TABLE element. New: The value should give the purpose and structural information about the table.
  2. [PRIORITY 2]
    Allow the user to select serialized representation of table by row or column order for a table that does not include header tag "TH" information. Tables without "TH" tags typically are used for layout.

    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:

    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

    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
    or in column order:
    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.

  3. [PRIORITY 2]
    Allow the user to select serialized representation of table by row or column order for a table that does include header tag "TH" information . A table that includes "TH" tags indicates that the table is being used for data rendering and that row and column position are important for understanding the 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:

    A 3 by 3 data table using HD tags for column heads and row stubs
    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.

  4. [PRIORITY 2]
    rewritten: `Provide a "try again" feature to allow the user to selectively choose the kind of serialization for each table. For poorly formatted tables, this provides some repair strategy through the user agent.
  5. [PRIORITY 2]
    New: Give warning for cells that span several rows and/or columns. Such cells alter the mental recollection of structure. "TH" cells with colspan greater than one should augment the column identification of subsidiary "TH" cells. Likewise row stub "TH" cells with rowspan greater than one should augment each subsidiary "TH" cell in the spanned rows.

6.5 Table Navigation

  1. [PRIORITY 2]
    Allow the user to use the keyboard to move the selection between cells in a table (notably left/right within a row and up/down within a column).

    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).