オートスキャン

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

既存のUIテストがアプリと連携する際にアクセシビリティの問題を自動的に特定します

Not for use with personal data

概要

オートスキャンは、既存のEspressoやUIAutomatorテストがアプリと連動する際にアクセシビリティの問題を自動的に識別します。個別のスキャン呼び出しやテストの変更を行う必要はありません。オートスキャンは画面の変化を検知し、各ユニークな画面を自動的にスキャンします。

tip

テスト内でより細かい制御が必要な場合は、 ターゲットテストを参照してください。

仕組み

私たちのGradleプラグインは、JUnitインストゥルメンテーションランナーをカスタムランナーに置き換えます。これにより、テストスイートを観察し、適切なタイミングで結果を処理することができます。 AxeDevToolsMobile Gradleプラグインを入手。 テストが終了すると、オートスキャンは結果を処理し、各画面のJSON結果と自己完結型HTMLレポートを保存します。 AxeDevToolsMobileResults、オプションで結果をDeveloper Hubにアップロードします。

始めに

  1. ユーザーの設定および認証のためにいくつかの値を設定する必要があります。キーを安全に保つために、これらをコンピュータおよびCI/CDパイプライン上の環境変数として追加することをお勧めします。

    Groovy (build.gradle):

    axeDevTools {
        axeMobileApiKey = ''
        axeAutoScanMode = true
        axeProjectId = ''
    }

    Kotlin DSL (build.gradle.kts):

    axeDevTools {
        axeMobileApiKey = ""
        axeAutoScanMode = true
        axeProjectId = ""
    }
  2. ツールを使用してオフラインモードで結果を取得することを希望する場合は、 axeOfflineLicenseKey の代わりに値を設定します。 axeMobileApiKeyaxeProjectId

    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 およびすべての実験的ルール(例: NestedActiveControlNestedElementNameInaccessibleAction)を除く、Axeの全ルールセットを実行します。何をチェックしているかの詳細は Androidのルール概要をご覧ください。

開発者ハブ

自動スキャンは結果をAxe Developer Hubに自動的にアップロードします。結果をローカルにのみ保存したい場合は、 axeUploadResultsfalseに設定します。

設定リファレンス

プロパティ

プロパティ タイプ 必須 詳細
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を利用してアクセシビリティの問題を見つけることができます: クラウドプラットフォームとの統合