bug(material select): Accessibility iOS VoiceOver looses focus when selecting options
- Dominant language
- TypeScript
- Stars
- 25k
- Forks
- 6.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 91
Description
### Is this a regression?
- [ ] Yes, this behavior used to work in the previous version
### The previous version in which this bug was not present was
_No response_
### Description
WCAG issue.
Issue seen with iPhone and VoiceOver on the following versions and browsers
- Safari with angular material 20 and 22
- Chrome with angular material 21 and 22
The main issue is that after a double tap on the dropdown (action to select an element when voice over is enabled), when swiping between elements, the focus continues to move outside the select, instead of browsing each element in the select.
The issue is not reproducible on Mac, nor on a classic desktop, and is restricted to VoiceOver use on an iPhone.
The issue is not reproducible on Android/Talkback neither.
### Reproduction
Angular Material Example page: https://material.angular.dev/components/select/overview
StackBlitz link: https://stackblitz.com/run?file=src%2Fexample%2Fselect-reset-example.ts&startScript=start
Steps to reproduce:
1. activate VoiceOver on your iPhone/iPad device
2. Visit the angular material select menu example page
3. play with the select menus having options list that overlap other focusable DOM elements (another menu, a heading, etc...)
### Expected Behavior
Expected: The screen reader focus should go back to the menu where the option is selected.
### Actual Behavior
Actual: After selection is done in the menu, the screen reader focus is pointing to the element behind the chosen material-option.
### Environment
- Angular: 19, 20, 21, 22
- CDK/Material: select
- Browser(s): Safari/Chrome
- Operating System (e.g. Windows, macOS, Ubuntu): iOS
Contributor guide
Research direction
Start by reproducing the issue on the Angular Material select overview page or the linked StackBlitz, using iOS VoiceOver with options overlapping other focusable elements. Compare the focus sequence after selecting an option across the listed Safari and Chrome versions; done means screen-reader focus returns to the select menu and continues through its options.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100