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

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

Current support: partial (39/45)

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 in a new tab
<!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>

Support tables

Expectations are conditions that must be met for the feature to be considered as "supported". Only "MUST" expectations need to be met for minimal "support". "SHOULD" and "MAY" expectations indicates support that goes above and beyond. Note that there is not an explicit standard that dictates these expectations, and as such, they are likely opinionated. As such, a feature might not meet all "MUST" expectations but still be usable (potentially frustratingly so). Additionally, the assistive technology may provide many different commands to read, navigate, or otherwise interact with a feature. Only one command is required to pass for the expectation to be minimally supported.

Summary of support by expectation type

MUSTSHOULDMAY
partial (39/45)partial (15/18)

Summary of support by expectation and assistive technology

ExpectationDragon Naturally SpeakingJAWSNarratorNVDATalkBackVoiceOver for iOSVoiceOver for macOS
table element
MUST convey the table rolenot applicablesupportedsupportedsupportedunknownsupportedsupported
MUST convey the boundaries of the tablenot applicablesupportedsupportedsupportedunknownsupportedsupported
scope attribute
MUST convey the header as a row header if the scope is set to "row"not applicablesupportedsupportedsupportedunknownnonesupported
th element
MAY convey that the cell is a headernot applicablesupportedsupportedsupportedunknownnonesupported
MUST convey the position of the header (row/column)not applicablesupportedsupportedsupportedunknownsupportedsupported
td element
MAY convey the table cell rolenot applicablesupportedsupportedsupportedunknownsupportedsupported
MUST convey the position of the header (row/column)not applicablesupportedsupportedsupportedunknownsupportedsupported

* means that some support is hidden behind settings

Detailed support results by expectation

table element: The screen reader MUST convey the table role

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

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
TalkBackGoogle Chrome (android)unknown-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: The screen reader MUST convey the table 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
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
Back to top

table element: The screen reader MUST convey the boundaries of the table

Rationale: A user needs to be aware when they are entering and exiting a table.

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
TalkBackGoogle Chrome (android)unknown-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: The screen reader MUST 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
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
Back to top

scope attribute: The screen reader MUST 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.

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
TalkBackGoogle Chrome (android)unknown-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: The screen reader MUST 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
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
Back to top

th element: The screen reader MAY convey that the cell is a header

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

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
TalkBackGoogle Chrome (android)unknown-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: The screen reader MAY 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
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
Back to top

th element: The screen reader MUST convey the position of the header (row/column)

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

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
TalkBackGoogle Chrome (android)unknown-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: The screen reader MUST 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
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
Back to top

td element: The screen reader MAY convey the table cell role

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

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
TalkBackGoogle Chrome (android)unknown-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: The screen reader MAY 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
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
Back to top

td element: The screen reader MUST convey the position of the header (row/column)

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

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
TalkBackGoogle Chrome (android)unknown-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: The screen reader MUST 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
VoiceOver for iOSGoogle Chrome (ios)unknown-More information
VoiceOver for macOSGoogle Chromeunknown-More information
VoiceOver for macOSFirefox (desktop)unknown-More information
Back to top

Dates and Versions

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
VoiceOver for iOS12.2Safari (iOS)12.212.22019-05-01
VoiceOver for macOS10.14.4Safari (macOS)12.110.14.42019-05-03

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.