Notice: This is a work in progress. Please submit feedback or suggestions.

Test: HTML td element with a row header (th[scope="row"])

Screen Reader support level: partial (58/60)

Voice Control support level: not applicable

This test verifies that the row header is announced for associated td elements when the scope="row" attribute is used.

Run this test and and submit your results

On this page

Test HTML

open the test page
<!DOCTYPE html>
<html lang="en">
<head>
    <title>HTML td element with row header (custom)</title>
    <style>
        table {
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid #000;
        }
    </style>
</head>
<body>
    <p>Text before the table</p>
    <table>
        <tr>
            <th scope="row">Name</th>
            <td id="target">Greg</td>
        </tr>
        <tr>
            <th scope="row">Type</th>
            <td>car</td>
        </tr>
    </table>
    <p>Text after the table</p>
</body>
</html>

Dates and Versions of tested combinations

ATAT VersionBrowserBrowser versionOS versionDate tested
JAWS2018.1811.2Google Chrome7418092019-05-03
JAWS2018.1811.2Internet Explorer11.13418092019-05-03
JAWS2018.1811.2Firefox (desktop)6618092019-05-03
Narrator1809Microsoft Edge44.1776318092019-05-03
NVDA2018.1808.10Google Chrome7418092019-05-03
NVDA2018.2.1Firefox (desktop)61.0.118032018-07-30
Orca3.31.4Firefox (desktop)69Ubuntu 19.042019-09-14
TalkBack7.3.0Google Chrome (android)7672019-09-14
VoiceOver for iOS12.2Safari (iOS)12.212.22019-05-01
VoiceOver for macOS10.14.4Safari (macOS)12.110.14.42019-05-03

Summary of Screen Reader support by expectation

ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver for iOSVoiceOver for macOS
table element
MUST convey an appropriate rolesupportedsupportedsupportedsupportedsupportedsupportedsupported
MUST convey the boundaries of the tablesupportedsupportedsupportedsupportedsupportedsupportedsupported
scope attribute
MUST convey the header as a row header if the scope is set to "row"supportedsupportedsupportedsupportedsupportednonesupported
th element
MUST convey that the cell is a headersupportedsupportedsupportedsupportedsupportednonesupported
MUST convey the position of the header (row/column)supportedsupportedsupportedsupportedsupportedsupportedsupported
td element
MAY convey the table cell rolesupportedsupportedsupportedsupportedsupportedsupportedsupported
MUST convey the position of the header (row/column)supportedsupportedsupportedsupportedsupportedsupportedsupported

* means that some support is hidden behind settings

Summary of Voice Control support by expectation

ExpectationDragon Naturally SpeakingVoice Access for AndroidVoice Control for iOSVoice Control for MacOS
Not applicable

* means that some support is hidden behind settings

Detailed support results by expectation

Expectation for the table element: convey an appropriate role

Rationale: A user needs to be aware that they are navigating a table.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the table element feature.

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingGoogle Chromenot applicable-More information
JAWSGoogle Chromeyes
  • Result: (pass)
    • command: Down arrow (Read next item)
    • Output: "table with 2 columns and 2 rows"
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: "table end"
More information
JAWSInternet Exploreryes
  • Result: (pass)
    • command: Down arrow (Read next item)
    • Output: "table with 2 columns and 2 rows"
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: "table end"
More information
JAWSFirefox (desktop)yes
  • Result: (pass)
    • command: Down arrow (Read next item)
    • Output: "table with 2 columns and 2 rows"
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: "table end"
More information
NarratorMicrosoft Edgeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: "Greg, non-selected, row header Name, row 1 of 2 column 2 of 2"
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: "Greg, non-selected, row header Name, row 1 of 2 column 2 of 2"
  • Result: (pass)
    • command: Control + Shift + Alt + Left arrow (Read row header)
    • Output: "name, row header"
More information
NVDAGoogle Chromeyes
  • Result: (pass)
    • command: down arrow (Read next item)
    • Output: "table with 2 rows and 2 columns, row 1 column 1, Name"
More information
NVDAFirefox (desktop)yes
  • Result: (pass)
    • command: down arrow (Read next item)
    • Output: "table with 2 rows and 2 columns, row 1 column 1, Name"
More information
OrcaFirefox (desktop)yes
  • Result: (pass)
    • command: down arrow (Read next item)
    • Output: "table with 2 rows, 2 columns, name, greg"
More information
TalkBackGoogle Chrome (android)yes
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: "Name, row header, row 1, in grid, 2 rows, 2 columns"
More information
Voice Access for AndroidGoogle Chrome (android)not applicable-More information
Voice Control for iOSSafari (iOS)not applicable-More information
Voice Control for MacOSSafari (macOS)not applicable-More information
VoiceOver for iOSSafari (iOS)yes
  • Result: (pass)
    • command: Swipe Right (Next item)
    • Output: "name, row 1 column 1, table start 2 rows, 2 columns"
  • Result: (pass)
    • command: Swipe Right (Next item)
    • Output: "car, column 2, table end"
More information
VoiceOver for macOSSafari (macOS)yes
  • Result: (pass)
    • command: VO + Right arrow (Read next item)
    • Output: "table, 2 columns, 2 rows"
  • Result: (pass)
    • command: VO + Left Arrow (Read previous item)
    • Output: "end of table"
More information

Extended Support for: table element: convey an appropriate role

These are less common combinations

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingInternet Explorernot applicable-More information
Dragon Naturally SpeakingFirefox (desktop)not applicable-More information
JAWSMicrosoft Edgeunknown-More information
NarratorFirefox (desktop)unknown-More information
NarratorGoogle Chromeunknown-More information
NarratorInternet Explorerunknown-More information
NVDAInternet Explorerunknown-More information
NVDAMicrosoft Edgeunknown-More information
TalkBackFirefox (Android)unknown-More information
Voice Access for AndroidFirefox (Android)not applicable-More information
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
OrcaGoogle Chromeunknown-More information
Voice Control for MacOSGoogle Chromenot applicable-More information
Voice Control for MacOSFirefox (desktop)not applicable-More information
Back to top

Expectation for the table element: convey the boundaries of the table

Rationale: A user needs to know when they enter and exit an element

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples of assistive technologies support this expectation:

  • A screen reader might announce the role of the element when entering and say something like "leaving" when exiting.
  • A screen reader might not explicitly announce entering and existing the element, but instead imply that the is in the containing object by conveying the roles of required children (options in a listbox for example).
  • A screen reader might announce position in set information such as "1 of 6".
  • A screen reader might not convey boundaries if the content fits on a single line

Grading method: All of the listed commands must pass for the expectation to pass.

This expectation is from the table element feature.

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingGoogle Chromenot applicable-More information
JAWSGoogle Chromeyes
  • Result: (pass)
    • command: Down arrow (Read next item)
    • Output: "table with 2 columns and 2 rows"
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: "table end"
More information
JAWSInternet Exploreryes
  • Result: (pass)
    • command: Down arrow (Read next item)
    • Output: "table with 2 columns and 2 rows"
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: "table end"
More information
JAWSFirefox (desktop)yes
  • Result: (pass)
    • command: Down arrow (Read next item)
    • Output: "table with 2 columns and 2 rows"
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: "table end"
More information
NarratorMicrosoft Edgeyes
  • Result: (pass)
    • command: Down arrow (Read next item (scan mode))
    • Output: "table exit, text after the table"
  • Result: (pass)
    • command: Up arrow (Read previous item (scan mode))
    • Output: "table exit, text before the table"
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: "no next cell in column"
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: "no next cell in row"
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: "no previous cell in column"
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: "no previous cell in row"
More information
NVDAGoogle Chromeyes
  • Result: (pass)
    • command: down arrow (Read next item)
    • Output: "table with 2 rows and 2 columns, row 1 column 1, Name"
  • Result: (pass)
    • command: down arrow (Read next item)
    • Output: "out of table, text after the table"
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: "edge of table"
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: "edge of table"
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: "edge of table"
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: "edge of table"
More information
NVDAFirefox (desktop)yes
  • Result: (pass)
    • command: down arrow (Read next item)
    • Output: "table with 2 rows and 2 columns, row 1 column 1, Name"
  • Result: (pass)
    • command: down arrow (Read next item)
    • Output: "out of table, text after the table"
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: "edge of table"
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: "edge of table"
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: "edge of table"
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: "edge of table"
More information
OrcaFirefox (desktop)yes
  • Result: (pass)
    • command: down arrow (Read next item)
    • location before command: before target
    • location after command: start of target
    • Output: "table with 2 rows, 2 columns, name, greg"
  • Result: (pass)
    • command: down arrow (Read next item)
    • location before command: within target
    • location after command: after target
    • Output: "leaving table"
  • Result: (pass)
    • command: alt + shift + right arrow (Move to next column)
    • Output: "end of row"
  • Result: (pass)
    • command: alt + shift + left arrow (Move to previous column)
    • Output: "beginning of row"
  • Result: (pass)
    • command: alt + shift + down arrow (Move to next row)
    • Output: "bottom of column"
  • Result: (pass)
    • command: alt + shift + up arrow (Move to previous row)
    • Output: "top of column"
More information
TalkBackGoogle Chrome (android)yes
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: "Name, row header, row 1, in grid, 2 rows, 2 columns"
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: "out of grid"
More information
Voice Access for AndroidGoogle Chrome (android)not applicable-More information
Voice Control for iOSSafari (iOS)not applicable-More information
Voice Control for MacOSSafari (macOS)not applicable-More information
VoiceOver for iOSSafari (iOS)yes
  • Result: (pass)
    • command: Swipe Right (Next item)
    • Output: "name, row 1 column 1, table start 2 rows, 2 columns"
  • Result: (pass)
    • command: Swipe Left (Previous item)
    • Output: "car, column 2, table end"
More information
VoiceOver for macOSSafari (macOS)yes
  • Result: (pass)
    • command: VO + Right arrow (Read next item)
    • Output: "table, 2 columns, 2 rows"
  • Result: (pass)
    • command: VO + Left Arrow (Read previous item)
    • Output: "end of table"
More information

Extended Support for: table element: convey the boundaries of the table

These are less common combinations

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingInternet Explorernot applicable-More information
Dragon Naturally SpeakingFirefox (desktop)not applicable-More information
JAWSMicrosoft Edgeunknown-More information
NarratorFirefox (desktop)unknown-More information
NarratorGoogle Chromeunknown-More information
NarratorInternet Explorerunknown-More information
NVDAInternet Explorerunknown-More information
NVDAMicrosoft Edgeunknown-More information
TalkBackFirefox (Android)unknown-More information
Voice Access for AndroidFirefox (Android)not applicable-More information
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
OrcaGoogle Chromeunknown-More information
Voice Control for MacOSGoogle Chromenot applicable-More information
Voice Control for MacOSFirefox (desktop)not applicable-More information
Back to top

Expectation for the scope attribute: convey the header as a row header if the scope is set to "row"

Rationale: The user needs to be able to determine what headers a cell belongs to.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the scope attribute feature.

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingGoogle Chromenot applicable-More information
JAWSGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: n"ame, greg, row 1"
  • Result: (pass)
    • command: Control + Alt + Numpad 5 (Read current cell)
    • Output: "column 2, row 1, name, Greg"
More information
JAWSInternet Exploreryes
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: "name, greg, row 1"
  • Result: (pass)
    • command: Control + Alt + Numpad 5 (Read current cell)
    • Output: "column 2, row 1, name, Greg"
More information
JAWSFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: "name, greg, row 1"
  • Result: (pass)
    • command: Control + Alt + Numpad 5 (Read current cell)
    • Output: "column 2, row 1, name, Greg"
More information
NarratorMicrosoft Edgeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: "Greg, non-selected, row header Name, row 1 of 2 column 2 of 2"
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: "Greg, non-selected, row header Name, row 1 of 2 column 2 of 2"
  • Result: (pass)
    • command: Control + Shift + Alt + Left arrow (Read row header)
    • Output: "name, row header"
More information
NVDAGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: "name row 1 greg"
  • Result: (pass)
    • command: up arrow (Read previous item)
    • Output: "name row 1 column 2 greg"
More information
NVDAFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: "name row 1 greg"
  • Result: (pass)
    • command: up arrow (Read previous item)
    • Output: "name row 1 column 2 greg"
More information
OrcaFirefox (desktop)yes
  • Result: (pass)
    • command: alt + shift + up arrow (Move to previous row)
    • Output: "Name, greg, row 1, column 2"
More information
TalkBackGoogle Chrome (android)yes
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: "Type, row header, name"
More information
Voice Access for AndroidGoogle Chrome (android)not applicable-More information
Voice Control for iOSSafari (iOS)not applicable-More information
Voice Control for MacOSSafari (macOS)not applicable-More information
VoiceOver for iOSSafari (iOS)none
  • Result: (fail)
    • command: Swipe Right (Next item)
    • Output: "Greg, column 2"
  • Result: (fail)
    • command: Swipe Left (Previous item)
    • Output: "Greg, row 1 column 2"
  • Result: (fail)
    • command: three-finger tap (Read additional information about the current position)
    • Output: "row 1 column 1"
  • Result: (fail)
    • command: three-finger tap (Read additional information about the current position)
    • Output: "row 1 column 2"
More information
VoiceOver for macOSSafari (macOS)yes
  • Result: (pass)
    • command: VO + Up Arrow (Move to Previous Row)
    • Output: "Row 1 of 2 Name, greg"
  • Result: (pass)
    • command: VO + R (Read row header)
    • Output: "Name"
More information

Extended Support for: scope attribute: convey the header as a row header if the scope is set to "row"

These are less common combinations

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingInternet Explorernot applicable-More information
Dragon Naturally SpeakingFirefox (desktop)not applicable-More information
JAWSMicrosoft Edgeunknown-More information
NarratorFirefox (desktop)unknown-More information
NarratorGoogle Chromeunknown-More information
NarratorInternet Explorerunknown-More information
NVDAInternet Explorerunknown-More information
NVDAMicrosoft Edgeunknown-More information
TalkBackFirefox (Android)unknown-More information
Voice Access for AndroidFirefox (Android)not applicable-More information
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
OrcaGoogle Chromeunknown-More information
Voice Control for MacOSGoogle Chromenot applicable-More information
Voice Control for MacOSFirefox (desktop)not applicable-More information
Back to top

Expectation for the th element: convey that the cell is a header

Rationale: A user needs to be able to determine what headers apply to a given cell.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the th element feature.

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingGoogle Chromenot applicable-More information
JAWSGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (cell is announced as the header as you transition between rows)
More information
JAWSInternet Exploreryes
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (cell is announced as the header as you transition between rows)
More information
JAWSFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (cell is announced as the header as you transition between rows)
More information
NarratorMicrosoft Edgeyes
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (cell is announced as the header as you transition between rows)
More information
NVDAGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (cell is announced as the header as you transition between rows)
More information
NVDAFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (cell is announced as the header as you transition between rows)
More information
OrcaFirefox (desktop)yes
  • Result: (pass)
    • command: alt + shift + down arrow (Move to next row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: alt + shift + up arrow (Move to previous row)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: alt + shift + right arrow (Move to next column)
    • Output: (cell is announced as the header as you transition between rows)
  • Result: (pass)
    • command: alt + shift + left arrow (Move to previous column)
    • Output: (cell is announced as the header as you transition between rows)
More information
TalkBackGoogle Chrome (android)yes
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: "Name, row header"
More information
Voice Access for AndroidGoogle Chrome (android)not applicable-More information
Voice Control for iOSSafari (iOS)not applicable-More information
Voice Control for MacOSSafari (macOS)not applicable-More information
VoiceOver for iOSSafari (iOS)none
  • Result: (fail)
    • command: Swipe Right (Next item)
    • Output: "Greg, column 2"
  • Result: (fail)
    • command: Swipe Left (Previous item)
    • Output: "Greg, row 1 column 2"
  • Result: (fail)
    • command: three-finger tap (Read additional information about the current position)
    • Output: "row 1 column 1"
  • Result: (fail)
    • command: three-finger tap (Read additional information about the current position)
    • Output: "row 1 column 2"
More information
VoiceOver for macOSSafari (macOS)yes
  • Result: (pass)
    • command: VO + Up Arrow (Move to Previous Row)
    • Output: "Row 1 of 2 Name, greg"
  • Result: (pass)
    • command: VO + R (Read row header)
    • Output: "Name"
More information

Extended Support for: th element: convey that the cell is a header

These are less common combinations

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingInternet Explorernot applicable-More information
Dragon Naturally SpeakingFirefox (desktop)not applicable-More information
JAWSMicrosoft Edgeunknown-More information
NarratorFirefox (desktop)unknown-More information
NarratorGoogle Chromeunknown-More information
NarratorInternet Explorerunknown-More information
NVDAInternet Explorerunknown-More information
NVDAMicrosoft Edgeunknown-More information
TalkBackFirefox (Android)unknown-More information
Voice Access for AndroidFirefox (Android)not applicable-More information
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
OrcaGoogle Chromeunknown-More information
Voice Control for MacOSGoogle Chromenot applicable-More information
Voice Control for MacOSFirefox (desktop)not applicable-More information
Back to top

Expectation for the th element: convey the position of the header (row/column)

Rationale: A user needs to be able to determine where they are while navigating a table.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the th element feature.

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingGoogle Chromenot applicable-More information
JAWSGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
JAWSInternet Exploreryes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
JAWSFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
NarratorMicrosoft Edgeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
NVDAGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
NVDAFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
OrcaFirefox (desktop)yes
  • Result: (pass)
    • command: alt + shift + right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: alt + shift + left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: alt + shift + down arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: alt + shift + up arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
TalkBackGoogle Chrome (android)yes
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: (position information is announced as column and rows are changed)
More information
Voice Access for AndroidGoogle Chrome (android)not applicable-More information
Voice Control for iOSSafari (iOS)not applicable-More information
Voice Control for MacOSSafari (macOS)not applicable-More information
VoiceOver for iOSSafari (iOS)yes
  • Result: (pass)
    • command: Swipe Right (Next item)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Swipe Left (Previous item)
    • Output: (position information is announced as column and rows are changed)
More information
VoiceOver for macOSSafari (macOS)yes
  • Result: (pass)
    • command: VO + Right Arrow (Move to Next Column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: VO + Left Arrow (Move to Previous Column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: VO + Down Arrow (Move to Next Row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: VO + Up Arrow (Move to Previous Row)
    • Output: (position information is announced as column and rows are changed)
More information

Extended Support for: th element: convey the position of the header (row/column)

These are less common combinations

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingInternet Explorernot applicable-More information
Dragon Naturally SpeakingFirefox (desktop)not applicable-More information
JAWSMicrosoft Edgeunknown-More information
NarratorFirefox (desktop)unknown-More information
NarratorGoogle Chromeunknown-More information
NarratorInternet Explorerunknown-More information
NVDAInternet Explorerunknown-More information
NVDAMicrosoft Edgeunknown-More information
TalkBackFirefox (Android)unknown-More information
Voice Access for AndroidFirefox (Android)not applicable-More information
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
OrcaGoogle Chromeunknown-More information
Voice Control for MacOSGoogle Chromenot applicable-More information
Voice Control for MacOSFirefox (desktop)not applicable-More information
Back to top

Expectation for the td element: convey the table cell role

Rationale: A table can only contain cells of information, so the role is usually implied.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MAY
  • Voice Control: NA

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the td element feature.

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingGoogle Chromenot applicable-More information
JAWSGoogle Chromeyes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
JAWSInternet Exploreryes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
JAWSFirefox (desktop)yes
  • Result: (pass)
    • command: Up arrow (Read previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
NarratorMicrosoft Edgeyes
  • Result: (pass)
    • command: Up arrow (Read previous item (scan mode))
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
NVDAGoogle Chromeyes
  • Result: (pass)
    • command: up arrow (Read previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
NVDAFirefox (desktop)yes
  • Result: (pass)
    • command: up arrow (Read previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
OrcaFirefox (desktop)yes
  • Result: (pass)
    • command: up arrow (Read previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: alt + shift + right arrow (Move to next column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: alt + shift + down arrow (Move to next row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
TalkBackGoogle Chrome (android)yes
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
Voice Access for AndroidGoogle Chrome (android)not applicable-More information
Voice Control for iOSSafari (iOS)not applicable-More information
Voice Control for MacOSSafari (macOS)not applicable-More information
VoiceOver for iOSSafari (iOS)yes
  • Result: (pass)
    • command: Swipe Right (Next item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: Swipe Left (Previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information
VoiceOver for macOSSafari (macOS)yes
  • Result: (pass)
    • command: VO + Left Arrow (Read previous item)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: VO + Right Arrow (Move to Next Column)
    • Output: (no header semantics surfaced, which implies that this is a cell)
  • Result: (pass)
    • command: VO + Down Arrow (Move to Next Row)
    • Output: (no header semantics surfaced, which implies that this is a cell)
More information

Extended Support for: td element: convey the table cell role

These are less common combinations

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingInternet Explorernot applicable-More information
Dragon Naturally SpeakingFirefox (desktop)not applicable-More information
JAWSMicrosoft Edgeunknown-More information
NarratorFirefox (desktop)unknown-More information
NarratorGoogle Chromeunknown-More information
NarratorInternet Explorerunknown-More information
NVDAInternet Explorerunknown-More information
NVDAMicrosoft Edgeunknown-More information
TalkBackFirefox (Android)unknown-More information
Voice Access for AndroidFirefox (Android)not applicable-More information
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
OrcaGoogle Chromeunknown-More information
Voice Control for MacOSGoogle Chromenot applicable-More information
Voice Control for MacOSFirefox (desktop)not applicable-More information
Back to top

Expectation for the td element: convey the position of the header (row/column)

Rationale: A user needs to be able to determine where they are while navigating a table.

Strength of these expectations for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Grading method: Just one of the listed commands must pass for the expectation to pass.

This expectation is from the td element feature.

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingGoogle Chromenot applicable-More information
JAWSGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
JAWSInternet Exploreryes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
JAWSFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
NarratorMicrosoft Edgeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
NVDAGoogle Chromeyes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
NVDAFirefox (desktop)yes
  • Result: (pass)
    • command: Control + Alt + Right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + Left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + up arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Control + Alt + down arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
OrcaFirefox (desktop)yes
  • Result: (pass)
    • command: alt + shift + right arrow (Move to next column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: alt + shift + left arrow (Move to previous column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: alt + shift + down arrow (Move to next row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: alt + shift + up arrow (Move to previous row)
    • Output: (position information is announced as column and rows are changed)
More information
TalkBackGoogle Chrome (android)yes
  • Result: (pass)
    • command: Swipe right (Read next item)
    • Output: (position information is announced as column and rows are changed)
More information
Voice Access for AndroidGoogle Chrome (android)not applicable-More information
Voice Control for iOSSafari (iOS)not applicable-More information
Voice Control for MacOSSafari (macOS)not applicable-More information
VoiceOver for iOSSafari (iOS)yes
  • Result: (pass)
    • command: Swipe Right (Next item)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: Swipe Left (Previous item)
    • Output: (position information is announced as column and rows are changed)
More information
VoiceOver for macOSSafari (macOS)yes
  • Result: (pass)
    • command: VO + Right Arrow (Move to Next Column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: VO + Left Arrow (Move to Previous Column)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: VO + Down Arrow (Move to Next Row)
    • Output: (position information is announced as column and rows are changed)
  • Result: (pass)
    • command: VO + Up Arrow (Move to Previous Row)
    • Output: (position information is announced as column and rows are changed)
More information

Extended Support for: td element: convey the position of the header (row/column)

These are less common combinations

ATBrowserHas SupportOutputAction
Dragon Naturally SpeakingInternet Explorernot applicable-More information
Dragon Naturally SpeakingFirefox (desktop)not applicable-More information
JAWSMicrosoft Edgeunknown-More information
NarratorFirefox (desktop)unknown-More information
NarratorGoogle Chromeunknown-More information
NarratorInternet Explorerunknown-More information
NVDAInternet Explorerunknown-More information
NVDAMicrosoft Edgeunknown-More information
TalkBackFirefox (Android)unknown-More information
Voice Access for AndroidFirefox (Android)not applicable-More information
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
OrcaGoogle Chromeunknown-More information
Voice Control for MacOSGoogle Chromenot applicable-More information
Voice Control for MacOSFirefox (desktop)not applicable-More information
Back to top

History

  • 2018-07-29 Sample data has been added. This data has not been verified.
  • 2019-05-03 Sample html was updated to better reflect a real word example, and data was updated as well.
  • 2019-09-14 Add orca and talkback results