GAAD 承诺 — 一年后的回顾
距 Facebook 承诺加入 GAAD Pledge 以提升 React Native 无障碍功能已有一年,该项目超出了我们的预期。我们很高兴宣布,这个项目将在 2021 年持续推进,并希望向大家更新迄今为止的进展情况。在去年对 React Native 无障碍差距进行全面分析后,填补这些差距的工作已经开始。
我们从 90 个未解决的差距分析问题入手,自 2021 年 3 月该项目在 GitHub 启动以来,到现在为止:
-
社区关闭了 11 个问题。
-
React Native 团队评估并关闭了 19 个问题。
-
9 个拉取请求被合并。
-
1 个拉取请求被合并到 React Native 文档中。
我们要感谢 React Native 社区在过去一年里为打造更无障碍的 React Native 所做的重大努力。每位贡献者的付出都促进了 React Native 无障碍性的提升。
修复内容
通过 9 个拉取请求,多组件中修复了两类问题,并向 API 添加了一项新功能。
-
解决了七个组件中的禁用(Disabled)状态问题
-
解决了两个组件中的选中(Selected)状态问题
-
React Native API 新增了查询
AccessibilityManager.getRecommendedTimeoutMillis()的能力。
禁用状态的语音提示与禁用功能
差距分析中最常见的问题之一是某些组件没有宣布或禁用其功能。现在七个组件支持在禁用状态时进行语音提示或禁用点击功能。
禁用时的语音提示
当组件具有 disabled 属性时禁用点击功能
-
Button- #31001 -
Text- React Native 团队提交 -
Pressable- React Native 团队提交 -
TouchableHighlight- #31135 -
TouchableOpacity- #31108 -
TouchableNativeFeedback- #31224 -
TouchableWithoutFeedback- #31297
选中状态的语音提示
部分组件在焦点时未宣布选中状态。现在,当组件获得焦点且 AccessibilityState 设置为 selected,或者组件被切换为选中时,此行为已修复。
选中时的语音提示
无障碍超时设置
此前无法在 Android 上查询无障碍超时设置。此次修复新增了查询 AccessibilityManager.getRecommendedTimeoutMillis() 的能力。此方法可查询“采取操作的时间”,即 UI 元素自动消失或自动推进前的等待时间。
文档更新
React Native 文档必须同步反映每项 API 新增或更改。本次新增的 React Native 文档内容 涵盖了 getRecommendedTimeoutMillis() 被添加到 AccessibilityInfo 的信息。
社区参与
感谢所有提交并合并拉取请求的贡献者,以及评论和审查 issue 的朋友们。
合并的拉取请求
- @huzaifaaak 关闭了 3 个问题:
- @natural_clar 关闭了 1 个问题:
- fabriziobertoglio1987 关闭了 2 个问题:
- @kyamashiro73 关闭了 1 个问题:
- @grgr-dkrk 关闭了 1 个问题并更新了 React Native 文档:
- @crloscuesta 关闭了 1 个问题:
- @chakrihacker 关闭了 1 个问题:
感谢以下社区成员以其他方式贡献时间:
Simek, saurabhkacholiya, meehawk, intergalacticspacehighway, chrisglein, jychiao 和 Waltari10
参与进来!
我们已经取得了长足进步,但仍未完成。我们需要你的支持一起冲刺终点。Facebook 的 React Native 团队承诺支持致力于差距分析问题的贡献者。他们将继续回应无障碍问题的评论并筛选拉取请求。React Native 团队还在解决一些最棘手的差距分析问题。这些工作包括无障碍角色向其他语言的正确转换以及为特定组件指定错误文本。
欢迎加入我们,共同解决剩余的问题。仍有未关闭的无障碍问题可在 改进 React Native 无障碍项目板 查阅。涉及 选中/未选中状态、进入/退出集合 以及 集合中的位置 的问题,都是当前和新贡献者参与提升 React Native 无障碍性的绝佳机会。
了解更多
阅读关于差距分析如何进行的内容,请参阅 Facebook 技术博客;了解 GitHub 议题启动的详情,请访问 React Native 博客。