XCUITestドライバーによる自動スキャン
概要
自動スキャンは、iOSアプリを操作するときにアクセシビリティのスナップショットを自動的にキャプチャします。各画面で手動でスキャンをトリガーする代わりに、自動スキャンセッションを開始し、アプリを操作し、セッションを停止してレポートを作成します。
テストでより詳細な制御が必要な場合は、 Appiumによるターゲットテスト。
仕組み
- 開始 自動スキャンセッション(あなたの認証情報で)
- ナビゲート アプリを操作 — 画面は自動的にスキャンされます
- 停止 セッションを停止 — HTMLレポートが生成されます
~/AxeDevToolsMobileResults/
始めに
通常どおりAppiumサーバーを起動します:
appiumテストの設定
Appiumの自動化スクリプトから、Axe DevTools Mobileに必要な機能を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| automationName | String |
アクセシビリティスキャンを実行するためにaxe DevTools Mobileを組み込んだドライバーを利用するには「AxeXCUITest」に設定してください。 |
| bundleId | String |
テスト対象のアプリのバンドル識別子。 bundleId はXCUITestドライバーの一部で、既に設定されている場合があります。 |
自動スキャンの開始
テストスイートを開始する前に、次の axeStartAutoScanSession APIを呼び出して自動スキャンを開始します:
beforeAll(async () => { // Start auto scan
await driver.executeScript('mobile: axeStartAutoScanSession', [{
axeMobileApiKey: 'your-api-key',
axeProjectId: 'your-devhub-project-id',
axeAccountURL: 'https://axe.deque.com',
axeHtmlReportPath: './reports/accessibility' // optional (local dir; default 'build/AxeDevToolsMobileResults')
...
}]);
})自動スキャンの停止
テストスイートが終了する直前に、次の axeStopAutoScanSession APIを呼び出して自動スキャンを停止し、結果を集計してアップロードします。
// Stop - the report is pulled to axeHtmlReportPath on the local machine
const result = await driver.executeScript('mobile: axeStopAutoScanSession');
// result.localDirectory -> local directory the report was saved into上記のコードスニペットはJavaScriptを使用しています。 XCUITestによる自動スキャンのコード例 をご覧ください。複数のプログラミング言語でのより完全な例を参照できます。
結果の解釈
コンソール要約
テストスイートが終了するときに、次のようなコンソール要約が表示されます:
---- Axe DevTools Mobile Accessibility Summary ----
Scan 1:
Screen: HomeScreen
Issues: 3
Issues by rule:
- ColorContrast: 2
- TouchTargetSize: 1
Scan 2:
Screen: SettingsScreen
Issues: 0
Total Scans: 2
❌ Total Issues: 3
----------------------------------------------------クリーンランの場合、コンソールに Axe Clean - 0 Issues Found 🎉 が表示されます。
出力ファイル
自動スキャンセッションを停止すると、HTMLレポートが生成されます ~/AxeDevToolsMobileResults/。このレポートには、セッション中にキャプチャされた各画面のアクセシビリティ違反、合格、および推奨事項が含まれています。
自動スキャンサポート
ルール
自動スキャンは、 ScreenOrientationを除き、 SupportsDynamicTypeおよびすべての実験的ルールを含む完全なAxeルールセットを実行します。何をチェックするかの詳細は、 iOSのルール概要。
開発者ハブ
オートスキャンは結果を自動的にAxe Developer Hubにアップロードします。ローカルにのみ結果を保存したい場合は、 axeUploadResults を設定します。 false。
オフラインモード
クラウド認証情報がない場合は、代わりにオフラインライセンスキーを使用してください:
// JavaScript example
await driver.execute('mobile: axeStartAutoScanSession', {
axeOfflineLicenseKey: 'YOUR_OFFLINE_LICENSE_KEY'
});
// ... navigate through the app ...
await driver.execute('mobile: axeStopAutoScanSession', {});設定リファレンス
プロパティ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
axeUploadResults |
ブール値 | オプション | ダッシュボードへの結果のアップロード (デフォルト: true) |
axeMobileApiKey |
文字列 | 必須* | クラウドベースのスキャン用APIキー |
axeProjectId |
文字列 | オプション | 結果を整理するためのプロジェクトID |
axeOfflineLicenseKey |
文字列 | 必須* | オフラインモード用ライセンスキー (クラウド認証情報の代替) |
axeServerUrl (非推奨) |
文字列 | はい | カスタムバックエンドURL(例: axe.company.com)、 オンプレミス/プライベートクラウド のみ |
axeAccountURL |
文字列 | はい | カスタムバックエンドURL(例: axe.company.com)、 オンプレミス/プライベートクラウド のみ |
axeHtmlReportPath |
文字列 | いいえ | ユーザー設定可能なHTMLレポートとサマリーの出力ディレクトリ。既定値は ??? |
提供する いずれか クラウド認証情報 (axeMobileApiKey + axeProjectId+ axeAccountURL) または オフラインライセンスキー axeOfflineLicenseKey。
ベストプラクティス
アニメーションを無効にする
アニメーションを無効にすることで、オートスキャンから最も正確で包括的な結果を得られます。これにより、キャプチャ時に画面が完全に表示されます。以下の項目を次に追加してください capabilities:
capabilities: {
// ...existing capabilities
'appium:reduceMotion': true, // enables iOS "Reduce Motion" accessibility setting
}トラブルシューティング
- ローカルでは結果が見えるのに、Developer Hubでは見えないですか? 結果ファイルのいずれかのサイズが20MBを超える場合、Developer Hubへのアップロードに失敗しますが、すべての結果はローカルに保存され、ローカルHTMLレポートに表示されます。
- ログを確認してください。 コンソールで
AutoScanメッセージを探します。
次のステップは?
結果を Axe Developer Hubで見ることができます。次の操作の方法を学びます Axe DevTools MobileをCI/CDパイプラインに統合する。クラウドベースのテストプラットフォームを使用していますか?Axe DevTools Mobileを使用してアクセシビリティ問題を検出することができます: クラウドプラットフォームと統合する。
