GAAD 承诺一周年回顾
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
自 Facebook 作出GAAD 承诺提升 React Native 的无障碍功能已满一年,项目进展远超预期。我们欣喜地宣布该项目将在 2021 年持续推进,并在此同步当前成果。去年完成对 React Native 无障碍功能缺口的全面分析后,我们立即启动了填补工作。
初始阶段共梳理出 90 个待解决的无障碍功能缺口,从 2021 年 3 月项目在 GitHub 启动至今:
-
11 个 issue 由社区成员关闭
-
19 个 issue 经 React Native 团队评估后关闭
-
9 个 pull request 已完成合并
-
1 个 pull request 被合并至 React Native 文档
我们由衷感谢 React Native 社区过去一年为提升框架无障碍功能做出的重大贡献。每位参与者的努力都在推动 React Native 无障碍体验的进步中发挥了重要作用。
修复内容
通过合并的 9 个 pull request,我们在多个组件中修复了两类问题,并为 API 新增了一项功能:
-
7 个组件修复了「禁用状态」相关问题
-
2 个组件修复了「选中状态」相关问题
-
React Native API 新增 AccessibilityManager.getRecommendedTimeoutMillis() 查询功能
禁用状态播报与禁用功能
缺口分析发现最普遍的问题是部分组件未播报禁用状态或禁用交互功能。现在已有 7 个组件能播报禁用状态或禁用点击功能。
禁用状态播报组件:
支持禁用属性的点击功能禁用组件:
-
Button- #31001 -
Text- React Native Team commit -
Pressable- React Native Team commit -
TouchableHighlight- #31135 -
TouchableOpacity- #31108 -
TouchableNativeFeedback- #31224 -
TouchableWithoutFeedback- #31297
选中状态播报
此前部分组件在获得焦点时未播报选中状态。现已修复该行为:当组件获得焦点且 AccessibilityState 设为 selected,或组件状态变为 selected 时将正确播报。
选中状态播报组件:
无障碍超时设置
此前 Android 平台无法查询无障碍超时设置。本次修复新增了查询 AccessibilityManager.getRecommendedTimeoutMillis() 的能力。该接口用于查询 UI 元素自动关闭或自动推进前的"操作响应时间"。
文档更新
React Native 文档必须及时更新以反映 API 变更。我们在文档新增内容中覆盖了 AccessibilityInfo 新增的 getRecommendedTimeoutMillis() 方法。
社区参与
衷心感谢以下提交并合并 PR 的贡献者,以及参与问题评审和评论的所有成员。
已合并的拉取请求
-
@huzaifaaak 通过以下 PR 解决了 3 个问题:
-
@natural_clar 通过以下 PR 解决了 1 个问题:
-
fabriziobertoglio1987 通过以下 PR 解决了 2 个问题:
-
@kyamashiro73 通过以下 PR 解决了 1 个问题:
-
@grgr-dkrk 解决了 1 个问题并更新了 React Native 文档:
-
@crloscuesta 通过以下 PR 解决了 1 个问题:
-
@chakrihacker 通过以下 PR 解决了 1 个问题:
同时感谢以下以其他方式投入时间的社区成员!
Simek、saurabhkacholiya、meehawk、intergalacticspacehighway、chrisglein、jychiao 和 Waltari10
立即参与!
我们已经取得了长足的进步,但尚未完成目标。我们需要您的支持来抵达终点线。Facebook 的 React Native 团队承诺支持贡献者解决可访问性差距分析问题。团队将继续回应关于可访问性问题的评论,并对拉取请求进行分类处理。React Native 团队也正在攻克部分最具挑战性的差距分析问题,包括正确翻译 accessibilityRoles 为其他语言,以及为特定组件指定错误文本。
欢迎加入我们共同解决剩余问题。在改进 React Native 可访问性项目看板上仍有未解决的可访问性问题。选中/未选中状态、集合元素进出通知和集合内位置提示等议题,都是新老贡献者参与构建更完善可访问性的绝佳机会。
了解更多
阅读Facebook 技术博客了解差距分析的具体执行方式,或通过React Native 官方博客查看 GitHub 议题的启动详情。