- The table container has role
- Each row container has role
rowand is either a DOM descendant of or owned by the
tableelement or an element with role
- Each cell is either a DOM descendant of or owned by a
rowelement and has one of the following roles:
columnheaderif the cell contains a title or header information for the column.
rowheaderif the cell contains title or header information for the row.
cellif the cell does not contain column or row header information.
- If there is an element in the user interface that serves as a label for the table,
aria-labelledbyis set on the table element with a value that refers to the labelling element. Otherwise, a label is specified for the table element using
- If the table has a caption or description,
aria-describedbyis set on the table element with a value referring to the element containing the description.
- If the table contains sortable columns or rows,
aria-sortis set to an appropriate value on the header cell element for the sorted column or row..
- If there are conditions where some rows or columns are hidden or not present in the DOM (e.g., there are widgets on the page for hiding rows or columns), the following properties are applied:
aria-rowcountis set to the total number of columns or rows, respectively.
aria-rowindexis set to the position of a cell within a row or column, respectively.
- If the table includes cells that span multiple rows or multiple columns, then
aria-colspanis applied as described in grid and table properties.
Was this page helpful?
Thanks for your feedback!