オートスキャン

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プラグインを入手。 テストが終了すると、Auto Scanが結果を処理し、各画面のJSON結果とAxeDevToolsMobileResultsに自給自足型のHTMLレポートを保存し、オプションで結果をDeveloper Hubにアップロードします。

始めに

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

    Groovybuild.gradle):

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

    Kotlin DSLbuild.gradle.kts):

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

    Groovybuild.gradle):

    axeDevTools {
        axeOfflineLicenseKey = ''
        axeAutoScanMode = true
    }

    Kotlin DSLbuild.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
---------------------------------------------------

出力ファイル

Auto Scanは、スクリーンショット、ビュー階層データ、および詳細な問題情報を含む自給自足型の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"

オートスキャンサポート

ルール

Auto Scanは、ScreenOrientationとすべての実験的ルール(例: NestedActiveControlNestedElementNameInaccessibleAction)を除いて完全なAxeルールセットを実行します。何を確認するかの詳細情報は、Androidのルール概要で参照してください。

開発者ハブ

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

設定リファレンス

プロパティ

プロパティ タイプ 必須 詳細
axeAutoScanMode ブール値 必須 デフォルトはfalseです。オートスキャンを有効にするにはtrueに設定する必要があります。
axeMobileApiKey 文字列 必須* axe.deque.comからのAxe DevTools Mobile APIキーは必要ですがある場合axeUploadResults=true
axeOfflineLicenseKey 文字列 必須* オフラインモードの場合にのみ必要です。axeUploadResults=falseのとき
axeUploadResults ブール値 任意 デフォルトはtrueです。ローカル結果のみの場合はfalseに設定します
axeProjectId 文字列 任意 Developer Hubからのプロジェクト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を使用してアクセシビリティの問題を検索できます:クラウドプラットフォームとの統合