AndroidでもAccessibility Insightsを使ってアクセシビリティ評価をする

2021.07.30

いわさです。

Webアクセシビリティ評価のために先日以下のツールを試しました。

Accessibility InsightsはWebサイトの他にAndroidアプリのアクセシビリティも評価することが可能です。
本日はAVD Manager経由で起動した仮想デバイス上でアプリを実行します。

ちなみに、ネイティブアプリであれば、ReactNativeでもXamarin.Androidでもテスト対象となります。
アプリに何か設定したりコードを埋め込む必要も無いので、標準アプリでもストアリリース済みアプリでも対象に評価が可能です。

セットアップ

ホストマシン(macOS)とゲストマシン(Android)それぞれセットアップが必要です。

ホストマシンセットアップ

以下からインストーラーをダウンロードします。

Webブラウザの場合は、GoogleChrome拡張での操作でしたが、Androidの場合はホストマシン側のツールは Android Debug Bridge(adb) を使って操作およびサービスのセットアップを行います。
ホストマシン上のadbパスを探します。

iwasa.takahito@hoge ~ % adb
Android Debug Bridge version 1.0.41
Version 31.0.2-7242960
Installed as /Users/iwasa.takahito/Library/Android/sdk/platform-tools/adb

末尾のadbを除外した、ディレクトリパスを指定してください。

Android Virtual Device Manager から仮想デバイスを起動します。

AccessibilityInsightsからスキャンしてみましょう。
起動した仮想デバイスが認識出来ると思います。

ゲストマシン(仮想デバイス)セットアップ

AccessibilityInsightsから仮想デバイスへ接続します。
接続するとAccessibility Insights for Android Serviceをインストールするボタンを押せますのでインストール操作をしましょう。

インストールに成功したら、権限の付与を行います。
Accessibility Insight for Android Service がデバイスにアクセスし、スクリーンショットを取得することを許可します。

Settings -> Accessibility -> Accessibility Insights for Android Service を探し出します。

タップし、Use serviceをチェックして有効化しましょう。
確認ダイアログが出ますので内容確認のうえOKを押します。

なお、本日時点で Accessibility Insights for Android ServiceでサポートされているのはAndroid 7(API24)以降となっています。

アクセシビリティ評価

セットアップが終わったので、評価をしていきたいと思います。
Accessibility Insights for Web と同様に FastPassの自動チェックと手動チェックがありますが、WCAG Assesmentのような機能はAndroidにはありません。

自動チェック

自動チェックにより、コントラストの低さ、名前の欠落、タッチターゲットのサイズの不備など、一般的なアクセシビリティの問題を検出することが出来ます。
ルールは、オープンソースのアクセシビリティルールライブラリであるaxe-androidに基づいています。

注意点として、このチェックは表示されているコンテンツに対してのみ有効化されます。
非表示になっているコンテンツ(例えばメニューオプションなど)は自動チェックを実行する前に手動操作をして、コンテンツを表示状態にする必要があります

また、AccessibilityNodeInfo階層内にあるUI要素に対して自動チェックは実行されるため、画面外の要素でまだ階層内に入っていないオブジェクト要素がある場合は事前にスクロールして表示させる必要があります。
デバイスリソース効率化のためにAndroidは画面外の要素をAccessibilityNodeInfo階層内に格納しない場合があります。

以下は、標準の電卓アプリで自動チェックを実行した様子です。
エラーが出ていますね。
右上のメニューボタンと、右側のスライドボタンが小さすぎるようです。

手動テスト

Accessibility Insights for Web と同様に、以下のような問題の検出を支援します。

  • Tabキーや矢印キーで要素にアクセスできない
  • キートラップ
  • 入力フォーカスがあっても視覚的にわからない
  • ナビゲーション順序が論理的ではない
  • 意図せずフォーカス移動が発生する

タブ移動のヘルパー

キー操作のヘルパー

レビューが必要なインスタンスの評価と検出

自動チェックで評価できない方法でコード化された要素が検出される場合があります。
Accessibility Insights for Webでも出てきましたが、テキストカラーのコントラスト比などです。
こういったものは人の目で見て判断する必要があります。

Issue Filing機能

こちらもWeb版と同様にGitHubかAzure Boardsと課題作成のヘルプ機能があります。

後始末

デバイス側にサービスをインストールしますので、後始末を忘れないようにしましょう。

Settings -> App info からアンインストール操作を行います。

まとめ

本日はAccessibility Insights for Android を試してみました。
Accessibility Insights for Web よりも少し機能が少ない感じはしますね。
とはいえ、標準の電卓機能の結果も確かに言われてみれば押しにくいかもとは感じましたし、普段気づかない点に気付くきっかけになりそうです。

こちらも無料ですので是非使ってみてください。