Tables as Consumed by JAWS
The article describes how JAWS (version 10 in this case), a screen reader, decides whether an HTML table is used for layout purposes or as a data table. It turns out that JAWS does not lean on the
th element or other markup clues. JAWS will look for the attribute
DataTable=true|1 as an indicator that the table is used to hold data, but this is invalid HTML and certainly isn’t supported by me or any WYSIWYG editors in use in CMS editors.
Instead, JAWS looks for the presence of
at least 2 rows and 2 columns AND at least 4 cells in the table are between 200 and 16000 square pixels in size to determine if a table is a data table. This means JAWS ignores other markup used for accessibility or indication of the table’s purpose. JAWS also analyzes the rendered size of the table, so a data table that has been enlarged by a low-vision user could be treated as layout only.
ARIA does allow authors to specify a table for presentation only (
role="presentation"), but this doesn’t work to force a table to be treated as data only. I suggest you check out the post and some of the user comments, and then accept that JAWS just isn’t handling tables properly.