Axe DevTools Mobile 2025年5月21日リリースノート
2025年5月21日
コンポーネントのバージョン
iOS
- iOS SDK (axeDevToolsXCUI v2.15.0)
- iOS アナライザー (axe-devtools-mobile-analyzer v1.4.11)
- iOS Appium ドライバー (axe-appium-xcuitest-driver v1.4.0)
更新方法: iOS SDK、iOS アナライザー、iOS Appium ドライバー
Android
- Android SDK (axe-devtools-android v6.3.0)
- Android アナライザー (Axe アクセシビリティ アナライザー v1.13.0)
- Android Appium ドライバー (axe-appium-uiautomator2-driver v1.4.1)
更新方法 Android-SDK、Android アナライザー、Android Appium ドライバー
新機能
ルールソースの整合性
アクセシビリティルールを参照する際、Webコンテンツアクセシビリティガイドライン (WCAG) の成功基準に直接整合するか、WCAGのノートに定義されたベストプラクティス、DequeのA11yエキスパートからのアドバイス、またはAppleやGoogleの推奨によって定義されていることがわかります。
Android SDKとアナライザーアプリ
画面の向きのテスト方法を、新しく改善された方法で実装しました。
デフォルトで無効化された実験的ルール
Axe DevTools for Web の動作に合わせて、Axe DevTools Mobile ダッシュボードでは、実験的なルールをデフォルトで無効にしました。実験的ルールについて詳細をご確認の上、必要に応じて有効化してください。
修正
iOS
- ルールはOS提供のキーボード内のコントロールに関する問題を提起しなくなりました。
- ラベルの名前とアクティブコントロールルールの精度が向上しました。
Android
- AccessibilityNodeInfoを収集する際の例外のエラーハンドリングを改善しました。
- バージョン不整合を減らすためにMLKitの実装を調整しました。
- EditTextの名前と色のコントラストルールの精度が向上しました。
既知の問題
以下の問題が発生している場合は、helpdesk@deque.comまたはsupport.deque.comにご連絡ください。問題が解決した際、またはリストされていない回避策が特定された際にお知らせいたします。
- Axe DevTools Mobile の自動テストは、ネイティブ iOS、ネイティブ Android、および React Native アプリケーションで実行されます。お使いの技術スタックに対するアクセシビリティテストソリューションについては、Deque の担当者にお問い合わせください。
- Web ビューやレンダリングされた PDF からいくつかの結果が得られる場合もありますが、Web の完全なアクセシビリティテストには Axe DevTools for Web または Axe Monitor を使用することを強くお勧めします。
iOS
Color Contrast rule does not run when text and background colors are the same
Our Color Contrast rule depends on Machine Learning to detect text, which ensures that the text being scanned is visible to users of your application. In cases where the text contained in a view is the same color as the background, our Machine Learning algorithm is unable to detect if any text is present, so the Color Contrast rule does not run on this view.
iOS Analyzer 1.4.7で物理デバイス上でのスキャンが実行できない
iOS Analyzer 1.4.7の設定により、スキャンが実行されず「テスト失敗」のメッセージが返されます。物理デバイスでスキャンを実行するには、 最新のiOS Analyzerプロジェクトに更新してください。
アナライザープロジェクトでのエラー&バンドルIDによるテストでのエラー in 2.8.1
バンドル識別子でアプリケーションをテストする機能がバージョン2.8.1で壊れており、「テスト設定を通じてターゲットアプリケーションパスが指定されていない」というエラーが発生しました。エラーを解決するには、2.8.2または最新バージョンに更新してください。 iOS Analyzerプロジェクト内で最新に更新してください。
アナライザープロジェクトv1.2.0&SDK v2.12.3での“AxeResultをシリアライズできませんでした”エラー
このバージョンのアナライザーとSDKを使用して一部のアプリケーションをスキャンすると、「AxeResultをシリアライズできませんでした」というエラーが発生します。エラーを解決するには、最新バージョンに更新してください。 最新のiOS Analyzerプロジェクトに更新してください。最新のiOS SDKに更新してください。
誤検知: SwiftUI&クロスプラットフォームアプリのLabelInNameおよびLabelAtFront
一部の画面では、関連するテキストプロパティが誤って見つかったため、LabelInNameおよびLabelAtFrontで誤検知が報告されることがあります (#1622)
Supports Dynamic TypeルールがiOS 15 Proシミュレータで機能しない
iPhone 15 Proシミュレータに影響する問題があり、Supports Dynamic Typeルールが実行されません。Supports Dynamic Typeルールにオプトインしている場合、iPhone 15 Proシミュレータを使用してテストすることはできません。Appleにバグが報告されています。
入れ子のコントロールに対するルール
ルールの改善を検討している際に、XCTestで入れ子になったコントロールがアクセシビリティツリーに返されないことが判明しました。Appleにバグが報告されています。 (#1110)
UIKitアプリでのImageView Nameルールのレビューが必要
UIKitアプリでは、`accessibilityLabel`がない画像はデフォルトで支援技術でフォーカスされません。
画像に`accessibilityIdentifier`が設定されている場合、Appleから提供されるフォーカス性をチェックするためのプロパティが不正確な可能性があります。この予期しない動作のため、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 on 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'
Touch Target SpacingとJetpack Compose
Touch Target Spacingルールは現在、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.
ハイブリッドアプリおよびクロスプラットフォームアプリでのスクロール検出
一部のハイブリッドアプリおよびクロスプラットフォームアプリでは、スクロールビュー内の項目が画面の一部外にある時に予期しない結果が返されることがあります。アクセシビリティのために要素をテストするには、スキャンを実行する前にそれが完全に画面上にあることを確認してください。
アナライザーアプリ: フローティングアクションボタンが消える
API 31 (Android 12) から導入された機能として、非システムオーバーレイを隠すことが可能です。Axe アナライザーアプリを利用するには、この設定がオンになっていないことを確認してください。この機能をセキュリティ強化のために活用している場合、内部テストビルドではこの設定をオフにしてテストデータを安全に利用し、セキュリティの懸念を排除することをお勧めします。 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 の全機能を解除するには、スクリーンショットが有効になっていることを確認してください。セキュリティ上の懸念を避けるために、デバッグやテストバージョンのアプリでモックデータを使用してスクリーンショットを有効にすることをお勧めします。⟦0⟧のガイドをご確認ください。 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を使い続け、『(isRoot)を満たすノードが正確に「1」個いるはずのところ、「2」個見つかった』や『ビューが初期化されていない、AxeDevToolsCompose.setComposeTestRule()を呼びましたか?』というエラーに遭遇した場合は、 Compose setTestTag APIを参照してください。
ログメッセージ:MlKitContext has not been initialized
このメッセージが表示される場合、そのルールが人工知能を利用しているとき、いくつかの結果が予想通りに戻らないことがあります。影響を受けるルールには、色のコントラスト、フォーカス可能なテキスト、およびネストされた要素名が含まれます。(#841)
MAUI: Edit Text Name ルール
AndroidエコシステムでのMAUIアプリアーキテクチャの制限により、SDKバージョン5.5.0以降で失敗が疑われた場合、Edit Text Nameルールはダッシュボード上でレビューが必要と表示されます。この場合、正しい動作を手動で確認してください。
ネイティブAndroid: カスタムダイアログ/モーダル
ネイティブコントロールを拡張しないカスタムダイアログやモーダルを実装している場合、モーダルの背後にあるビューの結果が表示されることがあります。この場合、当社のツールをこれらのカスタムモーダルやダイアログに対して実行しないことをお勧めし、かわりに補助技術による期待通りの動作を手動で確認してください。
ウェブダッシュボード
スクリーンショットの欠如
スキャン詳細ページにスクリーンショットがない場合、アプリがスクリーンショットの取得を妨げている可能性があります。通常これは製品版アプリケーションのセキュリティ上の理由です。Axe DevTools Mobile ダッシュボードでの完全な機能を許可するために、テストビルドではこの要件を削除することを検討してください。
一部のAndroidスキャン名がフォーマットされていない
画面タイトルとしてデフォルト設定されている一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。将来のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。回避策として、ダッシュボードやフレームワークからスキャン名を設定できます。(#1643)
