bug(material select): Accessibility iOS VoiceOver looses focus when selecting options
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- angular, typescript
调研方向
首先,在 Angular Material select overview page 或链接的 StackBlitz 上,使用 iOS VoiceOver,并让选项与其他可聚焦元素重叠,以重现该问题。比较在列出的 Safari 和 Chrome 版本中选择一个选项后的焦点顺序;当屏幕阅读器焦点返回 select menu 并继续遍历其选项时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
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:
- activate VoiceOver on your iPhone/iPad device
- Visit the angular material select menu example page
- 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
- 主要语言
- TypeScript
- 星标
- 25k
- 派生
- 6.8k
- 平均合并
- 1 天 1 小时
- 30 天内合并 PR
- 84
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
angular/components 的其他 Issue
-
area: material/tree docs gemini-triaged needs triage
难度 2/5 1-3 小时 新手友好度 68/100
angular/components#33832 ·
-
area: material/datepicker gemini-triaged P4
难度 2/5 1-3 小时 新手友好度 72/100
angular/components#33763 · 2 条评论 · 3 个 reaction ·
-
area: material/table gemini-triaged P4
难度 1/5 1 小时以内 新手友好度 88/100
angular/components#33709 · 1 条评论 ·
-
area: material/table docs gemini-triaged P4
难度 2/5 1-3 小时 新手友好度 72/100
angular/components#33455 ·
-
area: material/core gemini-triaged P3
难度 1/5 1 小时以内 新手友好度 78/100
angular/components#33059 · 2 条评论 ·
查看 angular/components 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 74/100
-
security
难度 2/5 1-3 小时 新手友好度 72/100
IBM/node-sdk-core#373 ·
-
e2e-failure ready-to-code
难度 2/5 1-3 小时 新手友好度 86/100
-
bug
难度 2/5 1-3 小时 新手友好度 74/100
-
chore
难度 2/5 1-3 小时 新手友好度 88/100