Go to overview: Standard HTML mark-up in screenreader tests

Comparing complex data table mark-up with row headers marked up with headers/id and scope="rowgroup"

Detlev Fischer, (detlev [dot] fischer [ at ] testkreis [dot] de)

Last update: 17 September 2012

Complex data table marked up with headers and id

Comparing some baleen whales and toothed whales (headers/id)
suborder species Length m Weight kg Max. age years
Baleen whales Humpback whale 12 to 16 36,000 45 to 100
Pygmy right whale 6.5 3,500 unknown
Toothed whales Long-Beaked Common Dolphin 1.9 to 2.5 80 to 235 8 to 9
Orca whale 8 6000 50 to 60

Table marked up with id and headers: Results for screen reader tests

Win 7, IE 9, JAWS 13

Consistent but uneven behavior.

Non-linear table content navigation with (STR + ALT + arrow keys): JAWS reads changing headers, but unevenly:

  • For the first row of a rowgroup JAWS reads top-level row header + secondary row header + cell content + changing row/column.
  • For the second row in a rowgroup, JAWs drops the top-level header, i.e. it reads secondary row header + cell content + changing row/column.

This behaviour makes sense when navigating a column from top to bottom but can be a problem when navigating bottom to top whenever the top-level header is important for differentiation (especially when crossing from one rowgroup to the rowgroup above). Reading the individual cell (presumably with all associated headers) requires key command STR + ALT + num pad 5 (not available on laptop).

Win 7, FF 13, JAWS 13 Exactly the same behaviour as under WIN 7, IE9, JAWS 13 above.
Win 7, FF 13, NVDA

Consistent but uneven behavior.

Linear reading: NVDA reads row headers with associated column headers, then differently depending on whether it is the first or second row in the rowgroup. For the first row in the rowgroup, it reads top-level row header + secondary row header + column header + column number + cell content each time (which is quite verbose), for the second row it reads just first top-level + column header + column number + cell content.

Non-linear table content navigation with (STR + ALT + arrow keys): NVDA reads headers unevenly.

  • Moving vertically down from cell content in the first row of a rowgroup to the second row, it will read the second-level header, but moving up from there to the first row in the row group (or down to the first row in another row group), it will not read any row header, just row number and content.
  • Moving horizontally in the first row of the rowgroup, it will read top row header + secondary row header + column header + column number + cell content for each new content cell (which seems redundant); moving horizontally in the second row of the rowgroup, it will read just top level row header + column header + column number + cell content for each new content cell (which is missing the crucial differentiator, the second row header containing the species).

Bug? NVDA reads contents of caption element twice.

Win 7, IE9, NVDA Headers not read by NVDA in IE9. In-table navigation (CTR + ALT + arrow keys) just reads column number + cell content. Same erratic behaviour as in table marked up with headers/id regarding up/down navigation between content cells (STR + ALT + Arrow keys).
Win XP, FF 15.0, NVDA 2011.3 Same behaviour as described for NVDA and Firefox under WIN 7 above.
Win XP, IE 8, NVDA 2011.3 NVDA under IE 8 does not read any headers, just column number, then content. Aside: Table cell navigation with (STR + ALT + arrow keys) seems to be buggy, moving up and down wih arrows sometimes moves diagonally.
Win XP, IE 8, SaToGo In table navigation (STR + ALT + arrow keys), JAWS under IE9 just reads the content of the data cells, no headers, no column number.
Mac OS 10.5.8, VoiceOver Cannot get VoiceOver to read headers even though VO settings are set to read headers. Some commands do not seem to work (e.g., Control-Option + T to jump to table, or Control-Option + R to read row in table). If anyone can help out to complement / verify these results for VO, please get in touch! (detlev [dot] fischer [ at ] testkreis [dot] de)

Same table marked up with scope="rowgroup"

Comparing some baleen whales and toothed whales (scope)
suborder species Length m Weight kg Max age years
Baleen whales Humpback whale 12 to 16 36,000 45 to 100
Pygmy right whale 6.5 3,500 unknown
Toothed whales Long-Beaked Common Dolphin 1.9-2.5 80 to 235 8 to 9
Orca whale 8 6000 50 to 60

Table marked up with scope="rowgroup": Results for screen reader tests

Win 7, IE 9, JAWS 13 Exactly the same behaviour as in table marked up with headers/id above.
Win 7, FF 13, JAWS 13 Exactly the same behaviour as under WIN 7, IE9, JAWS 13 above.
Win 7, FF 13, NVDA

Linear reading: With NVDA and Firefox, mark-up with scope leads to a better linear reading compared to mark-up with headers/id: reads row headers with associated column headers, for content cells after that, just column header + column number + cell content. Entering the the second row, it just reads second-level header + column header + column number + cell content.

Non-linear table content navigation with (STR + ALT + arrow keys):

  • Moving horizontally: Reads column header + column number + cell content.
  • Moving vertically: Reads secondary row header + row number + cell content.

Problem: Since the top-level header is not read (unless users navigate to it or read the entire row), ambiguity exists whenever the top-level row header is critical for the differentiation of rows.

Bug? NVDA reads contents of caption element twice.

Win 7, IE9, NVDA Headers not read by NVDA in IE9, just column number. Same behaviour as for table marked up with headers/id. Aside: Table cell navigation with (STR + ALT + arrow keys) seems to be buggy, moving up and down wih arrows sometimes moves diagonally.
Win XP, FF 15.0, NVDA 2011.3 Same behaviour as under Win7 FF13 NVDA.
Win XP, IE 8, NVDA 2011.3 Same as under NVDA under Win7 and IE 9 above.
Win XP, IE 8, SaToGo In table navigation (STR + ALT + arrow keys), SaToGo under IE8 reads no headers, no column number, just reads the content of cells.
Mac OS 10.5.8, VoiceOver ??? See note above.