axe DevTools Mobile 2025年3月26日 リリースノート
2025年3月26日
コンポーネントのバージョン
iOS
- iOS SDK (axeDevToolsXCUI v2.14.1)
- iOS アナライザー (axe-devtools-mobile-analyzer v1.4.9)
- iOS Appium ドライバー (axe-appium-xcuitest-driver v1.3.0)
更新方法: iOS SDK、 iOS アナライザー、 iOS Appium ドライバー
Android
- Android SDK (axe-devtools-android v6.2.0)
- Android アナライザー (axe Accessibility Analyzer v1.12.0)
- Android Appium ドライバー (axe-appium-uiautomator2-driver v1.4.0)
更新方法 Android-SDK、 Android アナライザー、 Android Appium ドライバー
新機能
SDK
テストを書く際に、 実験的ルール をaxe DevTools Mobile SDKから無視することができるようになりました。実験的ルールはまだテストと開発中であるため、標準ルールセットに基づいた結果に焦点を合わせることができます。
Appium ドライバー
Appium ドライバーでスキャンする際、新しいオプションがいくつか利用可能です。以下のことができます:
- 設定を行う際に実験的ルールを無視する
- ネットワークリクエストの数を減らし、スキャン速度を向上させるために、Mobile ダッシュボードへのスキャンのアップロードを無効にする
- 結果キーを使用してMobile ダッシュボードへのスキャンのリンクを作成する
詳しくは Appium 機能 ページをご覧ください。
修正点
iOS
- 無限の領域を持つビューに関連する
couldNotSerializeResultエラーを修正しました - 画面の一部がオフにあるビューに対する誤検出を減らしました
- 色のコントラストと衝突するビューのルールの精度を改善しました
Android
- スキャン時にスクリーンショットがどのように保存されるかに関する問題を修正しました
- Webビューに対する誤検出を減らしました
- アナライザーアプリのログイン画面でのクラッシュを防止しました
- 以下のルールの精度を改善しました:タッチターゲットの間隔、ImageView名、ラベル優先、フォーカス可能なテキスト
既知の問題
以下の問題のいずれかで困っている場合は、 helpdesk@deque.com または support.deque.com。その後、解決次第、または記載されていない回避策が特定された場合にお知らせすることができます。
- axe DevTools Mobileの自動テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリケーションで実行されます。技術スタックに最適なアクセシビリティテストソリューションについては、お客様のDeque担当者にお問い合わせください。
- WebビューやレンダリングされたPDFからも結果を得られる場合がありますが、Webの包括的なアクセシビリティテストのためには、axe DevTools for Webまたはaxe Monitorの使用を強くお勧めします。
iOS
iOS Analyzer 1.4.7で物理デバイスでのスキャンが実行できない
iOS Analyzer 1.4.7の設定により、スキャンが実行されず「テスト失敗」と表示されます。物理デバイス上でスキャンを実行するには、 最新のiOS Analyzerプロジェクトにアップデートしてください。
AnalyzerプロジェクトとバンドルIDによるテストでのエラー (2.8.1)
バンドル識別子によるアプリケーションのテスト機能がバージョン2.8.1で破損し、「テスト設定を通じてターゲットアプリケーションパスが指定されていません: ...」というエラーが発生しました。エラーを解決するには、2.8.2または最新バージョンにアップデートしてください。 iOS Analyzerプロジェクト内で最新にアップデートしてください。
Analyzerプロジェクトv1.2.0 & SDK v2.12.3での「AxeResultをシリアライズできませんでした」エラー
このバージョンのアナライザーとSDKで一部のアプリケーションをスキャンすると、「AxeResultをシリアライズできませんでした」というエラーが発生します。エラーを解決するには、最新バージョンにアップデートしてください。 最新のiOS Analyzerプロジェクトにアップデートしてください。最新のiOS SDKにアップデートしてください。
SwiftUI & クロスプラットフォームアプリでの誤検知: LabelInNameおよびLabelAtFront
一部の画面で、誤ったassociatedTextプロパティが検出されたため、LabelInNameおよびLabelAtFrontの誤検知が報告される可能性があります (#1622)
iOS 15 Proシミュレーターで動作しないDynamic Typeサポートルール
iPhone 15 Proシミュレーターに影響を与える問題があり、Supports Dynamic Typeルールが実行されません。Supports Dynamic Typeルールに参加している場合、iPhone 15 Proシミュレーターを使用してテストできません。Appleにバグが報告されています。
入れ子になったコントロールに対するルール
私たちのルール改善を考慮する中で、XCTestでは入れ子になったコントロールがアクセシビリティツリーに返されないことを発見しました。この問題はAppleに報告されています。 (#1110)
UIKitアプリのImageView Nameルールは要レビューの結果を求めている
UIKitアプリでは、`accessibilityLabel`がない画像はデフォルトで支援技術によるフォーカスができません。
Appleが提供するフォーカス可能性をチェックするためのプロパティは、画像に`accessibilityIdentifier`が設定されている場合に不正確かもしれません。この予期しない動作のため、UIKitアプリでのImageView Nameの問題の結果は要レビューと報告されます。Appleにバグが報告されています。 (#1633)
スクロールビュー内の誤検知: Label In Name、Label at Front、およびv2.11.0のImage View Name & ActiveControlName
以下の誤検知については、現在修正に取り組んでおり、修正がリリースされ次第このリストを更新します。
In Scroll View
バナー動作要素内のテキストに関する問題が報告される場合があります。これらの要素を大きなテキストを必要とする人々に利用可能にするためには、 UILargeContentViewer。(#622)
v2.11.0 Image View Name & Active Control Name
UIImageViewに`accessibilityIdentifier`が設定されていてもVoiceOverによるフォーカスができず、その中にフォーカス可能なコントロールが入っている場合、ActiveControlNameがUIImageViewに誤検知を報告することがあります。`accessibilityIdentifier`を削除することでこの問題は解決されます。Appleにバグが報告されています。 (#1633)
Label In Name and Label At Front
これらの2つのルールは、ルールのステータスを判定するのに役立つため、近くの要素のコントロールの可視ラベルを探します。一部のビュー階層では、誤った近くのテキストが検出され、これらのルールが失敗する可能性があります。 (#1622)
Android
EditTextName Android 7 (SDK 24-25)で
XMLで書かれたアプリがヒントテキスト機能を利用する場合、 EditTextName ルールで誤検知が発生する可能性があります。ヒントテキストはAndroid 8 (SDK 26)まで導入されていませんでした。この要素をXMLアプリで使用すると、テキスト入力フィールドにヒントテキストが割り当てられます。より新しいバージョンのAndroidはこの体験をアクセシブルにするのにより適しています。
この問題を解決するための最初の推奨は、テストをより新しいバージョンのAndroidで実行することです。しかし、アプリが初期のAndroidバージョンでもアクセシブルであることが重要な場合、この hintText 機能の使用を避けることを検討してみてください。これは公式にはサポートされていません。
Androidで隠されたビューが結果を返す
画面上の他のビューの後ろに隠されたビューの結果が表示されることがあります。これらの隠れたビューは支援技術には利用できませんが、axe DevTools Mobileはそれらを問題として報告します。
この複雑な問題の修正に取り組んでいます。その間、TalkBackでこれらのビューにアクセスできない場合は、対応する問題を無視してください。アクセシビリティを確保するための修正は必要ありません。
ML Kitテキスト検出を実行中のエラー
axe DevTools Mobileの多くのルールでは結果の精度を確保するためにML Kitテキスト検出が必要です。EspressoやUIAutomatorの自動化テストでaxe DevTools Mobileを参照するとき、ML Kitライブラリは自動的にインポートされるべきです。しかし、場合によっては自動インポートが行われず、logcatに次のエラーが表示されます:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
この問題を解決するには、ML Kitライブラリをプロジェクトに手動でインポートする必要があります。アプリケーションの build.gradle ファイル内の依存関係の下に次のものを追加してください:
implementation 'com.google.mlkit:text-recognition:16.0.1'
タッチターゲットの間隔とJetpack Compose
タッチターゲットの間隔ルールは現在、Jetpack Composeで書かれたスライダーコンポーネントでは動作していません。現時点では何も行うことができませんが、すぐに修正される予定です!
API 30でローカル結果を保存する際のエラー
Android API 30では、結果をローカルに保存しようとする場所の1つで権限エラーが発生します。このエラーが表示されても結果はJSONファイルとして保存されます。このエラーは次のブロック内のコードをコメントアウトすることで抑制できます:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
// finalizedBy {
// fetchAndroidFolderAxeReportsTask
// }
}
Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.
ハイブリッドアプリおよびクロスプラットフォームアプリでのスクロール検出
一部のハイブリッドおよびクロスプラットフォームアプリでは、スクロールビュー内のアイテムが画面の一部から外れていると予期しない結果が返されることがあります。要素のアクセシビリティをテストするには、スキャンを行う前にその要素が完全に画面内にあることを確認してください。
Analyzerアプリ: フローティングアクションボタンが消える
API 31(Android 12)で導入された非システムオーバーレイを非表示にする機能です。axe Analyzerアプリを利用するためには、この設定がオンになっていないことを確認してください。この機能をセキュリティ強化のために利用している場合は、テストデータを安全に利用できる内部テストビルドではオフにしておくことをお勧めします。 Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
axe Accessibility Analyzerアプリを利用するには、影響を受けるアクティビティウィンドウでメソッド setHideOverlayWindows(true) を setHideOverlayWindows(false) に更新してください。
ダッシュボードでスクリーンショットが表示されない(黒いボックス)
axe DevTools for Mobileの完全な機能を解放するには、スクリーンショットが有効になっていることを確認してください。セキュリティの懸念を避けるために、モックデータを使用するデバッグまたはテストバージョンのアプリでスクリーンショットを有効にすることをお勧めします。詳しくは、 Androidアプリでのスクリーンショットの有効化方法を確認してください。
`minifiedEnabled`がtrueに設定されたときのクラッシュ
ビルドを縮小化すると、axe DevToolsライブラリにログインしようとする際にアダプタが見つからないというエラーログが表示されてクラッシュします。axe DevToolsを実装したデバッグビルドでは、最小化を無効にしてください。(#729)
r8が有効なビルドでエラーが発生する
r8が有効なビルドはaxeDevToolsライブラリを縮小化しようとして、以下のようなエラーになることがあります:
Caused by: java.lang.NullPointerException: throw with null exception
at g.b.b.a$a.a(Unknown Source:1)
at g.b.b.a$a.a(Unknown Source:0)
at g.b.b.a.a(AccessToken.java:190)
To resolve this error add the following line to your ProGuard file to keep axeDevTools classes:keep class com.deque.** { *; }
次のようなエラーメッセージ:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
または: No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
Compose APIは非推奨となりますので、 レイアウトに依存しないAPI を使用して更新を受け取るようにしてください。Compose APIを引き続き使用し、`Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`や`No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`というエラーが発生した場合は、 Compose setTestTag APIを参照してください。
ログメッセージ:MlKitContext has not been initialized
このメッセージが表示される場合、特定のルールがAIを利用している場合、期待される結果が返されないことがあります。影響を受けるルールには、カラーハイコントラスト、フォーカステキスト、ネストされた要素名が含まれます。(#841)
MAUI: Edit Text Nameルール
MAUIアプリアーキテクチャーがAndroidエコシステムでレンダリングされる際の制限のため、Edit Text NameルールはSDKバージョン5.5.0以降で失敗が疑われる場合にダッシュボードで「レビューが必要」と表示されます。この場合、正しい動作を手動で確認してください。
ネイティブAndroid: カスタムダイアログ/モーダル
ネイティブコントロールを拡張しないカスタムダイアログやモーダルを実装している場合、モーダルの背後にあるビューの結果を取得することがあります。この場合、カスタムモーダルやダイアログに対してツールを実行せず、手動で確認して支援技術での動作を確認することをお勧めします。
Webダッシュボード
スクリーンショットが欠落している
スキャン詳細ページでスクリーンショットがない場合、アプリがスクリーンショットの撮影を防いでいる可能性があります。多くの場合、これは本番アプリケーションのセキュリティ上の理由です。axe DevTools Mobileダッシュボードでの完全な機能を許可するためには、テストビルドでこの要件を削除することを検討してください。
一部のAndroidスキャン名が未整形
画面タイトルにデフォルト設定された一部のAndroidスキャン名は、バンドル識別子を含むフルクラス名として表示されます。今後のリリースでこれが解決され、画面タイトルがより読みやすい名前に整形されるようになります。回避策として、スキャン名をダッシュボードやフレームワークから設定できます。(#1643)
