Notice: 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 (116/138)

Voice Control support level: partial (15/18)

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.

Run this test and submit your results

Age of results

Results in this test range from 19 days ago to 2 years ago. See detailed information about test dates and versions for more information.

Failing and partial results are between 2 years ago and 2 years ago.

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 Recognition
ChromeChromeSafariSafariChrome
Not applicable
aria-controls attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
Not applicable
aria-haspopup attribute
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
Not applicable
menu role
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
Not applicable
menuitem role
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
MUST convey the namesupportedsupportedsupportednonesupported
MUST convey its rolesupportedsupportednot applicablenonesupported
button element
ExpectationDragon Naturally SpeakingVoice Access (Android)Voice Control (iOS)Voice Control (MacOS)Windows Speech Recognition
ChromeChromeSafariSafariChrome
MUST convey its namesupportedsupportedsupportednonesupported
MUST convey its rolesupportedsupportednot applicablesupportedsupported

* 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)
  • 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)
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)
  • 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 RecognitionChromenot 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 2021.2107.12Edge 92yes
  • 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)
  • 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)
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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: (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)
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-
Windows Speech RecognitionEdgenot 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
  • 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
  • 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 RecognitionChromenot 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 2021.2107.12Edge 92yes
  • 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: (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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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: (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
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-
Windows Speech RecognitionEdgenot 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
  • 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
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
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
  • 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
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
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
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
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
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
Windows Speech RecognitionChromenot 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 2021.2107.12Edge 92not 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
  • 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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92none
  • 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
  • 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
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-
Windows Speech RecognitionEdgenot 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
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
  • 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
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
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
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
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
  • 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
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
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
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
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
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
Windows Speech RecognitionChromenot 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 2021.2107.12Edge 92none
  • 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
  • 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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92none
  • 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
  • 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
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-
Windows Speech RecognitionEdgenot 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
  • 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
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
  • 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
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 RecognitionChromenot 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 2021.2107.12Edge 92yes
  • 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
  • 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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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
  • 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
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-
Windows Speech RecognitionEdgenot 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)
  • 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)
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)
  • 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)
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)
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)
Windows Speech RecognitionChromenot 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 2021.2107.12Edge 92yes
  • 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)
  • 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)
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92none
  • 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)
  • 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)
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-
Windows Speech RecognitionEdgenot 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)
  • 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.
  • 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.
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 RecognitionChromenot 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 2021.2107.12Edge 92yes
  • 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)
  • 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)
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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.
  • 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.
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-
Windows Speech RecognitionEdgenot 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
  • 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
  • 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 RecognitionChromenot 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 2021.2107.12Edge 92yes
  • 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
  • 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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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
  • 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
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-
Windows Speech RecognitionEdgenot 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
  • 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
  • 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"
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 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"

Extended Support for: menuitem role: convey the name

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2021.2107.12Edge 92yes
  • 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: (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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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: (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
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Windows Speech RecognitionEdgeunknown-
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
  • 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.
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.
  • 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.
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
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 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

Extended Support for: menuitem role: convey its role

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2021.2107.12Edge 92yes
  • 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
  • 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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92none
  • 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.
  • 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.
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Windows Speech RecognitionEdgeunknown-
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
  • 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
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
  • 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
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"
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"
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
Windows Speech RecognitionChromenot 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 2021.2107.12Edge 92yes
  • 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: (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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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: (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
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-
Windows Speech RecognitionEdgenot 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
  • 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
  • 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"
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 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"

Extended Support for: button element: convey its name

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2021.2107.12Edge 92yes
  • 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
  • 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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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
  • 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
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Windows Speech RecognitionEdgeunknown-
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
  • 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
  • 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 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

Extended Support for: button element: convey its role

These are less common combinations

ATBrowserHas SupportOutput
Dragon Naturally SpeakingIEunknown-
Dragon Naturally SpeakingFirefoxunknown-
JAWS 2021.2107.12Edge 92yes
  • 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
  • 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
NarratorFirefoxunknown-
NarratorChromeunknown-
NarratorIEunknown-
NVDAIEunknown-
NVDA 2021.1Edge 92yes
  • 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
  • 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
TalkBackFirefoxunknown-
Voice Access (Android)Firefoxunknown-
VoiceOver (iOS)Chromeunknown-
VoiceOver (macOS)Chromeunknown-
VoiceOver (macOS)Firefoxunknown-
OrcaChromeunknown-
Voice Control (MacOS)Chromeunknown-
Voice Control (MacOS)Firefoxunknown-
Windows Speech RecognitionEdgeunknown-
Back to top

Dates and Versions of tested combinations

ATAT VersionBrowserBrowser versionOS versionDate tested
Dragon Naturally Speaking15.30Chrome8019092020-03-30
JAWS2021.2107.12Chrome9221H12021-08-07
JAWS2021.2107.12Edge9221H12021-08-07
JAWS2020.2003.13Firefox7419092020-11-09
Narrator1909Edge4419092020-03-30
NVDA2021.1Chrome9221H12021-08-07
NVDA2021.1Edge9221H12021-08-07
NVDA2019.3.1Firefox7419092020-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 Recognition1909Chrome8019092020-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.