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: APG Actions Menu Button Example Using aria-activedescendant

Screen Reader support level: partial (98/117)

Voice Control support level: partial (15/30)

On this page

About this test

This example demonstrates how the menu button design pattern can be used to create a button that opens an actions menu. Note: not all features present in this example are tested, as they are tested elsewhere in this project.

Submit new test results

Age of results

Results in this test range from 2 years ago to 4 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 4 years ago. Consider running this test and contributing results.

Test HTML

view the external test

Summary of Screen Reader support by expectation

aria-activedescendant attribute
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST convey the referenced element as active applied to: menu rolesupportedsupportedsupportednonesupportedsupportedsupportedsupportedsupportedsupportedsupported
MUST convey when the referenced element changes applied to: menu rolesupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportednot applicablenot applicablesupported
aria-controls attribute
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST allow the user to jump to the controlled element applied to: button elementnot applicablenot applicablesupportednonenonenonenonenonenonenonenone
SHOULD convey the presence of the aria-controls attribute applied to: button elementnonenonenonenonenonenonenonenonenonenonenone
aria-haspopup attribute
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST convey the "true" value (see note) applied to: button elementsupportedsupportedsupportednonesupportedsupportedsupportednonepartialsupportedsupported
menu role
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST convey the name if namedsupportedsupportedsupportedsupportednonenonesupportedsupportedsupportednonenone
MUST convey its rolesupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportednonesupported
MUST convey the boundaries of the menusupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupported
menuitem role
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST convey the namesupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupported
MUST convey its rolesupportedsupportedsupportedsupportednonenonesupportedsupportedsupportedsupportedsupported
MAY convey information about the position the menu item in the menusupportedsupportedsupportednonesupportedsupportedsupportednonenonenonenone
button element
ExpectationJAWSNarratorNVDAOrcaTalkBackVoiceOver (iOS)VoiceOver (macOS)
ChromeEdgeFirefoxEdgeChromeEdgeFirefoxFirefoxChromeSafariSafari
MUST convey its namesupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupported
MUST convey its rolesupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupportedsupported

* means that some support is hidden behind settings

Summary of Voice Control support by expectation

aria-activedescendant attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
Not applicable
aria-controls attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
Not applicable
aria-haspopup attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
Not applicable
menu role
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
Not applicable
menuitem role
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
MUST convey the namesupportedsupportedsupportednoneunknownsupportedunknownunknown
MUST convey its rolesupportedsupportednot applicablenoneunknownsupportedunknownunknown
button element
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech RecognitionWindows Voice Access
ChromeChromeSafariSafariEdgeChromeEdgeChrome
MUST convey its namesupportedsupportedsupportednoneunknownsupportedunknownunknown
MUST convey its rolesupportedsupportednot applicablesupportedunknownsupportedunknownunknown

* means that some support is hidden behind settings

Detailed support results by expectation

Expectation for the aria-activedescendant attribute: convey the referenced element as active - applied to the menu role

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

This expectation is from the aria-activedescendant attribute feature.

Rationale:

A screen reader user needs to be aware of which descendant is currently active

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • When navigating to an element with this attribute, screen readers will also announce the referenced element

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 Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use Enter or Space Bar (Activate Item (primary action)) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space Bar (Activate Item (primary action))
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Actions, menu"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • 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.
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 1, 1 of 4 "
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 1, 1 of 4 "
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "expanded, actions menu, action 1, 1 of 4"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "expanded, actions menu, action 1"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use double tap (or alt+enter) (Activate button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: double tap (or alt+enter) (Activate button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 1, menu item, expanded, double tap to activate"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Double tap (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Double tap (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "selected, action 1, menu item"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use VO + space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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 + space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, 4 items, action 1"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: aria-activedescendant attribute: convey the referenced element as active

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Action 1, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the aria-activedescendant attribute: convey when the referenced element changes - applied to the menu role

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

This expectation is from the aria-activedescendant attribute feature.

Rationale:

A screen reader user needs to be aware of which descendant is currently active

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • When navigating within an element with this attribute, screen readers will also announce the referenced element as the reference changes

Grading method:

All of the listed commands must pass for the expectation to pass.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
TalkBackChromenot applicable
  • Result: (na)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item, double tap to activate"
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safarinot applicable
  • Result: (na)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item"
    • Result Notes: na because forms mode was not used
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: aria-activedescendant attribute: convey when the referenced element changes

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the aria-controls attribute: allow the user to jump to the controlled element - applied to the button element

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

This expectation is from the aria-controls attribute feature.

Rationale:

The controlled element might not be close to the element with aria-controls and the user might find it convenient to jump directly to the controlled element.

Strength of this expectation 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.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromenot applicable
  • Result: (na)
    • Test Case: unknown
      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:button[aria-expanded="true"]
        • 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: target
        • Keyboard focus is: target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Insert + alt + M (Jump to controlled element)
        • After issuing the command, virtual focus should be: after target
      6. Record results for the relevant expectations
    • Output: ""
    • Command Notes: unable to navigate to the button with the menu expanded
JAWSEdgenot applicable
  • Result: (na)
    • Test Case: unknown
      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:button[aria-expanded="true"]
        • 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: target
        • Keyboard focus is: target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Insert + alt + M (Jump to controlled element)
        • After issuing the command, virtual focus should be: after target
      6. Record results for the relevant expectations
    • Output: ""
    • Command Notes: unable to navigate to the button with the menu expanded
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: unknown
      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:button[aria-expanded="true"]
        • 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: target
        • Keyboard focus is: target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Insert + alt + M (Jump to controlled element)
        • After issuing the command, virtual focus should be: after target
      6. Record results for the relevant expectations
    • Output: "move to controlled element, action 1, menu"
    • Command Notes: tab to the button with it expanded, then execute this command
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button"
    • Command Notes: tab to the button with it collapsed
    • 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 Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
    • 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 Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
    • 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.
NVDAFirefoxnone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, submenu"
    • Command Notes: tab to the button with it collapsed
    • 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.
OrcaFirefoxnone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, push button, focus mode"
    • Command Notes: tab to the button with it collapsed
    • 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 `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button"
    • Command Notes: tab to the button with it collapsed
    • 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 `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button, menu popup"
    • Command Notes: tab to the button with it collapsed
    • 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)Safarinone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu popup button"
    • Command Notes: tab to the button with it collapsed
    • 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.
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: aria-controls attribute: allow the user to jump to the controlled element

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: unknown
      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:button[aria-expanded="true"]
        • 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: target
        • Keyboard focus is: target
        • Mode is: auto (do not explicitly change the mode)
      5. Issue the command: Insert + alt + M (Jump to controlled element)
        • After issuing the command, virtual focus should be: after target
      6. Record results for the relevant expectations
    • Output: "move to controlled element, action 1, menu"
    • Command Notes: tab to the button with it expanded, then execute this command
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the aria-controls attribute: convey the presence of the aria-controls attribute - applied to the button element

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

This expectation is from the aria-controls attribute feature.

Rationale:

Users need to be aware that an element has aria-controls functionality. If the presence of the attribute is not explicitly conveyed, then users may not be aware of the functionality. However, some screen readers may choose to not convey the presence by default since the controlled element is usually directly after the controlling element in the reading order and easily findable. In these situations, explicitly conveying the presence could be unnecessarily verbose.

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: SHOULD
  • Voice Control: NA

Examples:

  • When supported, screen readers will often hint that an element controls another element, and may even announce the keyboard shortcut to jump to the controlled element
  • Most screen readers either do not support this attribute or the setting to convey the presence is turned off by default. This is because in the vast majority of cases, the controlled element is adjacent to the element with aria-controls, and thus announcing the presence is redundant and add extra verbosity.

Grading method:

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

Notes:

This is not a MUST requirement, because the functionality could still be discoverable via the screen reader's command to jump to the controlled element. If the command fails, the attribute is not present.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromenone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
    • 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.
JAWSEdgenone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
    • 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.
JAWSFirefoxnone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
    • 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.
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button"
    • Command Notes: tab to the button with it collapsed
    • 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 Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
    • 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 Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
    • 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.
NVDAFirefoxnone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, submenu"
    • Command Notes: tab to the button with it collapsed
    • 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.
OrcaFirefoxnone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, push button, focus mode"
    • Command Notes: tab to the button with it collapsed
    • 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 `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button"
    • Command Notes: tab to the button with it collapsed
    • 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 `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button, menu popup"
    • Command Notes: tab to the button with it collapsed
    • 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)Safarinone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu popup button"
    • Command Notes: tab to the button with it collapsed
    • 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.
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: aria-controls attribute: convey the presence of the aria-controls attribute

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11none
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action button, menu"
    • Command Notes: tab to the button with it collapsed
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the aria-haspopup attribute: convey the "true" value (see note) - applied to the button element

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

This expectation is from the aria-haspopup attribute feature.

Strength of this expectation 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.

Notes:

Since ARIA 1.1, the "true" value must be conveyed as the "menu" value. In ARIA 1.0, the "true" value simply conveys that a popup is available (not the type of popup). If applied to an ARIA 1.0 combobox, this should pass if the screen reader conveys that there is a popup.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button"
    • Command Notes: tab to the button with it collapsed
    • 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.
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, submenu"
    • Command Notes: tab to the button with it collapsed
OrcaFirefoxnone
  • Result: (fail)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, push button, focus mode"
    • Command Notes: tab to the button with it collapsed
    • 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.
TalkBackChromepartial
  • Result: (partial)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button"
    • Command Notes: tab to the button with it collapsed
    • Result Notes: not announced as a menu popup
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button, menu popup"
    • Command Notes: tab to the button with it collapsed
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu popup button"
    • Command Notes: tab to the button with it collapsed
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: aria-haspopup attribute: convey the "true" value (see note)

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action button, menu"
    • Command Notes: tab to the button with it collapsed
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the menu role: convey the name if named

This expectation is from the menu role feature.

Rationale:

A screen reader user needs to be aware of the name of menu

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • The accessible name of the menu is announced when entering the menu.

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 Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Enter or Space Bar (Activate Item (primary action)) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space Bar (Activate Item (primary action))
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Actions, menu"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
NVDAChromenone
  • Result: (fail)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 1, 1 of 4 "
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • 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 Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 1, 1 of 4 "
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • 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 Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "expanded, actions menu, action 1, 1 of 4"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "expanded, actions menu, action 1"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use double tap (or alt+enter) (Activate button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: double tap (or alt+enter) (Activate button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 1, menu item, expanded, double tap to activate"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safarinone
  • Result: (fail)
    • Test Case: Use Double tap (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Double tap (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "selected, action 1, menu item"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • 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)Safarinone
  • Result: (fail)
    • Test Case: Use VO + space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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 + space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, 4 items, action 1"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • 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.
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: menu role: convey the name if named

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11none
  • Result: (fail)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Action 1, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the menu role: convey its role

This expectation is from the menu role feature.

Rationale:

A screen reader user needs to be aware that elements are within a menu

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • Some screen readers will explicitly convey the menu role as something like "<name> menu"
  • The role may be implied by the presence of menuitem children

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 Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Actions menu, Action 1, 1 of 4, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Enter or Space Bar (Activate Item (primary action)) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space Bar (Activate Item (primary action))
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Actions, menu"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 1, 1 of 4 "
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • Result Notes: possibly implied by the aria-haspopup attribute on the button that opens the menu, but if a button was missing that attribute, this information may not be implied.
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 1, 1 of 4 "
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • Result Notes: possibly implied by the aria-haspopup attribute on the button that opens the menu, but if a button was missing that attribute, this information may not be implied.
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "expanded, actions menu, action 1, 1 of 4"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "expanded, actions menu, action 1"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use double tap (or alt+enter) (Activate button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: double tap (or alt+enter) (Activate button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 1, menu item, expanded, double tap to activate"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safarinone
  • Result: (fail)
    • Test Case: Use Double tap (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Double tap (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "selected, action 1, menu item"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
    • Result Notes: possibly implied by the aria-haspopup attribute on the button that opens the menu, but if a button was missing that attribute, this information may not be implied.
    • 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 + space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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 + space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, 4 items, action 1"
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: menu role: convey its role

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`
      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:*[role="menu"]
        • 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: Enter or Space (Activate Button)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "menu, Action 1, To move through items press up or down arrow."
    • Command Notes: activate the menu button, and focus will be sent to the target (menu)
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the menu role: convey the boundaries of the menu

This expectation is from the menu role feature.

Rationale:

A screen reader user needs to be aware when they enter and exit a menu

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: NA

Examples:

  • Boundaries may be implied by posinset information
  • Boundaries may be implied by no longer conveying the menu item role (if the role is explicitly conveyed)
  • Boundaries may be implied by looping back to the top of the menu
  • Boundaries may be explicitly conveyed by announcing something like "<name> menu" when entering and "exiting menu" when leaving

Grading method:

All of the listed commands must pass for the expectation to pass.

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromenot applicable-
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by posinset information
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by posinset information
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by posinset informationß
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by looping back to the first item
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by posinset information
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by posinset information
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by posinset information
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by looping back to the top
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forwards out of `ul[role="menu"]`
      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:ul[role="menu"]
        • 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: within target
        • Keyboard focus is: within 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: after target
      6. Record results for the relevant expectations
    • Output: The next element was announced
    • Command Notes: swipe to the element after the open menu
    • Result Notes: implied by navigating to an element that is not announced as a menu item
Voice Access (Android)Chromenot applicable-
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinot applicable-
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item"
    • Result Notes: implied by no longer announcing object with the role of menu item
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by looping back to the top of the menu
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: menu role: convey the boundaries of the menu

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: Implied by looping back to the first item
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the menuitem role: convey the name

This expectation is from the menuitem role feature.

Rationale:

A screen reader user needs to know what the menu item does

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: MUST

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromeyes
  • Result: (pass)
    • Test Case: Use "Click <text>" (Activate item by name)
      1. Launch Dragon Naturally Speaking 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:*[role="menuitem"]
        • 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. Issue the command: "Click <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: menu item was activated
    • Command Notes: said "click action 3"
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item, double tap to activate"
Voice Access (Android)Chromeyes
  • Result: (pass)
    • Test Case: Use "Tap <text>" or just "<text>" (Activate item by name)
      1. Launch Voice Access (Android) 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:*[role="menuitem"]
        • 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. Issue the command: "Tap <text>" or just "<text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: button was activated
    • Command Notes: said "tap action 3"
Voice Control (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use "Tap <text>" (Activate item by name)
      1. Launch Voice Control (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:*[role="menuitem"]
        • 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. Issue the command: "Tap <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: item was activated
    • Command Notes: said "tap action 3"
Voice Control (MacOS)Safarinone
  • Result: (fail)
    • Test Case: Use "Click <text>" (Activate item by name)
      1. Launch Voice Control (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:*[role="menuitem"]
        • 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. Issue the command: "Click <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: action 3 was not activated
    • Command Notes: said "click action 3"
    • 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 (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item"
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
Windows Speech RecognitionEdgeunknown-
Windows Speech RecognitionChromeyes
  • Result: (pass)
    • Test Case: Use "Click <text>" (Activate item by name)
      1. Launch Windows Speech Recognition 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:*[role="menuitem"]
        • 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. Issue the command: "Click <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: menu item was activated
    • Command Notes: said "click action 3"
Windows Voice AccessEdgeunknown-
Windows Voice AccessChromeunknown-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: menuitem role: convey the name

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the menuitem role: convey its role

This expectation is from the menuitem role feature.

Rationale:

A screen reader user needs to be aware that they are interacting with a menu item

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: MUST

Examples:

  • The role may be explicitly conveyed as something like "menu item"
  • The role may be implied by the announcement of a menu context

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromeyes
  • Result: (pass)
    • Test Case: Use Click <role> (Click Type)
      1. Launch Dragon Naturally Speaking 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:*[role="menuitem"]
        • 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. Issue the command: Click <role> (Click Type)
      5. Record results for the relevant expectations
    • Output: menu items were flagged for disambiguation
    • Command Notes: said "click link"
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by menu context
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by menu context
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by menu context
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
NVDAChromenone
  • Result: (fail)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: possibly implied by the aria-haspopup attribute on the button that opens the menu, but if a button was missing that attribute, this information may not be implied.
    • 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 <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: possibly implied by the aria-haspopup attribute on the button that opens the menu, but if a button was missing that attribute, this information may not be implied.
    • 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 <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by menu context
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item, double tap to activate"
Voice Access (Android)Chromeyes
  • Result: (pass)
    • Test Case: Use "Show numbers" (Turn on the numbers overlay)
      1. Launch Voice Access (Android) 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:*[role="menuitem"]
        • 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. Issue the command: "Show numbers" (Turn on the numbers overlay)
      5. Record results for the relevant expectations
    • Output: items were flagged
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safarinone
  • Result: (fail)
    • Test Case: Use "Show numbers" (Turn on the numbers overlay)
      1. Launch Voice Control (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:*[role="menuitem"]
        • 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. Issue the command: "Show numbers" (Turn on the numbers overlay)
      5. Record results for the relevant expectations
    • Output: button was flagged, but when the menu was opened, nothing was flagged
    • 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 (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item"
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
Windows Speech RecognitionEdgeunknown-
Windows Speech RecognitionChromeyes
  • Result: (pass)
    • Test Case: Use "Show numbers" (Turn on the numbers overlay)
      1. Launch Windows Speech Recognition 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:*[role="menuitem"]
        • 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. Issue the command: "Show numbers" (Turn on the numbers overlay)
      5. Record results for the relevant expectations
    • Output: menu items were flagged with numbers
Windows Voice AccessEdgeunknown-
Windows Voice AccessChromeunknown-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: menuitem role: convey its role

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
    • Result Notes: implied by menu context
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the menuitem role: convey information about the position the menu item in the menu

This expectation is from the menuitem role feature.

Rationale:

The user should be able to determine how many options are in the list and where they are in the list

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MAY
  • Voice Control: NA

Examples:

  • A screen reader might announce "<name> <role> <2 of 10>" when navigating through a menu

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 <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NarratorEdgenone
  • Result: (fail)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
    • 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.
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "Action 3, 3 of 4"
    • Command Notes: press up and down arrows to navigate menu items
OrcaFirefoxnone
  • Result: (fail)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
    • 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 `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item, double tap to activate"
    • 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 `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: "action 3, menu item"
    • 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)Safarinone
  • Result: (fail)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3, menu item"
    • Command Notes: press up and down arrows to navigate menu items
    • 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.
Windows Speech RecognitionEdgenot applicable-
Windows Speech RecognitionChromenot applicable-
Windows Voice AccessEdgenot applicable-
Windows Voice AccessChromenot applicable-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: menuitem role: convey information about the position the menu item in the menu

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEnot applicable-
Dragon Naturally SpeakingFirefoxnot applicable-
JAWS 2020.2003.13IE 11none
  • Result: (fail)
    • Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`
      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:*[role="menuitem"]
        • 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: <keyboard command> (Keyboard command while in forms or application mode)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action 3"
    • Command Notes: press up and down arrows to navigate menu items
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-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the button element: convey its name

This expectation is from the button element feature.

Rationale:

A screen reader user needs to know what to enter.

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: MUST

Examples:

  • A screen reader might announce the button as something like "<name>, button".
  • Voice control software will let the user say something like "click <name>" to activate the control.

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromeyes
  • Result: (pass)
    • Test Case: Use "Click <text>" (Activate item by name)
      1. Launch Dragon Naturally Speaking 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:button
        • 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. Issue the command: "Click <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: button was activated and command was recognized. However, the menu opened and then immediately closed. This appears to be a bug with the example.
    • Command Notes: said "click actions"
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button"
    • Command Notes: tab to the button with it collapsed
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, submenu"
    • Command Notes: tab to the button with it collapsed
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, push button, focus mode"
    • Command Notes: tab to the button with it collapsed
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button"
    • Command Notes: tab to the button with it collapsed
Voice Access (Android)Chromeyes
  • Result: (pass)
    • Test Case: Use "Tap <text>" or just "<text>" (Activate item by name)
      1. Launch Voice Access (Android) 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:button
        • 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. Issue the command: "Tap <text>" or just "<text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: button was activated
    • Command Notes: said "tap actions"
Voice Control (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use "Tap <text>" (Activate item by name)
      1. Launch Voice Control (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:button
        • 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. Issue the command: "Tap <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: button was activated
    • Command Notes: said "tap actions"
Voice Control (MacOS)Safarinone
  • Result: (fail)
    • Test Case: Use "Click <text>" (Activate item by name)
      1. Launch Voice Control (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:button
        • 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. Issue the command: "Click <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: Other links on the page were clicked. Could not get it to click the button
    • Command Notes: said "click actions"
    • 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 (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button, menu popup"
    • Command Notes: tab to the button with it collapsed
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu popup button"
    • Command Notes: tab to the button with it collapsed
Windows Speech RecognitionEdgeunknown-
Windows Speech RecognitionChromeyes
  • Result: (pass)
    • Test Case: Use "Click <text>" (Activate item by name)
      1. Launch Windows Speech Recognition 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:button
        • 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. Issue the command: "Click <text>" (Activate item by name)
      5. Record results for the relevant expectations
    • Output: "button was activated and command was recognized. However, the menu opened and then immediately closed. This appears to be a bug with the example."
    • Command Notes: said "click actions"
Windows Voice AccessEdgeunknown-
Windows Voice AccessChromeunknown-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: button element: convey its name

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action button, menu"
    • Command Notes: tab to the button with it collapsed
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Expectation for the button element: convey its role

This expectation is from the button element feature.

Rationale:

A screen reader user needs to know how they can interact with the element. Voice control software might use the role to help users activate controls that do not have a visible name.

Strength of this expectation for different types of assistive technologies:

  • Screen Readers: MUST
  • Voice Control: MUST

Examples:

  • A screen reader might be announce the role as something like "button".
  • Voice control software will let the user say something like "click button".

Grading method:

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

ATBrowserHas SupportOutput
Dragon Naturally SpeakingChromeyes
  • Result: (pass)
    • Test Case: Use Click <role> (Click Type)
      1. Launch Dragon Naturally Speaking 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:button
        • 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. Issue the command: Click <role> (Click Type)
      5. Record results for the relevant expectations
    • Output: button was activated and command was recognized. However, the menu opened and then immediately closed. This appears to be a bug with the example.
    • Command Notes: said "click button"
JAWSChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
JAWSEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
JAWSFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button, menu"
    • Command Notes: tab to the button with it collapsed
NarratorEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, button"
    • Command Notes: tab to the button with it collapsed
NVDAChromeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
NVDAEdgeyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, subMenu"
    • Command Notes: tab to the button with it collapsed
NVDAFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu button, submenu"
    • Command Notes: tab to the button with it collapsed
OrcaFirefoxyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, push button, focus mode"
    • Command Notes: tab to the button with it collapsed
TalkBackChromeyes
  • Result: (pass)
    • Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button"
    • Command Notes: tab to the button with it collapsed
Voice Access (Android)Chromeyes
  • Result: (pass)
    • Test Case: Use "Show numbers" (Turn on the numbers overlay)
      1. Launch Voice Access (Android) 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:*[role="menuitem"]
        • 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. Issue the command: "Show numbers" (Turn on the numbers overlay)
      5. Record results for the relevant expectations
    • Output: items were flagged
Voice Control (iOS)Safarinot applicable-
Voice Control (MacOS)Safariyes
  • Result: (pass)
    • Test Case: Use "Show numbers" (Turn on the numbers overlay)
      1. Launch Voice Control (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:*[role="menuitem"]
        • 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. Issue the command: "Show numbers" (Turn on the numbers overlay)
      5. Record results for the relevant expectations
    • Output: button was flagged, but when the menu was opened, nothing was flagged
VoiceOver (iOS)Safariyes
  • Result: (pass)
    • Test Case: Use Swipe Right (Next item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: "actions, popup button, menu popup"
    • Command Notes: tab to the button with it collapsed
VoiceOver (macOS)Safariyes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "actions, menu popup button"
    • Command Notes: tab to the button with it collapsed
Windows Speech RecognitionEdgeunknown-
Windows Speech RecognitionChromeyes
  • Result: (pass)
    • Test Case: Use "Show numbers" (Turn on the numbers overlay)
      1. Launch Windows Speech Recognition 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:*[role="menuitem"]
        • 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. Issue the command: "Show numbers" (Turn on the numbers overlay)
      5. Record results for the relevant expectations
    • Output: menu items were flagged with numbers
Windows Voice AccessEdgeunknown-
Windows Voice AccessChromeunknown-
Windows KeyboardChromenot applicable-
Windows KeyboardFirefoxnot applicable-
Windows KeyboardEdgenot applicable-
Mac KeyboardChromenot applicable-
Mac KeyboardSafarinot applicable-
iOS KeyboardSafarinot applicable-
Android KeyboardChromenot applicable-

Extended Support for: button element: convey its role

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2020.2003.13IE 11yes
  • Result: (pass)
    • Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`
      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:button:not([aria-expanded])
        • 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: Tab (Read next focusable item)
        • After issuing the command, virtual focus should be: target
      6. Record results for the relevant expectations
    • Output: "action button, menu"
    • Command Notes: tab to the button with it collapsed
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Mac KeyboardFirefoxnot applicable-
Android KeyboardFirefoxnot applicable-
Back to top

Dates and Versions of tested combinations

ATAT VersionBrowserBrowser versionOS versionDate tested
Dragon Naturally Speaking15.30Chrome80Windows 10 version 19092020-03-30
JAWS2021.2107.12Chrome92Windows 10 version 21h12021-08-07
JAWS2021.2107.12Edge92Windows 10 version 21h12021-08-07
JAWS2020.2003.13Firefox74Windows 10 version 19092020-11-09
NarratorWindows 10 version 1909Edge44Windows 10 version 19092020-03-30
NVDA2021.1Chrome92Windows 10 version 21h12021-08-07
NVDA2021.1Edge92Windows 10 version 21h12021-08-07
NVDA2019.3.1Firefox74Windows 10 version 19092020-03-30
Orca3.34.0Firefox74Ubuntu 19.102020-03-30
TalkBack8.1Chrome80102020-03-30
Voice Access (Android)3.1Chrome80102020-03-30
Voice Control (iOS)13.3.1Safari13.3.113.3.12020-03-30
Voice Control (MacOS)10.15.3Safari13.0.510.15.32020-03-30
VoiceOver (iOS)15.0.2Safari15.0.215.0.22021-11-10
VoiceOver (macOS)12.0.1Safari15.112.0.12021-11-10
Windows Speech RecognitionWindows 10 version 1909Chrome80Windows 10 version 19092020-03-30

History

  • 2020-03-30 Draft test
  • 2020-11-09 Update JAWS support for aria-controls. JAWS 2020 no longer has a setting to convey the presence of the attribute.
  • 2021-08-07 Added Narrator results for NVDA and JAWS, updated NVDA+Chrome results.
  • 2021-11-10 Retested with VoiceOver. No major changes.