オートスキャン

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結果
note

特定のディレクトリに結果を保存したい場合は、プラグイン設定ブロックでこれを指定できます。その中の build.gradle ファイル。

axeDevTools {
    axeMobileApiKey = "AXE_API_KEY"
    axeProjectId = "DEVHUB_PROJECT_ID"
    axeAutoScanMode = true
    axeHtmlReportPath = 
        "User/Desktop/reports/AxeDevToolsMobileResults"
    axeAccountUrl = "https://axe.deque.com"

オートスキャンサポート

ルール

オートスキャンは、 ScreenOrientation およびすべての実験的ルール(例: NestedActiveControlNestedElementNameInaccessibleAction)を除く、Axeの全ルールセットを実行します。何をチェックしているかの詳細は Androidのルール概要

開発者ハブ

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

設定リファレンス

プロパティ

プロパティ タイプ 必須 詳細
axeAutoScanMode ブール値 必須 既定値は false。自動スキャンを有効にするには true に設定する必要があります。
axeMobileApiKey 文字列 必須* axe.deque.comからのAxe DevTools Mobile APIキー 必要です 場合 axeUploadResults=true
axeOfflineLicenseKey 文字列 必須* オフラインモードのみの場合にのみ必要です オフラインモードaxeUploadResults=false
axeUploadResults ブール値 任意 既定値は true。ローカル結果のみの場合は false に設定します。
axeProjectId 文字列 任意 開発者ハブからの プロジェクトID必要です 場合 axeUploadResults=true
axeServerUrl (非推奨) 文字列 任意 カスタムバックエンドURL(例: axe.company.com)、 オンプレミス/プライベートクラウド 専用
axeAccountUrl 文字列 任意 カスタムバックエンドURL(例: axe.company.com)、 オンプレミス/プライベートクラウド 専用
axeHtmlReportPath 文字列 任意 ユーザーが設定可能なHTMLレポートとサマリーの出力ディレクトリ。デフォルトは build/reports/AxeDevToolsMobileResults
axeOfflineLicenseKey 文字列 任意 オフラインモードのみの場合にのみ必要です オフラインモードaxeUploadResults=false

* 注: 設定で次のいずれかを設定する必要があります axeMobileApiKey または axeOfflineLicenseKey 。APIキーはオフラインモードを使用しない限り必須です。オフラインライセンスキーはオフラインモードのみに必要です。

ベストプラクティス

アニメーションの無効化

アニメーションを無効にすることで、自動スキャンから最も正確で包括的な結果を得ることができます。これにより、スクリーンがキャプチャ時に完全にレンダリングされるようになります。アニメーションが無効になっていないと、以下のようなことに気づくかもしれません:

  • 削除されるはずの重複スキャン
  • 通過状態を示すスクリーンショットを持つスキャン
  • 期待よりも著しく低いスクリーンキャプチャ率

トラブルシューティング

Developer Hubでスキャンが表示されない場合は、ログを確認して問題の手がかりを探るか、このチェックリストを確認してください。

  • 次を確認してください: axeAutoScanMode=true あなたの axeDevTools 設定ブロック
  • Maven Centralから依存関係を取得できたことを確認してください
  • API/ライセンスキーおよびプロジェクトIDに正しい変数を使用しているか確認してください
  • 出力ファイルのサイズをご確認ください。結果ファイルのいずれかのサイズが20MBを超えると、Developer Hubへのアップロードに失敗しますが、すべての結果はローカルに保存され、ローカルのHTMLレポートに表示されます。

次はどうしますか?

結果を確認できます: Axe Developer Hub。次のことを学びましょう: CI/CDパイプラインにAxe DevTools Mobileを統合する方法。クラウドベースのテスティングプラットフォームを使用していますか?Axe DevTools Mobileを利用してアクセシビリティの問題を見つけることができます: クラウドプラットフォームとの統合