Axe DevTools Mobile 2026年6月30日リリースノート
2026年6月30日
コンポーネントバージョン
iOS
- iOS SDK (axeDevToolsXCUI v4.0.1)
アップデート方法: iOS SDK
Android
- Android SDK (axe-devtools-android v9.0.0)
- Android Gradle Plugin (axe-devtools-android-plugin v1.1.0)
- Android Analyzer (axe Accessibility Analyzer v3.0.0)
アップデート方法: Android Gradle Plugin、 Android Analyzer
新機能
iOSの新ルール: 切り取られたテキスト
Dequeは実際のアクセシビリティの問題を正確に検出するルールを提供し、最適化することに継続的に取り組んでいます。iOS用の最新ルールは、ユーザーの好みのテキストサイズに関係なく、コンテンツが表示されることを保証します。このルールについて詳しくは: 切り取られたテキスト。
新しいAPI
iOSとAndroidの両方でターゲットテストを実行するときに次のAPIを使用できます。
- をテストの実行ごとに1回呼び出すと、自己完結型のHTMLレポートが生成され、デバイスにローカルに保存されます。
generateHtmlReportAndSummaryを呼び出すとテストセッションが開始され、結果がAxe Developer Hubに投稿されます。 startScanSessionはstartSessionの代わりに廃止されましたstartScanSession。
結果の出力パスの設定可能
Androidでの自動スキャンとターゲットテストの両方に対して、 axeHtmlReportPath を指定できます。デフォルトでは、結果は build/reports/AxeDevToolsMobileResultsに保存されます。自動スキャンを使用すると、結果はこの場所に自動的に送信されます。ターゲットテストを実行する際、 generateHtmlReportAndSummary APIを使用して手動でレポートを作成する際に結果はここに保存されます。
同様に、iOS自動スキャンもユーザー設定可能な出力ディレクトリをサポートし、HTMLレポートとサマリー .txt。以前の出力場所は ~/AxeDevToolsMobileResultsにハードコードされていました。
修正点
iOS
- 物理デバイスでの横向きスクリーンショットに関する問題を修正
- SwiftUIでフルスクリーンスキャンが部分的に誤ってマークされなくなりました
- 自動スキャンのパフォーマンスが向上しました
- 色のコントラストやScrollViewルールの精度が向上しました
更新
iOS
- 自動スキャンJSON出力は
AxeDevToolsMobileResults/axe-test-data axeProjectIdで統合されるようになりましたaxe_config.json。これは、自動スキャンで
廃止と削除
iOS
- 非推奨の
login(withUsername:andPassword:toServer:)認証フローが削除されました - その
startSession(apiKey: String, projectId: String, serverUrl: String)結果をDeveloper Hubに投稿するためのターゲットテストを伴うメソッドは非推奨となり、startScanSession(apiKey: String, projectId: String, axeAccountUrl: String)がその代わりに設定されました - その
axeServerUrlAuto Scanの設定プロパティは非推奨となり、axeAccountUrlがその代わりに設定されました
Android
- 非推奨の
loginWithUsername(username: String, password: String, serverConfig: String)認証フローが削除されました - その
startSession(apiKey: String, projectId: String, serverUrl: String)結果をDeveloper Hubに投稿するためのターゲットテストを伴うメソッドは非推奨となり、startScanSession(apiKey: String, projectId: String, axeAccountUrl: String)がその代わりに設定されました - その
axeServerUrlAuto Scanの設定プロパティは非推奨となり、axeAccountUrlがその代わりに設定されました
既知の問題
以下の問題が発生している場合は、 helpdesk@deque.com または support.deque.comにご連絡ください。それが解決された際、または記載されていない回避策が特定された場合には、私たちから通知します。
- Axe DevTools Mobileの自動テストは、iOSネイティブ、Androidネイティブ、React Nativeアプリケーションで実行されます。技術スタックに関するアクセシビリティテストソリューションについては、Dequeの担当者にお問い合わせください。
- Webビューや表示されたPDFからいくつかの結果を得ることができるかもしれませんが、Webのためのaxe DevToolsや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で追跡されています。
小さなスクリーンでのグラデーション背景における色のコントラストルールの偽陽性
小さい画面サイズや小さいフォントサイズでアクセシビリティチェックを行う場合、色のコントラストルールはグラデーション背景に対して偽陽性を報告する場合があります。このような場合、前景色を特定できず、代わりに背景色同士を比較し、失敗となる可能性があります。
この問題を回避するには、より大きなデバイスでアクセシビリティチェックを試みてください。または、テストでルールを無視し、これらのビューに対して色のコントラストを手動で確認することもできます。
XCTestからの不正確な isVisible プロパティ
AppleのアクセシビリティAPIは、WKWebView内のWebコンテンツを誤って「isVisible」と報告することがあります。これは、WKWebView自身が視覚的に見えているかどうかをチェックしているためです。そのため、そのWebコンテンツがユーザーに対して実際に視認可能かどうかは考慮されません。
iOS 26でのステッパーのアクセシビリティバグ
iOS 26には、デフォルトのステッパーボタンが「無効」とアシスティブテクノロジーによってアナウンスしないアクセシビリティバグがあります。その結果、このバグが解決されるまで、iOSルールでは無効なステッパーボタンに対しても有効と見なします。以下のルールは、無効なステッパーボタン上での結果を報告するかもしれません: AssociatedText、 InaccessibleAction、および ColorContrast。
Appleがこのバグを修正するまでの解決策は、[ルールを無視する](ios-ignore-rule)ことです。デフォルトのステッパーボタンには「Decrement」と「Increment」という識別子があり、必要に応じて識別子で無視することができます。
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)
Supports Dynamic TypeルールがiOS 15 Proシミュレーターで機能しない
iPhone 15 Proシミュレーターに影響を与える問題があり、Supports Dynamic Typeルールを実行できません。Supports Dynamic Typeルールにオプトインしている場合、iPhone 15 Proシミュレーターを使用してテストすることはできません。Appleにバグが報告されています。
ネストされたコントロールに対するルール
ルールの改善を検討しているとき、XCTestではネストされたコントロールがアクセシビリティツリーに返されないことがわかりました。この問題はAppleに報告されています。 (#1110)
UIKitアプリでのImageView名ルールの結果のレビューが必要
UIKitアプリでは、`accessibilityLabel`を持たない画像は、補助技術で焦点を当てることができません。
私たちがAppleから焦点可能性を確認するために使用するプロパティは、画像に`accessibilityIdentifier`が設定されている場合、不正確である可能性があります。この予期しない動作のため、UIKitアプリでのImageView名の問題はレビューが必要と報告されます。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文字以下を無視する場合、さまざまな言語の多くの1語のボタン(例:「OK」、「No」、「Sí」など)を意図せずに無視することがあります。これらの問題を避けるために、アイコンで表現したい単語から目的の文字を取得し、それらの文字を画像の一部として生成する必要があります。これにより、`FocusableText`はこれらのビューで実行されなくなります。
Flutterアプリにおけるスクリーンタイトルの誤検知
Flutterは AppBar.title をネイティブスクリーンタイトルプロパティにマッピングしていません - Activity.setTitle、説明的なタイトルがあるかどうかに関わらず、すべてのFlutter画面でスクリーンタイトルルールが失敗します。
これは、 flutter/flutter#185894で追跡されている、既知のFlutterプラットフォーム制限です。
発表されているテキスト検出の誤検知
一部の場合、支援技術は AccessibilityEvent Androidシステムからの説明を頼りに、他に発表できる内容がない場合にユーザーに情報を発表します。 AccessibilityEventはユーザーのアクションによってトリガーされるため、この情報が提供されていなければ正確な説明にアクセスできません。
この問題を避けるには、すべての関連ビュープをアクセシビリティに重要としてマークしてください。これにより、Talkbackはビューから情報にアクセスでき、私たちのツールがそれを検出できます。
テキストと背景色が同じ場合、色のコントラストルールは実行されません
私たちの色のコントラストルールは、テキストを検出するために機械学習に依存しており、アプリケーションのユーザーにテキストが見えることを保証します。ビュー内のテキストが背景と同じ色の場合、機械学習アルゴリズムはテキストが存在するかどうかを検出できないため、このビューでは色のコントラストルールは実行されません。
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 ファイルに、次の内容を依存関係の下に追加してください。
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 Implementation
タッチターゲット間隔と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レベルでローカルに保存する際に問題を引き起こす可能性があります。
ハイブリッドアプリとクロスプラットフォームアプリでのスクロール検出
一部のハイブリッドやクロスプラットフォームアプリでは、スクロールビュー内の項目が画面外にはみ出している場合に予期しない結果を返すことがあります。アクセシビリティのテストを行うには、スキャンを行う前に要素が完全に画面上に表示されていることを確認してください。
Analyzerアプリ: 浮動アクションボタンが消える
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アプリでのスクリーンショットの有効化方法
がtrueに設定されている場合のクラッシュ 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を使用し続け、次のようなエラーに遭遇する場合:「'1'つのノードが見つかるべきなのに'2'つのノードが条件を満たしています:(isRoot)」、「ビューが初期化されていません、AxeDevToolsCompose.setComposeTestRule()を呼び出しましたか?」、詳細については Compose setTestTag APIを参照してください。
MAUI: Edit Text Name規則
MAUIアプリケーションアーキテクチャがAndroidエコシステムでレンダリングされる際の制限のため、SDKバージョン5.5.0以降で失敗が疑われると、Edit Text Nameルールがダッシュボードでレビューが必要と表示されます。この場合、正しい動作を手動で確認してください。
ネイティブAndroid: カスタムダイアログ/モーダル
ネイティブコントロールを拡張しないカスタムダイアログやモーダルを実装すると、モーダルの背後にあるビューの結果を得ることがあります。これに該当する場合、これらのカスタムモーダルやダイアログに対して我々のツールを実行せず、手動でチェックして、支援技術で意図した通りに動作することを確認してください。
ウェブダッシュボード
スクリーンショットが表示されない
スキャン詳細ページにスクリーンショットが表示されない場合、アプリがスクリーンショットの撮影を防止している可能性があります。これは通常、プロダクションアプリケーションのセキュリティ上の理由からです。axe DevTools Mobile Dashboardの完全な機能を利用するために、この要件をテストビルドでは解除することを検討してください。
一部のAndroidスキャン名がフォーマットされていない
画面タイトルにデフォルトで設定された一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。今後のリリースで、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。それまでの間、ダッシュボードやフレームワークからスキャン名を設定することができます。(#1643)
