Working with Table Reading Order

Attribute Usage
ReadOrder The attribute is optional. It must be defined as either row by row or column by column to specify how the table will be read. If the attribute is not present, the table is read row by row. The ReadOrder attribute is honored only for Layout tables.

One important accessibility feature is the ability to define the reading order of information contained in tables as either row-by-row order or column-by-column order. In the Requirements.xml, this is handled through the read order attribute associated with the table element in the REQ.

In the table element, a ReadOrder attribute is used to specify the read order for a given table as either row by row (RowByRow) or column by column (ColumnByColumn). This is used to define the order that tables are read by screen reader applications.

The ReadOrder attribute provides two options; Column by Column and Row by Row reading. The attribute value defaults to No Value; if the attribute value is left as No Value, the default row by row order is used just as if the attribute was not present on the table element.

Layout tables with the presence of both the ReadOrder and Colspan attributes will be honored and tags will be created for the colspan cell contents and for each spanning column in the tag tree structure so it reads in logical order.

Note: If the ReadOrder attribute is not present, the table data will be read as row by row. So that any of the following three conditions results in row by row reading: the attribute is not present, the attribute is present but not set (value=No Value), or set as row by row (value=RowByRow).

In the Table element, right-click and in the shortcut menu select ReadOrder.

In the ReadOrder attribute, select either ColumnByColumn or RowByRow as the reading preference. The attribute default value is No Value. To modify the attribute value, select the attribute and double-click and select the desired table reading order.

ColumnByColumn

Note the following regarding the selection of ColumnByColumn:
  • Read order continues down the first column, reading all cells, then continues down the next column, including the spanned value from the previous column.
  • Read order continues as expected when the contents of a cell contains another table that is read row by row.
  • Read order continues as expected when a table (layout or data) cell contains a table that is marked ColumnByColumn.