Specify keyboard focus separately from Screen Reader focus
还没有人认领这个 Issue。
- 主要语言
- C++
- 星标
- 127k
- 派生
- 25.3k
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 4
描述
Description
On Android keyboard focus and accessibility focus are handled separately at the system level. Often these match, as many accessibility services use the “focusable” property (which informs keyboard focus), to also inform them where to focus. In API 28 however, Android added the setScreenReaderFocusable property to View (https://developer.android.com/reference/android/view/View#setScreenReaderFocusable(boolean)) which allows you to flag a view as being focusable only for screen readers, without making that same view focusable by keyboards.
This is useful since screen readers often want to focus on views that are content only, but not actionable (so their users can hear the content), but focusing on these content elements is not useful for keyboard navigation users, who only need to be able to move between interactive elements.
Right now in React Native, the accessible prop maps to focusable on Android, making the element focusable by both screen readers and keyboard users.
There are a few different approaches we could take here. We could surface a new prop called screenReaderFocusable, that sets focusable to false but screenReaderFocusable to true, we could adjust the accessible prop to only set screenReaderFocusable to true, and add a new prop for keyboardFocusable which sets focusable to true, or we could have the accessible prop contextually set either focusable (if the element is interactive by having a click handler) or screenreaderFocusable (if it’s content only).
Version
0.66
Output of npx react-native info
see description
Steps to reproduce
see description
Snack, code example, screenshot, or link to a repository
see description
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
Start by reviewing how React Native's Android accessible prop currently maps to focusable, then read the linked Android View setScreenReaderFocusable API. Compare the proposed prop designs and establish which behavior should apply to interactive versus content-only views. Done means a decided API and separate keyboard and screen-reader focus behavior.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- android, react-native
- 领域
- accessibility, mobile
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100