GAADプレッジ - 1年後
FacebookがReact Nativeのアクセシビリティを向上させるためのGAADプレッジを行ってから1年が経ち、プロジェクトは私たちの期待を上回る成果を上げています。このプロジェクトが2021年を通じて継続されることを発表でき、これまでの進捗状況を皆さんに報告できることを嬉しく思います。昨年React Nativeのアクセシビリティギャップを徹底的に分析した後、これらのギャップを埋める作業が始まりました。
未解決のギャップ分析課題が90件あり、2021年3月にGitHubでプロジェクトが開始されて以来、現在まで
-
コミュニティによって11件の課題がクローズされました。
-
React Nativeチームによって19件の課題が評価され、クローズされました。
-
9件のプルリクエストがマージされました。
-
1件のプルリクエストがReact Nativeのドキュメントにマージされました。
過去1年間で、よりアクセシブルなReact Nativeに向けて多大な進歩を遂げたReact Nativeコミュニティに感謝と敬意を表したいと思います。React Nativeのアクセシビリティ向上に向けて、すべての貢献者の努力が実を結びました。
修正
9件のプルリクエストにより、複数のコンポーネントで2種類の問題が修正され、1つの新しい機能がAPIに追加されました。
-
Disabled状態に関する問題が7つのコンポーネントで解決されました。
-
Selected状態に関する問題が2つのコンポーネントで解決されました。
-
React Native APIへの新しい追加として、AccessibilityManager.getRecommendedTimeoutMillis()をクエリする機能が追加されました。
Disabled状態のアナウンスと無効化機能
ギャップ分析中に最も顕著な問題の1つは、一部のコンポーネントが機能のアナウンスや無効化を行わないことでした。現在、7つのコンポーネントが自身の無効状態をアナウンスするか、クリック機能を無効にしています。
Disabled時にアナウンス
コンポーネントにdisabledプロパティがある場合、クリック機能を無効にする
-
Button
- #31001 -
Text
- React Nativeチームのコミット -
Pressable
- React Nativeチームのコミット -
TouchableHighlight
- #31135 -
TouchableOpacity
- #31108 -
TouchableNativeFeedback
- #31224 -
TouchableWithoutFeedback
- #31297
Selected状態のアナウンス
フォーカスがあるときに選択をアナウンスしないコンポーネントがいくつかありました。この動作は、コンポーネントがフォーカスされ、AccessibilityStateがselectedに設定されているか、コンポーネントがselectedに変更された場合に修正されました。
Selected時にアナウンス
アクセシビリティタイムアウト設定
以前はAndroidでアクセシビリティタイムアウト設定をクエリする方法がありませんでした。この修正により、AccessibilityManager.getRecommendedTimeoutMillis()
をクエリする機能が追加されました。これは、UI要素が自動的に閉じるか自動的に進むまでの「アクションを起こすまでの時間」をクエリします。
ドキュメントの追加
React Nativeのドキュメントは、利用可能なAPIへの追加または変更を反映するように更新する必要があります。React Nativeドキュメントへの新しい追加は、AccessibilityInfoへのgetRecommendedTimeoutMillis()
の追加をカバーしています。
コミュニティ参加
プルリクエストを提出しマージした以下のコントリビューターの方々、および問題をレビューしコメントしてくださった方々に感謝いたします。
マージされたプルリクエスト
- @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の他の言語への正確な翻訳や、特定のコンポーネントのエラーテキストの指定が含まれます。
残りの問題に取り組むためにご参加ください。Improved React Native Accessibilityプロジェクトボードには、まだ未解決のアクセシビリティ問題があります。Checked/Unchecked State、Entrance/exit from Collection、およびPosition in Collectionの問題は、既存および新規のコントリビューターがよりアクセスしやすいReact Nativeに貢献するための素晴らしい機会です。
詳細を見る
ギャップ分析がどのように行われたかについてはFacebook Techブログを、GitHubの問題の公開についてはReact Nativeブログをご覧ください。