オートスキャン
既存のUIテストがアプリと連携する際にアクセシビリティの問題を自動的に特定します
概要
オートスキャンは、既存のEspressoやUIAutomatorテストがアプリと連動する際にアクセシビリティの問題を自動的に識別します。個別のスキャン呼び出しやテストの変更を行う必要はありません。オートスキャンは画面の変化を検知し、各ユニークな画面を自動的にスキャンします。
テスト内でより細かい制御が必要な場合は、 ターゲットテストを参照してください。
仕組み
私たちのGradleプラグインは、JUnitインストゥルメンテーションランナーをカスタムランナーに置き換えます。これにより、テストスイートを観察し、適切なタイミングで結果を処理することができます。 AxeDevToolsMobile Gradleプラグインを入手。
テストが終了すると、オートスキャンは結果を処理し、各画面のJSON結果と自己完結型HTMLレポートを保存します。 AxeDevToolsMobileResults、オプションで結果をDeveloper Hubにアップロードします。
始めに
-
ユーザーの設定および認証のためにいくつかの値を設定する必要があります。キーを安全に保つために、これらをコンピュータおよびCI/CDパイプライン上の環境変数として追加することをお勧めします。
Groovy (
build.gradle):axeDevTools { axeMobileApiKey = '' axeAutoScanMode = true axeProjectId = '' }Kotlin DSL (
build.gradle.kts):axeDevTools { axeMobileApiKey = "" axeAutoScanMode = true axeProjectId = "" } -
ツールを使用してオフラインモードで結果を取得することを希望する場合は、
axeOfflineLicenseKeyの代わりに値を設定します。axeMobileApiKeyとaxeProjectId。Groovy (
build.gradle):axeDevTools { axeOfflineLicenseKey = '' axeAutoScanMode = true }Kotlin DSL (
build.gradle.kts):axeDevTools { axeOfflineLicenseKey = "" axeAutoScanMode = true }
結果の解釈
コンソール要約
テストスイートが終了すると、Gradleログ内でポストプロセスが見られ、その後要約が表示されます。
HTML rule report written to: /Users/user/Documents/workspace/android/project-name/app/build/reports/AxeDevToolsMobileResults/AxeDevToolsMobile_1773882427726.html
---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
Screen: Home Page
Issues: 6
Issues by rule:
- TouchSizeWcag: 3
- LabelAtFront: 1
- LabelInName: 1
- FocusableText: 1
Scan 35:
Screen: Wikipedia Alpha
Issues: 5
Issues by rule:
- LabelAtFront: 1
- LabelInName: 1
- TouchTargetSpacing: 1
- TouchSizeWcag: 1
- ColorContrast: 1
Total Scans: 35
❌ Total Issues: 123
---------------------------------------------------出力ファイル
オートスキャンはスクリーンショット、ビュー階層データ、詳細な問題情報を含む自己完結型HTMLレポートを生成します。各スキャンごとに個別のJSON結果が axe-test-data ディレクトリに保存されます。すべてのファイルは app/build/reports/AxeDevToolsMobileResults ディレクトリに保存されます。
| ファイル | 形式 |
|---|---|
AxeDevToolsReport.html |
インタラクティブなHTMLレポート(画面ごとの問題、要素の詳細、影響レベル、ビュー階層) |
<timestamp>-axe-node-hierarchy.json |
各スキャンごとに1つの個別JSON結果 |
オートスキャンサポート
ルール
オートスキャンは、 ScreenOrientation およびすべての実験的ルール(例: NestedActiveControl、 NestedElementName、 InaccessibleAction)を除く、Axeの全ルールセットを実行します。何をチェックしているかの詳細は Androidのルール概要をご覧ください。
開発者ハブ
自動スキャンは結果をAxe Developer Hubに自動的にアップロードします。結果をローカルにのみ保存したい場合は、 axeUploadResults を falseに設定します。
設定リファレンス
プロパティ
| プロパティ | タイプ | 必須 | 詳細 |
|---|---|---|---|
axeAutoScanMode |
ブール値 | 必須 | 既定値は false。自動スキャンを有効にするには true に設定する必要があります。 |
axeUploadResults |
ブール値 | 任意 | 既定値は true。ローカル結果のみの場合は false に設定します。 |
axeMobileApiKey |
文字列 | 任意 | axe.deque.comからのAxe DevTools Mobile APIキー が 必要です **** 場合 axeUploadResults=true |
axeProjectId |
文字列 | 任意 | 開発者ハブからの プロジェクトID が 必要です 場合 axeUploadResults=true |
axeServerUrl |
文字列 | 任意 | カスタムバックエンドURL、オンプレミス/プライベートクラウドのみの場合 |
axeOfflineLicenseKey |
文字列 | 任意 | オフラインモードのみの場合にのみ必要です オフラインモード、 axeUploadResults=false |
ベストプラクティス
アニメーションの無効化
アニメーションを無効にすることで、自動スキャンから最も正確で包括的な結果を得ることができます。これにより、スクリーンがキャプチャ時に完全にレンダリングされるようになります。アニメーションが無効になっていないと、以下のようなことに気づくかもしれません:
- 削除されるはずの重複スキャン
- 通過状態を示すスクリーンショットを持つスキャン
- 期待よりも著しく低いスクリーンキャプチャ率
トラブルシューティング
Developer Hubでスキャンが表示されない場合は、ログを確認して問題の手がかりを探るか、このチェックリストを確認してください。
- 次を確認してください:
axeAutoScanMode=trueあなたのaxeDevTools設定ブロック - Maven Centralから依存関係を取得できたことを確認してください
- API/ライセンスキーおよびプロジェクトIDに正しい変数を使用しているか確認してください
- 出力ファイルのサイズをご確認ください。結果ファイルのいずれかのサイズが20MBを超えると、Developer Hubへのアップロードに失敗しますが、すべての結果はローカルに保存され、ローカルのHTMLレポートに表示されます。
次はどうしますか?
結果を確認できます: Axe Developer Hub。次のことを学びましょう: CI/CDパイプラインにAxe DevTools Mobileを統合する方法。クラウドベースのテスティングプラットフォームを使用していますか?Axe DevTools Mobileを利用してアクセシビリティの問題を見つけることができます: クラウドプラットフォームとの統合。
