Tables Screen reader compatibility
Last updated: May 20, 2018
Screen reader compatibility for HTML tables, showing how failures and techniques work in specific screen reader / browser combinations.
The results include two types of test:
- Expected to work - these tests show support when accessibility features are used correctly
- Expected to fail - these tests show what happens when accessibility features are used incorrectly (marked with )
Note: Screen readers attempt to detect layout tables using heuristics, which vary widely between screen readers. When a layout table is detected, a screen reader linearizes the cells into a series of paragraphs, which prevents the table data being understood as a grid. This causes serious problems when a data table is wrongly identified as a layout table. For example, consider trying to understand the Periodic Table of the Elements as a long series of element names without the columns.
Reliability by user agent
The solid area in the graph shows percentage of tests that pass in all tested interaction modes. The cross hatched area shows partial passes that only work in some interaction modes. An example of a partial pass is when form labels are read when tabbing, but ignored in browse mode.
|JAWS IE||JAWS 17.0.2619 with IE11|
|JAWS Firefox||JAWS 17.0.2619 with FF48|
|NVDA IE||NVDA 2017.3 with IE11|
|NVDA Firefox||NVDA 2017.3 with FF60|
|VoiceOver Mac||VoiceOver OSX 10.12 with Safari 10.1.2|
|VoiceOver iOS||VoiceOver iOS 10.3 with Safari iOS 10.3|
|WindowEyes IE||WindowEyes 9.2 with IE11|
|Dolphin IE||Dolphin SR 15.05 with IE11|
|SaToGo IE||SaToGo 220.127.116.11 with IE11|
|Average||Including older versions|
The average includes all versions, but some browser/AT combinations have tests for multiple versions (NVDA / JAWS / VoiceOver), while others only have tests for a single version (SaToGo and Dolphin).
Expected to work
These tests use conformant HTML or WCAG sufficient techniques and might be expected to work in screen readers. This doesn't always happen.
|Data table with CAPTION and TH|
|Data table with SUMMARY and TH|
|Data table with TD HEADERS attribute|
|Data table with TH cell headers|
|Data table with TH row/columns headers with SCOPE|
|Data table with role grid|
|Data table with role rowheader headers but no TH|
|Layout table with role presentation|
|Layout table with single cell|
Expected to fail
These tests use non-conformant HTML or WCAG failures and are expected to fail in screen readers.
|Data table with CAPTION but no TH|
|Data table with SUMMARY but no TH|
|Data table with TH row/columns headers without SCOPE|
|Data table with THEAD, TFOOT but no TH|
|Data table with no TH elements|
|Data table with null SUMMARY but no TH|
|Data table with role note|
|Data table with role presentation|
Tests expected to fail (due to authoring errors) are marked with .
- Works in 100% of tested screen readers
- Fails in 1% - 25% of tested screen readers
- Fails in 26% - 50% of tested screen readers
- Fails in 51% - 75% of tested screen readers
- Fails in 76% - 100% of tested screen readers
- Stable - works, or doesn't cause problems, in all versions of a specific combination of screen reader and browser
- Better - works, or doesn't cause problems, in the most recent version of a specific combination of screen reader and browser (improvement)
- Worse - causes problems in the most recent version of a specific combination of screen reader and browser, but used to work in older versions (regression)
- Broken - causes problems in all versions of a specific combination of screen reader and browser
All tests were carried out with screen reader factory settings. JAWS in particular has a wide variety of settings controlling exactly what gets spoken.
Screen readers allow users to interact in different modes, and can produce very different results in each mode. The modes used in these tests are:
- Reading Content read using the «read next» command in a screen reader
- Tabbing Content read using the «tab» key in a screen reader
- Heading Content read using the «next heading» key in a screen reader
- Touch Content read when touching an area of screen on a mobile device
In the «What the user hears» column:
- Commas represent short pauses in screen reader voicing
- Full Stops represent places where voicing stops, and the «read next» or «tab» or «next heading» command is pressed again
- Ellipsis … represent a long pause in voicing
- (Brackets) represent voicing that requires a keystroke to hear