Complex table examples

Complex tables can be difficult for people using assistive technologies to understand and navigate.

As the number of headers associated with each data cell increases, users must listen to, understand and remember more contextual information while moving through the table.

Some assistive technologies may also present complex header relationships differently, making the experience less consistent. Wherever possible, simplify tables so that each data cell is associated with no more than two headers.

Defining complex

The term complex table does not have one universally accepted definition in accessibility guidance. On this page, a table is considered complex if a data cell needs more than two associated headers: more than one row header, more than one column header, or both.

This distinction matters because the scope attribute can only associate a data cell with one row header and one column header. When additional header relationships are needed, the headers and id attributes become necessary.

This is a structural definition based on the relationships between data cells and their headers. A table can contain many rows or columns and still be considered simple, while a much smaller table can be considered complex if even one data cell requires more than two associated headers.

This page does not cover interactive complexity, such as sortable columns, editable cells or drag-and-drop behaviour. Those features introduce different accessibility considerations and are typically implemented using ARIA grid patterns rather than native tables.

Example 1: Complex table

This table is considered complex because each data cell is associated with four header cells instead of a single row header and a single column header.

Consolidated and Parent revenue
Consolidated Parent
2023
$000
2022
$000
2023
$000
2022
$000
Revenue from contracts
Rail $2,000,000 $1,900,000 NA NA
Network $182,000 $170,000 NA $1,900
Other revenue
Something $4,000 $1,300 $1,500 NA
Totals $2,186,000 $2,071,300 $1,500 $1,900

Example 2: Simplified table

This table is considered simple because each data cell is associated with only a column header and a row header. This reduces the amount of contextual information users need to understand and remember while navigating the table.

The same information is presented in a simpler structure by repeating some values rather than grouping them under additional headers. This reduces the number of headers associated with each data cell.

Consolidated and Parent revenue
Consolidated
2023
$000
Consolidated
2022
$000
Parent
2023
$000
Parent
2022
$000
Revenue from contracts - Rail $2,000,000 $1,900,000 NA NA
Revenue from contracts - Network $182,000 $170,000 NA $1,900
Other revenue - Something $4,000 $1,300 $1,500 NA
Totals $2,186,000 $2,071,300 $1,500 $1,900