クロスプラットフォームのアクセシビリティを振り返る 2024
Accessibilityこの記事は「アクセシビリティ Advent Calendar 2024」7日目の記事です。
今年はあまり追いきれてなくて雑です(言い訳)
誤りや不足事項は、お手数ですが @dekiruko-guru.guru へお願いします。
モバイルアプリ事情
今年はアメリカの ADA 絡みで、モバイルアプリにも大きな動きがあった。
前提として ADA は Americans with Disabilities Act(障害を持つアメリカ人法)のこと。この法を根拠とした Web アクセシビリティ不備の訴訟ケースがあり、ここ数年で増加傾向にあった。
UsableNet の 2024 Mid-Year ADA Web Lawsuit Report では、4,001 件の訴訟のうちモバイル関連の訴訟は 1% だった。それも Web サイトの 1% で、モバイルアプリの訴訟件数は 0% となる。
元々モバイルアプリは昨年度のレポート時点でも全体の 1% だったが、Web サイトの方が立証が簡単だから、的な説明も見られる。
2024 Mid-Year ADA Web Lawsuit Report: Insights and Trends Uncovered | UsableNet
今年は司法省により、Web アクセシビリティ規制の最終通告が発行された。
この規制により、公的機関の Web サイトおよびモバイルアプリのアクセシビリティは WCAG 2.1 レベル AA への準拠を義務付けられる。遵守は州政府や地方自治体の規模によるが、長くても 3 年以内になる。
司法省が Web アクセシビリティに関する規制を発行したのは、アメリカの歴史上初、と言えば聞こえはいいが、その前の規制案のフェーズから色々と懸念の声は挙がっていた。猶予があるとは言え全てのサービスが WCAG 2.1 レベル AA に準拠するのは難しいんじゃないの?とか。
モバイルアプリについて、文書は長すぎて全部読んでないんだけど、WCAG2ICT(WCAG をWeb 以外の文脈で適用するガイダンス) への言及があった。モバイルだろうが頑張ってやれ、というのが伝わった。
Fact Sheet: New Rule on the Accessibility of Web Content and Mobile Apps Provided by State and Local Governments
また「ついにトランプ様がホワイトハウスに帰ってきたぞ!」ということで、オバマやバイデン政権から続いていた Web アクセシビリティの法整備が止まることも懸念される。というのも、以前のトランプ政権でも止まったため。
具体的に何を推進していくかは州政府や地方自治体の動きになるけども、今後は事態が悪化しないか注意しつつ…という感じになりそう。
Web Accessibility and the Second Trump Administration
iOS
iPhone では iOS 18 になって Eye Tracking が追加された。API は公開されておらず、開発側でこれで何かするというのはできないが…。
目の動きでiPhoneを制御する | iPhoneユーザガイド
開発寄りの話だと accessibilityLabel(_:isEnabled:)
でラベルの適用有無を切り替えたり、 accessibilityLabel(content:)
で他コンテンツのラベルを組み合わせたりとか、ラベル関連が地味に柔軟になっている。
Accessibility updates June 2024 | Apple Developer Documentation
また Apple Machine Learning Research から、FixAlly というツールのプレプリントが出ていた。このツールは SwiftUI におけるアクセシビリティの諸問題を、LLM エージェントによって解決するために設計されているものらしい。
Automated Code Fix Suggestions for Accessibility Issues in Mobile Apps
Android
Android 15 では TalkBack が点字ディスプレイに対応した。また、短いフレーズ単位での改行設定が可能になった。
機能と API の概要 | Android Developers
TalkBack は他にも、一部デバイスで画像認識の AI が Gemini Nano に変わったようだが、手元で確認できず詳細がわかっていない。
TalkBack uses Gemini Nano to increase image accessibility for users with low vision
React Native
0.76 から New Architecture がデフォルトになった。その詳細は公式ドキュメントに譲るとして、アクセシビリティ関連の回帰も発生していた。例えば accessibilityLabel
が無効になる問題があったが、修正された。
[iOS] [New Architecture 0.73.6] Missing accessibilityLabel Text and Switch Component #43648 | GitHub
OSS では、React Native A11y Order v2 が公開されていた。
モバイルアプリには支援技術のフォーカス順序を制御するネイティブ API(iOS では accessibilityElements
, Android では setAccessibilityTraversalBefore
)はあるものの、これに React Native が対応していない。
A11y Order v2 はそれらと接続するためのコンテナとインデックスコンポーネントを提供するもの。
React Native A11y Order | GitHub
Accessibility focus order in React Native #389 | GitHub
アクセシビリティ対応に力を入れている UI ライブラリ界隈では、昨年注目を集めていた gluestack-ui の v2 がリリースされた。また新星の RN Primitives が公開された。
gluestack-ui v2 is here | gluestack
RN Primitives | GitHub
今年 React Native 界隈で最も熱かったのは Bluesky だろうけど、全く追いかけられてない。見てみると面白いかもしれない。
Flutter
昨年は Flutter Web の New DOM renderer for Flutter が話題となったが、チームは HTML レンダラをやめたい方向でやっているらしい。
というかこの記事の公開前日、正式にアナウンスがあり、--web-renderer
オプションは非対応になる様子。
それだけ CanvasKit, Skwasm レンダラが成熟したということかもしれないが、賛否の声はあった。
☂️ Intent to deprecate and remove the HTML renderer in Flutter Web #145954 | GitHub
細かい修正は、全部は追いきれていない。印象に残ったやつだけ上げると、まずはフォーカス問題がある。
支援技術のフォーカスと入力フォーカスは別のものだが、片方のフォーカスにもう片方が追従するかはユーザー側で選択できて、それに Flutter が対応していない、というやつ。
それだけならクロスプラットフォームの限界と一笑に付する人もいるだろうけど、この Issue では支援技術レイヤー〜ネイティブ API レベルの調査話、アプローチに対する議論が交わされており、開発上の知見として学ぶものがある。アクセシビリティ対応を P1 にしているからできるのかもしれないが…。
[web, desktop]: framework does not move input focus when accessibility focus moves #83809 | GitHub
もう一つは、JAWS でテキストウィジェットが認識されない問題の修正。これは Flutter の実装が誤っていて、generic
ロールを持つ div
に aria-label
をつけていたのが原因。
この問題への対応が ARIA では難しく、代わりにテキストノードを埋め込むことになったが、それによって aria-label
を E2E テストのターゲット要素にしていたユーザーはテストが通らなくなった、という話。
[web] make text more crawlable; fix a JAWS bug #50794 | GitHub
終わりに
今年もお疲れ様でした。