Axe DevTools Mobile 2026年7月2日リリースノート
2026年7月2日
コンポーネントのバージョン
Appium
iOS
- iOS Appium 2 Driver(axe-appium2-xcuitest-driver v2.5.0)
- (XCUITest v9.10.4からのフォーク)
- iOS Appium 3 Driver(axe-appium3-xcuitest-driver v1.4.0)
- (XCUITest v11.10.0からのフォーク)
更新方法: iOS Appium Driver
Android
- Android Appium 2 Driver(axe-appium2-uiautomator2-driver v2.5.0)
- (UiAutomator2 v4.2.8からのフォーク)
- Android Appium 3 Driver(axe-appium3-uiautomator2-driver v1.4.0)
- (UiAutomator2 v7.6.1からのフォーク)
更新方法: Android Appium Driver
新機能
集約HTMLレポート
各テスト1回追加することで、対象スキャンの自己完結型HTMLレポートを生成し、デバイスからローカルディレクトリに取り込みます - mobile: generateHtmlReportAndSummary 。実装の詳細はこちらでご確認ください: axeHtmlReportPathHTMLレポートと概要の生成 .
非推奨および削除
axeServerUrl 自動スキャンの設定プロパティは廃止され、 axeServiceUrl 対象テストに対しても同様です。 axeAccountURL これら両方のプロパティに代わる設定が行われました。
既知の問題
以下の問題に直面している場合は、こちらにご連絡ください: helpdesk@deque.com または support.deque.com。問題が解決した際、あるいは回避策が見つかった場合にお知らせいたします。
- Axe DevTools Mobileの自動テストは、ネイティブiOS、ネイティブAndroid、React Nativeアプリを対象としています。お客様の技術スタックに応じたアクセシビリティテストソリューションについては、お客様のDeque担当者にお問い合わせください。
- ウェブビューやPDFレンダリングからも結果を得ることはできますが、ウェブ向けに最も包括的なアクセシビリティテストを行うためには、axe DevTools for Webまたはaxe Monitorを使用することを強くお勧めします。
iOS
アイコンのみの要素に対する色コントラストはOCRにより実行される可能性がある
色コントラストルールは、AppleのVisionフレームワーク(光学文字認識、またはOCR)を使用して要素内のテキストを読み取ります。OCRは、矢印や記号などの小さなアイコンのような文字をテキストとして誤認することがあります。その場合、読めるテキストを含まない要素に対して色コントラストルールが実行され、アイコンのみのボタンに結果を出すことがあります。OCRの出力はスキャンごとに一貫性がないため、あるスキャンで色コントラストの結果に現れた要素が、次のスキャンでは「適用不可」と報告される場合があります。これはOCRの既知の特徴であり、ルールのバグではありません。
この問題を回避するには、 ignore APIを使用して、影響を受けた要素の色コントラスト結果を抑制することができます。
// Ignore Color Contrast for a specific element by accessibility identifier
axeDevTools?.configuration.ignore(rulesFor: [
"backButton": [AxeRuleId.ColorContrast.toString()]
])// または、全体的に色コントラストを無視するには axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())
ルールを無視することについて詳しく知る .
Flutterアプリにおけるスクリーンタイトルの誤検出
Flutterは、 AppBar.title をネイティブスクリーンタイトルプロパティにマッピングしません - UIViewController.title、記述的なタイトルが存在するかどうかにかかわらず、すべてのFlutter画面で「スクリーンタイトル」ルールが失敗を引き起こします。
これは、Flutterプラットフォームの既知の制限で、以下で追跡されています。 flutter/flutter#185894。
小さい画面で勾配背景を使用した場合の「色のコントラスト」ルールの誤検出
小さな画面サイズや小さなフォントサイズでアクセシビリティチェックを実行する場合、「色のコントラスト」ルールは勾配背景の誤検出を報告することがあります。このような場合、前景色を特定できず、代わりに背景色同士を比較して失敗することになります。
この問題を回避するには、より大きなデバイスでアクセシビリティチェックを実行してみてください。あるいは、テストでこのルールを無視し、これらのビューの色のコントラストを手動で確認することもできます。
不正確な isVisible XCTestのプロパティ
AppleのアクセシビリティAPIは、WKWebView内のウェブコンテンツを誤って「isVisible」と報告することがあります。ウェブビューがネイティブオーバーレイ(モーダルビューやアラート、その他のネイティブUI要素など)で覆われていてもです。これは、アクセシビリティシステムがWKWebViewコンテナ自体の可視性をチェックし、ウェブコンテンツ自体が実際にユーザーにとって妨げられず認知可能であるかを確認していないために発生します。
iOS 26におけるステッパーのアクセシビリティバグ
iOS 26には、Assistive Technologyによって有効でないことを示す「暗い(dimmed)」と発表されないというステッパーボタンのアクセシビリティバグがあります。そのため、iOSのルールはこれらのボタンを無効である場合でも有効と見なします。Appleにはバグレポートが送信されていますが、この問題が解決されるまで、次のルールは無効なステッパーボタンに結果を報告することがあります: AssociatedText、 InaccessibleAction、および ColorContrast。
Appleがこのバグを修正するまでの解決策は、[ルールを無視する](ios-ignore-rule)ことです。デフォルトのステッパーボタンには「減少」と「増加」という識別子があり、必要に応じて識別子で無視できます。
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.
SwiftUI & クロスプラットフォームアプリでの LabelInName と LabelAtFront の誤検出
いくつかの画面では、間違ったassociatedTextプロパティが発見されたため、LabelInName と LabelAtFront で誤検出が報告されることがあります(#1622)。
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
フォーカス可能なテキストに関する潜在的なアクセシビリティの懸念
「連絡先アイコン」のようなビューに装飾的なテキストを使用する場合、アクセシビリティ問題を引き起こす可能性があります。表示したい文字をベクトルとして生成する代わりにテキストビューを使用して文字を表示し、そのテキストビューをアクセシビリティには重要でないと宣言すると、アクセシビリティ違反が発生しているかどうかを信頼して確認することができなくなります。
フォーカス可能なテキストを編集して2文字以下を無視すると、さまざまな言語(例:「OK」、「No」、「Sí」)で多くの一語のボタンを誤って無視することがあります。これらの問題を避けるために、アイコンで表現したい単語から必要な文字を取得し、別々のテキストビューではなく画像の一部として文字を生成する必要があります。`FocusableText` はこれらのビューでは実行されません。
Flutterアプリのスクリーンタイトル誤検出
Flutterは、ネイティブスクリーンタイトルプロパティにマップしません - AppBar.title 、記述的なタイトルが存在するかどうかにかかわらず、すべてのFlutter画面で「スクリーンタイトル」ルールが失敗を引き起こします。 Activity.setTitleこれは、Flutterプラットフォームの既知の制限で、以下で追跡されています。
flutter/flutter#185894 。宣言されたテキスト検出の誤検出
一部のケースでは、支援技術は
Androidシステムからの説明を利用して、他のアナウンスがない場合に情報をユーザーに伝えるために使用されます。したがって、 AccessibilityEvent がユーザーのアクションによってトリガーされると、この情報が提供されない場合には正しい説明を取得できません。 AccessibilityEventこの問題を回避するには、関連するビューがすべてアクセシビリティに重要とマークされていることを確認してください。これにより、Talkbackがビューから情報にアクセスでき、私たちのツールがそれを検出できます。
To avoid this issue, ensure that all relevant views are marked as important for accessibility. This will allow Talkback to access the information from the view, which our tool can then detect.
テキストと背景色が同じ場合、カラーコントラストルールは実行されません
私たちのカラーコントラストルールは、機械学習に依存してテキストを検出し、アプリケーションのユーザーにテキストが表示されることを保証します。ビュー内に含まれるテキストが背景と同じ色である場合、機械学習アルゴリズムはテキストの存在を検出することができず、このビューではカラーコントラストルールが実行されません。
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テキスト検出が必要です。axe DevTools Mobileを自動化されたEspressoまたはUIAutomatorテストで参照する際に、ML Kitライブラリが自動的にインポートされるはずです。ただし、一部のケースでは自動インポートが行われず、次のようなエラーがlogcatに表示されることがあります:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
この問題を解決するには、ML Kitライブラリを手動でプロジェクトにインポートしてください。アプリケーションの build.gradle ファイルで、依存関係の下に次の内容を追加します:
debugImplementation 'com.google.mlkit:text-recognition:16.0.1'
Find a full working example of the ML Kit library being imported in the Android Mobile SDK Getting Started section, under 実装
タッチターゲットスペーシングと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
// }
}
このコードはAPI 30に対してのみコメントアウトする必要があります。他のAPIレベルでローカルに保存するときに問題を引き起こす可能性があるためです。
ハイブリッドアプリとクロスプラットフォームアプリでのスクロール検出
一部のハイブリッドおよびクロスプラットフォームアプリでは、スクロールビュー内のアイテムが画面外に部分的にあるときに予期しない結果を返すことがあります。アクセシビリティをテストするためには、スキャンを実行する前に要素が完全に画面上に表示されていることを確認してください。
アナライザーアプリ:フローティングアクションボタンが消える
API 31 (Android 12) で導入されたのは、システム以外のオーバーレイを隠す機能です。axe アナライザーアプリを利用するためには、この設定がオフにされていることを確認してください。この機能をセキュリティ向上のために利用している場合、内部テストで使用するビルドでは安全にテストデータを使用し、セキュリティの懸念を除去できるため、オフにしておくことをお勧めします。 Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
axe アクセシビリティアナライザーアプリを利用するために、 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.** { *; }
Compose API 使用時のエラーメッセージ
Compose APIは非推奨となっていますので、 レイアウト非依存API を使用してアップデートを受け取り続けてください。Compose APIを使い続け、「(isRoot)」を満たすノードが「1」と期待されたが「2」が見つかった」や「ビューが初期化されていません。AxeDevToolsCompose.setComposeTestRule()を呼び出しましたか?」に類するエラーが出る場合は、 Compose setTestTag APIをご参照ください。
MAUI: テキスト入力名ルール
MAUIアプリのアーキテクチャがAndroidエコシステムでレンダリングされる際の制限により、テキスト入力名ルールは、SDKバージョン5.5.0以降で障害が疑われる場合、ダッシュボードで「レビューが必要」と表示されます。このケースでは、正しい動作を手動で確認してください。
ネイティブAndroid: カスタムダイアログ / モーダル
ネイティブコントロールを拡張しないカスタムダイアログやモーダルを実装している場合、モーダルの後ろにあるビューの結果が表示されることがあります。この場合、ツールをこれらのカスタムモーダルやダイアログに対して実行せず、手動で確認して支援技術に望まれるように動作することを確認することをお勧めします。
ウェブダッシュボード
スクリーンショットが欠如している
スキャン詳細ページからスクリーンショットが欠けている場合、アプリがスクリーンショットの撮影を妨げている可能性があります。これはしばしば、プロダクションアプリケーションでセキュリティの理由によるものです。テストビルドの完全な機能性を許可するために、この要件を削除することを検討してください。
一部のAndroidスキャン名は書式設定されていません
デフォルトで画面タイトルに設定されている一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。今後のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決される予定です。回避策として、ダッシュボードやフレームワークからスキャン名を設定できます。(#1643)
