Test: APG Actions Menu Button Example Using aria-activedescendant
Screen Reader support level: partial (98/117)
Voice Control support level: partial (15/30)
On this page
About this test
This example demonstrates how the menu button design pattern can be used to create a button that opens an actions menu. Note: not all features present in this example are tested, as they are tested elsewhere in this project.
Submit new test resultsAge of results
Results in this test range from 3 years ago to 5 years ago. See detailed information about test dates and versions for more information.
Caution
Failing or partial results may be out of date. The oldest result is from 5 years ago. Consider running this test and contributing results.
Test HTML
view the external testSummary of Screen Reader support by expectation
* means that some support is hidden behind settings
Summary of Voice Control support by expectation
aria-activedescendant attributeExpectation | Dragon Naturally Speaking | Voice Access (Android) | Voice Control (iOS) | Voice Control (MacOS) | Windows Speech Recognition | Windows Voice Access |
---|
Chrome | Chrome | Safari | Safari | Edge | Chrome | Edge | Chrome |
---|
Not applicable |
aria-controls attributeExpectation | Dragon Naturally Speaking | Voice Access (Android) | Voice Control (iOS) | Voice Control (MacOS) | Windows Speech Recognition | Windows Voice Access |
---|
Chrome | Chrome | Safari | Safari | Edge | Chrome | Edge | Chrome |
---|
Not applicable |
aria-haspopup attributeExpectation | Dragon Naturally Speaking | Voice Access (Android) | Voice Control (iOS) | Voice Control (MacOS) | Windows Speech Recognition | Windows Voice Access |
---|
Chrome | Chrome | Safari | Safari | Edge | Chrome | Edge | Chrome |
---|
Not applicable |
menu roleExpectation | Dragon Naturally Speaking | Voice Access (Android) | Voice Control (iOS) | Voice Control (MacOS) | Windows Speech Recognition | Windows Voice Access |
---|
Chrome | Chrome | Safari | Safari | Edge | Chrome | Edge | Chrome |
---|
Not applicable |
* means that some support is hidden behind settings
Summary of Keyboard support by expectation
aria-activedescendant attributeExpectation | Windows Keyboard | Mac Keyboard | iOS Keyboard | Android Keyboard |
---|
Chrome | Firefox | Edge | Chrome | Safari | Safari | Chrome |
---|
Not applicable |
aria-controls attributeExpectation | Windows Keyboard | Mac Keyboard | iOS Keyboard | Android Keyboard |
---|
Chrome | Firefox | Edge | Chrome | Safari | Safari | Chrome |
---|
Not applicable |
aria-haspopup attributeExpectation | Windows Keyboard | Mac Keyboard | iOS Keyboard | Android Keyboard |
---|
Chrome | Firefox | Edge | Chrome | Safari | Safari | Chrome |
---|
Not applicable |
menu roleExpectation | Windows Keyboard | Mac Keyboard | iOS Keyboard | Android Keyboard |
---|
Chrome | Firefox | Edge | Chrome | Safari | Safari | Chrome |
---|
Not applicable |
menuitem roleExpectation | Windows Keyboard | Mac Keyboard | iOS Keyboard | Android Keyboard |
---|
Chrome | Firefox | Edge | Chrome | Safari | Safari | Chrome |
---|
Not applicable |
button elementExpectation | Windows Keyboard | Mac Keyboard | iOS Keyboard | Android Keyboard |
---|
Chrome | Firefox | Edge | Chrome | Safari | Safari | Chrome |
---|
Not applicable |
* means that some support is hidden behind settings
Detailed support results by expectation
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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use double tap (or alt+enter) (Activate button) to navigate forward to `*[role="menu"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
double tap (or alt+enter) (Activate button)- After issuing the command, virtual focus should be: target
- 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) | Chrome | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: aria-activedescendant attribute: convey the referenced element as active
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Enter or Space (Activate Button)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "menu, Action 1, To move through items press up or down arrow."
- Command Notes: activate the menu button, and focus will be sent to the target (menu)
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to top 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | not applicable | - Result: (na)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="menuitem"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3, menu item, double tap to activate"
|
Voice Access (Android) | Chrome | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: aria-activedescendant attribute: convey when the referenced element changes
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
<keyboard command> (Keyboard command while in forms or application mode)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3"
- Command Notes: press up and down arrows to navigate menu items
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to top 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.
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | Chrome | not applicable | - |
JAWS | Chrome | not applicable | - Result: (na)
Test Case: unknown- Launch JAWS and Chrome.
- Navigate to the test page.
- 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.
- 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)
- Issue the command:
Insert + alt + M (Jump to controlled element)- After issuing the command, virtual focus should be: after target
- Record results for the relevant expectations
- Output: ""
- Command Notes: unable to navigate to the button with the menu expanded
|
JAWS | Edge | not applicable | - Result: (na)
Test Case: unknown- Launch JAWS and Edge.
- Navigate to the test page.
- 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.
- 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)
- Issue the command:
Insert + alt + M (Jump to controlled element)- After issuing the command, virtual focus should be: after target
- Record results for the relevant expectations
- Output: ""
- Command Notes: unable to navigate to the button with the menu expanded
|
JAWS | Firefox | yes | - Result: (pass)
Test Case: unknown- Launch JAWS and Firefox.
- Navigate to the test page.
- 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.
- 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)
- Issue the command:
Insert + alt + M (Jump to controlled element)- After issuing the command, virtual focus should be: after target
- 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
|
Narrator | Edge | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Narrator and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
NVDA | Chrome | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
NVDA | Edge | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
NVDA | Firefox | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, submenu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Orca | Firefox | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Orca and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, push button, focus mode"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
TalkBack | Chrome | none | - Result: (fail)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Voice Access (Android) | Chrome | not applicable | - |
Voice Control (iOS) | Safari | not applicable | - |
Voice Control (MacOS) | Safari | not applicable | - |
VoiceOver (iOS) | Safari | none | - Result: (fail)
Test Case: Use Swipe Right (Next item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (iOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe Right (Next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button, menu popup"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
VoiceOver (macOS) | Safari | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (macOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu popup button"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Windows Speech Recognition | Edge | not applicable | - |
Windows Speech Recognition | Chrome | not applicable | - |
Windows Voice Access | Edge | not applicable | - |
Windows Voice Access | Chrome | not applicable | - |
Windows Keyboard | Chrome | not applicable | - |
Windows Keyboard | Firefox | not applicable | - |
Windows Keyboard | Edge | not applicable | - |
Mac Keyboard | Chrome | not applicable | - |
Mac Keyboard | Safari | not applicable | - |
iOS Keyboard | Safari | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: aria-controls attribute: allow the user to jump to the controlled element
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: unknown- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- 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)
- Issue the command:
Insert + alt + M (Jump to controlled element)- After issuing the command, virtual focus should be: after target
- 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
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to top 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.
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | Chrome | not applicable | - |
JAWS | Chrome | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
JAWS | Edge | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
JAWS | Firefox | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Narrator | Edge | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Narrator and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
NVDA | Chrome | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
NVDA | Edge | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
NVDA | Firefox | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, submenu"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Orca | Firefox | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Orca and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, push button, focus mode"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
TalkBack | Chrome | none | - Result: (fail)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Voice Access (Android) | Chrome | not applicable | - |
Voice Control (iOS) | Safari | not applicable | - |
Voice Control (MacOS) | Safari | not applicable | - |
VoiceOver (iOS) | Safari | none | - Result: (fail)
Test Case: Use Swipe Right (Next item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (iOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe Right (Next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button, menu popup"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
VoiceOver (macOS) | Safari | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (macOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu popup button"
- Command Notes: tab to the button with it collapsed
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Windows Speech Recognition | Edge | not applicable | - |
Windows Speech Recognition | Chrome | not applicable | - |
Windows Voice Access | Edge | not applicable | - |
Windows Voice Access | Chrome | not applicable | - |
Windows Keyboard | Chrome | not applicable | - |
Windows Keyboard | Firefox | not applicable | - |
Windows Keyboard | Edge | not applicable | - |
Mac Keyboard | Chrome | not applicable | - |
Mac Keyboard | Safari | not applicable | - |
iOS Keyboard | Safari | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: aria-controls attribute: convey the presence of the aria-controls attribute
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | none | - Result: (fail)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action button, menu"
- Command Notes: tab to the button with it collapsed
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to top 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | partial | - Result: (partial)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- 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) | Chrome | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: aria-haspopup attribute: convey the "true" value (see note)
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action button, menu"
- Command Notes: tab to the button with it collapsed
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use double tap (or alt+enter) (Activate button) to navigate forward to `*[role="menu"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
double tap (or alt+enter) (Activate button)- After issuing the command, virtual focus should be: target
- 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) | Chrome | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: menu role: convey the name if named
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | none | - Result: (fail)
Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Enter or Space (Activate Button)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "menu, Action 1, To move through items press up or down arrow."
- Command Notes: activate the menu button, and focus will be sent to the target (menu)
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use double tap (or alt+enter) (Activate button) to navigate forward to `*[role="menu"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
double tap (or alt+enter) (Activate button)- After issuing the command, virtual focus should be: target
- 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) | Chrome | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: menu role: convey its role
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use Enter or Space (Activate Button) to navigate forward to `*[role="menu"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Enter or Space (Activate Button)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "menu, Action 1, To move through items press up or down arrow."
- Command Notes: activate the menu button, and focus will be sent to the target (menu)
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forwards out of `ul[role="menu"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- 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)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: after target
- 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) | Chrome | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: menu role: convey the boundaries of the menu
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
<keyboard command> (Keyboard command while in forms or application mode)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3"
- Command Notes: press up and down arrows to navigate menu items
- Result Notes: Implied by looping back to the first item
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="menuitem"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3, menu item, double tap to activate"
|
Voice Access (Android) | Chrome | yes | - Result: (pass)
Test Case: Use "Tap <text>" or just "<text>" (Activate item by name)- Launch Voice Access (Android) and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
"Tap <text>" or just "<text>" (Activate item by name) - Record results for the relevant expectations
- Output: button was activated
- Command Notes: said "tap action 3"
|
Android Keyboard | Chrome | not applicable | - |
Extended Support for: menuitem role: convey the name
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | unknown | - |
Dragon Naturally Speaking | Firefox | unknown | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
<keyboard command> (Keyboard command while in forms or application mode)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3"
- Command Notes: press up and down arrows to navigate menu items
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | unknown | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | unknown | - |
Voice Control (MacOS) | Firefox | unknown | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="menuitem"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3, menu item, double tap to activate"
|
Voice Access (Android) | Chrome | yes | - Result: (pass)
Test Case: Use "Show numbers" (Turn on the numbers overlay)- Launch Voice Access (Android) and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
"Show numbers" (Turn on the numbers overlay) - Record results for the relevant expectations
- Output: items were flagged
|
Android Keyboard | Chrome | not applicable | - |
Extended Support for: menuitem role: convey its role
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | unknown | - |
Dragon Naturally Speaking | Firefox | unknown | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
<keyboard command> (Keyboard command while in forms or application mode)- After issuing the command, virtual focus should be: target
- 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
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | unknown | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | unknown | - |
Voice Control (MacOS) | Firefox | unknown | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
TalkBack | Chrome | none | - Result: (fail)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `*[role="menuitem"]`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3, menu item, double tap to activate"
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
Voice Access (Android) | Chrome | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: menuitem role: convey information about the position the menu item in the menu
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | not applicable | - |
Dragon Naturally Speaking | Firefox | not applicable | - |
JAWS 2020.2003.13 | IE 11 | none | - Result: (fail)
Test Case: Use <keyboard command> (Keyboard command while in forms or application mode) to navigate forward to `*[role="menuitem"]`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
<keyboard command> (Keyboard command while in forms or application mode)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action 3"
- Command Notes: press up and down arrows to navigate menu items
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | not applicable | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | not applicable | - |
Voice Control (MacOS) | Firefox | not applicable | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | Chrome | yes | - Result: (pass)
Test Case: Use "Click <text>" (Activate item by name)- Launch Dragon Naturally Speaking and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
"Click <text>" (Activate item by name) - 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"
|
JAWS | Chrome | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
|
JAWS | Edge | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
|
JAWS | Firefox | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
|
Narrator | Edge | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Narrator and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button"
- Command Notes: tab to the button with it collapsed
|
NVDA | Chrome | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
|
NVDA | Edge | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
|
NVDA | Firefox | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, submenu"
- Command Notes: tab to the button with it collapsed
|
Orca | Firefox | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Orca and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, push button, focus mode"
- Command Notes: tab to the button with it collapsed
|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button"
- Command Notes: tab to the button with it collapsed
|
Voice Access (Android) | Chrome | yes | - Result: (pass)
Test Case: Use "Tap <text>" or just "<text>" (Activate item by name)- Launch Voice Access (Android) and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
"Tap <text>" or just "<text>" (Activate item by name) - Record results for the relevant expectations
- Output: button was activated
- Command Notes: said "tap actions"
|
Voice Control (iOS) | Safari | yes | - Result: (pass)
Test Case: Use "Tap <text>" (Activate item by name)- Launch Voice Control (iOS) and Safari.
- Navigate to the test page.
- 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.
- Issue the command:
"Tap <text>" (Activate item by name) - Record results for the relevant expectations
- Output: button was activated
- Command Notes: said "tap actions"
|
Voice Control (MacOS) | Safari | none | - Result: (fail)
Test Case: Use "Click <text>" (Activate item by name)- Launch Voice Control (MacOS) and Safari.
- Navigate to the test page.
- 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.
- Issue the command:
"Click <text>" (Activate item by name) - Record results for the relevant expectations
- Output: Other links on the page were clicked. Could not get it to click the button
- Command Notes: said "click actions"
- Grading note: This command may be expected to fail. This result simply indicates that it did not yield support.
Grading Note: There is no known/documented support. There may still be support for this expectation, but it is undocumented. If this is the case, please report this issue. |
VoiceOver (iOS) | Safari | yes | - Result: (pass)
Test Case: Use Swipe Right (Next item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (iOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe Right (Next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button, menu popup"
- Command Notes: tab to the button with it collapsed
|
VoiceOver (macOS) | Safari | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (macOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu popup button"
- Command Notes: tab to the button with it collapsed
|
Windows Speech Recognition | Edge | unknown | - |
Windows Speech Recognition | Chrome | yes | - Result: (pass)
Test Case: Use "Click <text>" (Activate item by name)- Launch Windows Speech Recognition and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
"Click <text>" (Activate item by name) - Record results for the relevant expectations
- Output: "button was activated and command was recognized. However, the menu opened and then immediately closed. This appears to be a bug with the example."
- Command Notes: said "click actions"
|
Windows Voice Access | Edge | unknown | - |
Windows Voice Access | Chrome | unknown | - |
Windows Keyboard | Chrome | not applicable | - |
Windows Keyboard | Firefox | not applicable | - |
Windows Keyboard | Edge | not applicable | - |
Mac Keyboard | Chrome | not applicable | - |
Mac Keyboard | Safari | not applicable | - |
iOS Keyboard | Safari | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: button element: convey its name
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | unknown | - |
Dragon Naturally Speaking | Firefox | unknown | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action button, menu"
- Command Notes: tab to the button with it collapsed
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | unknown | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | unknown | - |
Voice Control (MacOS) | Firefox | unknown | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topThis 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.
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | Chrome | yes | - Result: (pass)
Test Case: Use Click <role> (Click Type)- Launch Dragon Naturally Speaking and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
Click <role> (Click Type) - 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"
|
JAWS | Chrome | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
|
JAWS | Edge | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
|
JAWS | Firefox | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button, menu"
- Command Notes: tab to the button with it collapsed
|
Narrator | Edge | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Narrator and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, button"
- Command Notes: tab to the button with it collapsed
|
NVDA | Chrome | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
|
NVDA | Edge | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Edge.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, subMenu"
- Command Notes: tab to the button with it collapsed
|
NVDA | Firefox | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch NVDA and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu button, submenu"
- Command Notes: tab to the button with it collapsed
|
Orca | Firefox | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch Orca and Firefox.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, push button, focus mode"
- Command Notes: tab to the button with it collapsed
|
TalkBack | Chrome | yes | - Result: (pass)
Test Case: Use Swipe right (or alt+right arrow) (Read next item) to navigate forward to `button:not([aria-expanded])`- Launch TalkBack and Chrome.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe right (or alt+right arrow) (Read next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button"
- Command Notes: tab to the button with it collapsed
|
Voice Access (Android) | Chrome | yes | - Result: (pass)
Test Case: Use "Show numbers" (Turn on the numbers overlay)- Launch Voice Access (Android) and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
"Show numbers" (Turn on the numbers overlay) - Record results for the relevant expectations
- Output: items were flagged
|
Voice Control (iOS) | Safari | not applicable | - |
Voice Control (MacOS) | Safari | yes | - Result: (pass)
Test Case: Use "Show numbers" (Turn on the numbers overlay)- Launch Voice Control (MacOS) and Safari.
- Navigate to the test page.
- 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.
- Issue the command:
"Show numbers" (Turn on the numbers overlay) - Record results for the relevant expectations
- Output: button was flagged, but when the menu was opened, nothing was flagged
|
VoiceOver (iOS) | Safari | yes | - Result: (pass)
Test Case: Use Swipe Right (Next item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (iOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Swipe Right (Next item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, popup button, menu popup"
- Command Notes: tab to the button with it collapsed
|
VoiceOver (macOS) | Safari | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch VoiceOver (macOS) and Safari.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "actions, menu popup button"
- Command Notes: tab to the button with it collapsed
|
Windows Speech Recognition | Edge | unknown | - |
Windows Speech Recognition | Chrome | yes | - Result: (pass)
Test Case: Use "Show numbers" (Turn on the numbers overlay)- Launch Windows Speech Recognition and Chrome.
- Navigate to the test page.
- 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.
- Issue the command:
"Show numbers" (Turn on the numbers overlay) - Record results for the relevant expectations
- Output: menu items were flagged with numbers
|
Windows Voice Access | Edge | unknown | - |
Windows Voice Access | Chrome | unknown | - |
Windows Keyboard | Chrome | not applicable | - |
Windows Keyboard | Firefox | not applicable | - |
Windows Keyboard | Edge | not applicable | - |
Mac Keyboard | Chrome | not applicable | - |
Mac Keyboard | Safari | not applicable | - |
iOS Keyboard | Safari | not applicable | - |
Android Keyboard | Chrome | not applicable | - |
Extended Support for: button element: convey its role
These are less common combinations
AT | Browser | Has Support | Output |
---|
Dragon Naturally Speaking | IE | unknown | - |
Dragon Naturally Speaking | Firefox | unknown | - |
JAWS 2020.2003.13 | IE 11 | yes | - Result: (pass)
Test Case: Use Tab (Read next focusable item) to navigate forward to `button:not([aria-expanded])`- Launch JAWS and IE.
- Navigate to the test page.
- 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.
- Position and configure the screen reader so that the following conditions are met
- Virtual focus is: before target
- Keyboard focus is: before target
- Mode is: auto (do not explicitly change the mode)
- Issue the command:
Tab (Read next focusable item)- After issuing the command, virtual focus should be: target
- Record results for the relevant expectations
- Output: "action button, menu"
- Command Notes: tab to the button with it collapsed
|
Narrator | Firefox | unknown | - |
Narrator | Chrome | unknown | - |
Narrator | IE | unknown | - |
NVDA | IE | unknown | - |
TalkBack | Firefox | unknown | - |
Voice Access (Android) | Firefox | unknown | - |
VoiceOver (iOS) | Chrome | unknown | - |
VoiceOver (macOS) | Chrome | unknown | - |
VoiceOver (macOS) | Firefox | unknown | - |
Orca | Chrome | unknown | - |
Voice Control (MacOS) | Chrome | unknown | - |
Voice Control (MacOS) | Firefox | unknown | - |
Mac Keyboard | Firefox | not applicable | - |
Android Keyboard | Firefox | not applicable | - |
Back to topDates and Versions of tested combinations
AT | AT Version | Browser | Browser version | OS version | Date tested |
---|
Dragon Naturally Speaking | 15.30 | Chrome | 80 | Windows 10 version 1909 | 2020-03-30 |
JAWS | 2021.2107.12 | Chrome | 92 | Windows 10 version 21h1 | 2021-08-07 |
JAWS | 2021.2107.12 | Edge | 92 | Windows 10 version 21h1 | 2021-08-07 |
JAWS | 2020.2003.13 | Firefox | 74 | Windows 10 version 1909 | 2020-11-09 |
Narrator | Windows 10 version 1909 | Edge | 44 | Windows 10 version 1909 | 2020-03-30 |
NVDA | 2021.1 | Chrome | 92 | Windows 10 version 21h1 | 2021-08-07 |
NVDA | 2021.1 | Edge | 92 | Windows 10 version 21h1 | 2021-08-07 |
NVDA | 2019.3.1 | Firefox | 74 | Windows 10 version 1909 | 2020-03-30 |
Orca | 3.34.0 | Firefox | 74 | Ubuntu 19.10 | 2020-03-30 |
TalkBack | 8.1 | Chrome | 80 | 10 | 2020-03-30 |
Voice Access (Android) | 3.1 | Chrome | 80 | 10 | 2020-03-30 |
Voice Control (iOS) | 13.3.1 | Safari | 13.3.1 | 13.3.1 | 2020-03-30 |
Voice Control (MacOS) | 10.15.3 | Safari | 13.0.5 | 10.15.3 | 2020-03-30 |
VoiceOver (iOS) | 15.0.2 | Safari | 15.0.2 | 15.0.2 | 2021-11-10 |
VoiceOver (macOS) | 12.0.1 | Safari | 15.1 | 12.0.1 | 2021-11-10 |
Windows Speech Recognition | Windows 10 version 1909 | Chrome | 80 | Windows 10 version 1909 | 2020-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.