Important: This website does not attempt to establish a standard for how assistive technologies must behave. Read the FAQ for more information. Additionally, this is a work in progress. Please submit feedback or suggestions.

Test: headers attribute test - multi level

Screen Reader support level: partial (5/11)

Voice Control support level: unknown

On this page

About this test

this tests the headers attribute on a td element

Run this test and submit your results

Age of results

Results in this test range from 3 months ago to 3 years ago. See detailed information about test dates and versions for more information.

Caution

Failing or partial results may be out of date. The oldest result is from 3 years ago. Consider running this test and contributing results.

Test HTML

open the test page

HTML source is too long to display here.

Summary of Screen Reader support by expectation

headers attribute
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST convey the defined cell headers applied to: td element; references: th elementsupportedsupportedsupportednonenonenonesupportednonenonenonesupported

* means that some support is hidden behind settings

Summary of Voice Control support by expectation

headers attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
Not applicable

* means that some support is hidden behind settings

Detailed support results by expectation

Expectation for the headers attribute: convey the defined cell headers - applied to the td element - references the th element

This expectation is applied to the td element. Expectations and results might differ when the the feature is applied to different roles.

This expectation references the th element. Expectations and results might differ when the the feature references different roles.

This expectation is from the headers attribute feature.

Rationale:

The user needs to know which headers apply to the current cell

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • Screen readers will announce the headers defined by the attribute. The attribute value will override the implicit row and column headers.

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch JAWS and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "example 3 ltd, Suzette Jones (target), column 2"
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch JAWS and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "example 3 ltd, Suzette Jones (target), column 2"
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch JAWS and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "example 3 ltd, suzette Jones (target), column 2"
    • Result Notes: this may be a false negative as the header may be derived from the th element. See other tests for this feature.
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch Narrator and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "suzette jones (target), column header, example 1 ltd, example 3 ltd, column 2 of 3"
    • Result Notes: fail because the implicit headers were not overridden ('Example 1 Ltd' should not have been conveyed)
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
NVDAChromenone
  • Result: (fail)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch NVDA and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Example 1 Ltd, Example 3 Ltd, column 2, Suzette Jones (target)"
    • Result Notes: fail because the implicit headers were not overridden ('Example 1 Ltd' should not have been conveyed)
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
NVDAEdgenone
  • Result: (fail)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch NVDA and Edge.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Example 1 Ltd, Example 3 Ltd, column 2, Suzette Jones (target)"
    • Result Notes: fail because the implicit headers were not overridden ('Example 1 Ltd' should not have been conveyed)
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch NVDA and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Example 3 Ltd column 2 Suzette Jones (target)"
OrcaFirefoxnone
  • Result: (fail)
    • Test Case: Use alt + shift + right arrow (Move to next column) to navigate forward to `#target`
      1. Launch Orca and Firefox.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: alt + shift + right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "suzette jones (target), row 6, column 2"
    • Result Notes: no headers were conveyed
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
TalkBackChromenone
  • Result: (fail)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `#target`
      1. Launch TalkBack and Chrome.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe right (or alt+right arrow) (Read next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "suzette jones (target), example 1 ltd"
    • Result Notes: announced the wrong header
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safarinone
  • Result: (fail)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `#target`
      1. Launch VoiceOver (iOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Swipe Right (Next item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "example 1 ltd, suzette jones (target), column 2"
    • Result Notes: wrong header was conveyed
    • Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue.
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use VO + Right Arrow (Move to Next Column) to navigate forward to `#target`
      1. Launch VoiceOver (macOS) and Safari.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: VO + Right Arrow (Move to Next Column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "example 3 ltd and contact, suzette jones (target), column 2 of 3"
    • Result Notes: this may be a false negative as the header may be derived from the th element. See other tests for this feature.
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-

Extended Support for: headers attribute: convey the defined cell headers

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2006.12IE 11yes
  • Result: (pass)
    • Test Case: Use Control + Alt + Right arrow (Move to next column) to navigate forward to `#target`
      1. Launch JAWS and IE.
      2. Navigate to the test page.
      3. Find the target element(s) that you will test against. Identify all elements that match this selector:#target
        • If multiple elements match the selector, repeat this test for all instances. However, choose a single instance to report against. If you feel that the selector should be more specific, please open a GitHub Issue.
      4. Position and configure the screen reader so that the following conditions are met
        • Virtual focus is: before target
        • Keyboard focus is: before target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Control + Alt + Right arrow (Move to next column)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "example 3 ltd, suzette Jones (target), column 2"
    • Result Notes: this may be a false negative as the header may be derived from the th element. See other tests for this feature.
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxnot applicable-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromenot applicable-
Voice Control (MacOS)Firefoxnot applicable-
Back to top

Dates and Versions of tested combinations

ATAT VersionBrowserBrowser versionOS versionDate tested
JAWS2023.2210.29Chrome107Windows 11 version 22H22022-10-25
JAWS2023.2210.29Edge106Windows 11 version 22H22022-10-25
JAWS2023.2210.29Firefox106Windows 11 version 22H22022-10-25
Narrator21H2Edge10121H22022-05-02
NVDA2021.3.3Chrome101Windows 10 version 21h12022-05-02
NVDA2021.3.3Edge101Windows 10 version 21h12022-05-02
NVDA2021.3.3Firefox99Windows 10 version 21h12022-05-02
Orca3.36.1Firefox77Ubuntu 20.042020-07-10
TalkBack12.2Chrome101122022-05-02
VoiceOver (iOS)15.4.1Safari15.4.115.4.12022-05-02
VoiceOver (macOS)12.2.1Safari15.312.2.12022-05-02

History

  • 2020-07-10 test added
  • 2021-08-07 Added Narrator results for NVDA and JAWS, updated NVDA+Chrome results.
  • 2022-05-02 Updates results for popular combinations - nothing changed
  • 2022-10-25 Support improved with Jaws 2022