GAAD 承诺 - 一年后
自 Facebook 做出 GAAD 承诺使 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 添加了一个新功能。
-
已在七个组件中解决了禁用状态的问题
-
已在两个组件中解决了选中状态的问题
-
React Native API 中的一项新添加功能,增加了查询 AccessibilityManager.getRecommendedTimeoutMillis() 的能力。
禁用状态通知和禁用功能
在差距分析中发现的最普遍的问题之一是某些组件不会通知或禁用功能。现在有七个组件会通知其禁用状态或禁用点击功能。
禁用时通知
当组件具有 disabled 属性时禁用点击功能
-
Button
- #31001 -
Text
- React Native 团队提交 -
Pressable
- React Native 团队提交 -
TouchableHighlight
- #31135 -
TouchableOpacity
- #31108 -
TouchableNativeFeedback
- #31224 -
TouchableWithoutFeedback
- #31297
选中状态通知
之前有些组件在聚焦时不会通知其选中状态。现在当组件聚焦且 AccessibilityState 设置为 selected 或组件变为 selected 时,此行为已修复。
选中时通知
无障碍功能超时设置
之前无法在 Android 上查询无障碍功能超时设置。此修复增加了查询 AccessibilityManager.getRecommendedTimeoutMillis() 的能力。它查询 UI 元素自动消失或自动进入下一步之前的“操作时间”。
文档补充
React Native 文档必须更新以反映对可用 API 的每项新增或更改。React Native 文档中的新补充涵盖了将 getRecommendedTimeoutMillis() 添加到 AccessibilityInfo。
社区参与
我们要感谢所有以下提到的贡献者,他们提交并合并了拉取请求,以及那些审查和评论问题的人。
已合并的拉取请求
- @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 团队也在解决一些最棘手的差距分析问题。这项工作包括正确翻译 accessibilityRoles 到其他语言,以及为特定组件指定错误文本。
加入我们一起解决剩下的问题。在改进 React Native 无障碍功能项目看板上仍有一些未解决的无障碍功能问题。Checked/Unchecked State、Entrance/exit from Collection 以及 Position in Collection 等问题是现有贡献者和新贡献者为使 React Native 更具无障碍功能做出贡献的绝佳机会。
了解更多
在Facebook 技术博客上阅读关于如何进行差距分析的文章,或在React Native 博客上阅读关于 GitHub 问题启动的文章。