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に追加されました。
-
7つのコンポーネントでDisabled状態に関する問題が解決されました
-
2つのコンポーネントでSelected状態に関する問題が解決されました
-
React Native APIへの新しい追加により、AccessibilityManager.getRecommendedTimeoutMillis()をクエリする機能が追加されました。
Disabled状態の告知と機能の無効化
ギャップ分析で最も多く見つかった問題の1つは、一部のコンポーネントが機能の告知や無効化を行わないことでした。現在、7つのコンポーネントがDisabled状態を告知するか、クリック機能を無効にしています。
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要素が自動的に閉じるか自動的に進行するまでの「操作時間」を照会します。
ドキュメントの追加
利用可能なAPIへの追加または変更を反映するために、React Nativeのドキュメントを更新する必要があります。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、Collectionからの入場/退場、Collection内の位置に関する問題は、現在のコントリビューターと新規コントリビューターにとって、よりアクセスしやすいReact Nativeに貢献する絶好の機会です。
詳細はこちら
ギャップ分析がどのように行われたかについてはFacebook Techブログで、GitHub issueの公開についてはReact Nativeブログで読むことができます。