Axe DevTools Mobile 2025年7月9日リリースノート
2025年7月9日
新機能のご紹介
Axe DevTools Mobile ダッシュボードにおけるナビゲーションのユーザー体験が更新され、Axeプラットフォームの異なる領域間をより簡単に移動できるようになりました。ダッシュボードの左上にあるAxeロゴをクリックして、Axe Reportsなど他のAxe製品に移動できます。
既知の問題
以下の問題のいずれかが発生している場合は、helpdesk@deque.comまたはsupport.deque.comまでご連絡ください。問題が解決した際、または記載されていない回避策が確認された際にご通知いたします。
- Axe DevTools Mobileの自動テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリケーションで実行されます。ご使用の技術スタックに対するアクセシビリティテストソリューションについては、Dequeの担当者にお問い合わせください。
- 一部の結果をWebビューやレンダリングされたPDFから得ることができますが、最も包括的なウェブアクセシビリティテストを行うためには、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プロジェクトにアップデートしてください。
Analyzerプロジェクトのエラー & バンドルIDによるテスト 2.8.1
バンドル識別子によるアプリケーションのテスト機能がバージョン2.8.1で壊れ、「テスト構成を介して指定されたターゲットアプリケーションパスがありません」というタイトルのエラーが発生しました。エラーを解決するには、2.8.2または最新バージョンにアップデートしてください。 最新のiOS Analyzerプロジェクトにアップデートしてください。
「AxeResultをシリアル化できませんでした」エラー Analyzerプロジェクトv1.2.0 & SDK v2.12.3
このバージョンのアナライザーおよびSDKで一部のアプリケーションをスキャンすると、「AxeResultをシリアル化できませんでした」というエラーが発生します。エラーを解決するには、最新バージョンにアップデートしてください。 最新のiOS Analyzerプロジェクトにアップデートしてください。最新のiOS SDKにアップデートしてください。
偽陽性: SwiftUI & クロスプラットフォームアプリでのLabelInNameとLabelAtFront
一部の画面では、#1622の不正なassociatedTextプロパティが見つかったため、LabelInNameおよびLabelAtFrontで偽陽性が報告される可能性があります。
iOS 15 Proシミュレーターで動作しないDynamic Typeサポートルール
iPhone 15 Proシミュレーターに影響を与え、Dynamic Typeサポートルールが実行されない問題があります。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ライブラリが自動でインポートされるはずですが、場合によっては自動インポートが行われず、ログキャットに以下のエラーが表示されます。
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 App: フローティングアクションボタンが消える
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
このメッセージが表示された場合、そのルールが人工知能を使用している場合、一部のルール結果は予想通りに返されないことがあります。影響を受けるルールには、カラーコントラスト、フォーカステキスト、およびネストされた要素名が含まれます。(#841)
MAUI: Edit Text Nameルール
AndroidエコシステムでのMAUIアプリアーキテクチャのレンダリングの制限により、SDKバージョン5.5.0以降で障害が疑われる場合、Edit Text Nameルールはダッシュボードで確認が必要になるとして表示されます。この場合、正しい動作を手動で確認してください。
ネイティブAndroid: カスタムダイアログ / モーダル
ネイティブコントロールを拡張していないカスタムダイアログやモーダルを実装する場合、モーダルの背後のビューでも結果が表示されることがあります。この場合、これらのカスタムモーダルやダイアログに対してツールを実行せず、代わりに手動で確認しアクセシビリティを達成したいと考える支援技術に適切に動作することを確認してください。
Webダッシュボード
スクリーンショットがない場合
スキャン詳細ページからスクリーンショットが欠落している場合、アプリがスクリーンショットの撮影を妨げている可能性があります。これは通常、製品アプリケーションにおけるセキュリティ上の理由です。Axe DevTools Mobileダッシュボードの完全な機能を利用するために、テストビルドではこの要件を削除することを検討してください。
一部のAndroidスキャン名が整形されていない
画面タイトルにデフォルト設定されている一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。今後のリリースでは、スクリーンタイトルがより読みやすい名前として整形されるように解決されます。回避策として、ダッシュボードまたはフレームワークからスキャン名を設定できます。(#1643)
