Axe DevTools Mobile 2026年6月30日リリースノート

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

2026年6月30日

Not for use with personal data

コンポーネントバージョン

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 PluginAndroid Analyzer

新機能

iOSの新ルール: 切り取られたテキスト

Dequeは、実際のアクセシビリティ問題を正確に検出するためのルールを提供・最適化することに継続的に取り組んでいます。iOS向けの最新ルールでは、コンテンツがユーザーの好みの文字サイズに関わらず表示され続けることを保証します。このルールについて詳しくはこちら:切り取られたテキスト

新しいAPI

iOSとAndroidの両方でターゲットテストを実行するときに次のAPIを使用できます。

  • テスト実行ごとにgenerateHtmlReportAndSummaryを呼び出すことで、自給自足型のHTMLレポートが生成され、デバイスにローカル保存されます。
  • startScanSessionはテストセッションを開始し、Axe Developer Hubに接続します。結果はそこで公開されます。startSessionstartScanSessionに取って代わられたため、廃止されました。

結果の出力パスの設定可能

AndroidでのAuto ScanおよびTargeted TestingのaxeHtmlReportPathを指定することができるようになりました。デフォルトでは、結果はbuild/reports/AxeDevToolsMobileResultsに保存されます。Auto Scanを使用する場合、結果は自動的にこの場所に送信されます。Targeted Testingを実行する場合、generateHtmlReportAndSummary APIを使用してレポートを手動で作成すると、結果はここに保存されます。

同様に、iOS Auto ScanはHTMLレポートとサマリー.txtのユーザー設定可能な出力ディレクトリをサポートするようになりました。以前は出力場所が~/AxeDevToolsMobileResultsに固定されていました。

修正点

iOS

  • 物理デバイスでの横向きスクリーンショットに関する問題を修正
  • SwiftUIでフルスクリーンスキャンが部分的に誤ってマークされなくなりました
  • 自動スキャンのパフォーマンスが向上しました
  • 色のコントラストやScrollViewルールの精度が向上しました

更新

iOS

  • Auto Scan JSON出力はAxeDevToolsMobileResults/axe-test-dataに統合されました
  • axeProjectIdはAuto Scanのためにaxe_config.jsonで必要になりました

廃止と削除

iOS

  • 廃止されたlogin(withUsername:andPassword:toServer:)認証フローが削除されました
  • 目標テストによるDeveloper Hubへの結果投稿のためのstartSession(apiKey: String, projectId: String, serverUrl: String)メソッドは廃止され、その代わりにstartScanSession(apiKey: String, projectId: String, axeAccountUrl: String)が設定されました
  • Auto ScanのaxeServerUrl設定プロパティは廃止され、その代わりとしてaxeAccountUrlが設定されました

Android

  • 廃止されたloginWithUsername(username: String, password: String, serverConfig: String)認証フローが削除されました
  • 目標テストによるDeveloper Hubへの結果投稿のためのstartSession(apiKey: String, projectId: String, serverUrl: String)メソッドは廃止され、その代わりにstartScanSession(apiKey: String, projectId: String, axeAccountUrl: String)が設定されました
  • Auto ScanのaxeServerUrl設定プロパティは廃止され、その代わりとしてaxeAccountUrlが設定されました

既知の問題

以下の問題のいずれかが発生している場合は、helpdesk@deque.comまたはsupport.deque.comにご連絡ください。問題が解決次第、またはリストにない解決策を特定した場合にお知らせいたします。

important
  • Axe DevTools Mobileの自動テストは、iOSネイティブ、Androidネイティブ、React Nativeアプリケーションで実行されます。技術スタックに関するアクセシビリティテストソリューションについては、Dequeの担当者にお問い合わせください。
  • Webビューやレンダリングされた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()]
])

// もしくは、Color Contrast をグローバルに無視する axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())

ルールの無視について学ぶ。

Flutterアプリにおけるスクリーンタイトルの誤検知

Flutterは AppBar.title をネイティブスクリーンタイトルプロパティにマッピングしていません - UIViewController.title、説明的なタイトルがあるかどうかに関わらず、すべてのFlutter画面でスクリーンタイトルルールが失敗します。

これは、 flutter/flutter#185894を参照してください。

小さなスクリーンでのグラデーション背景における色のコントラストルールの偽陽性

小さい画面サイズや小さいフォントサイズでアクセシビリティチェックを行う場合、色のコントラストルールはグラデーション背景に対して偽陽性を報告する場合があります。このような場合、前景色を特定できず、代わりに背景色同士を比較し、失敗となる可能性があります。

この問題を回避するには、より大きなデバイスでアクセシビリティチェックを試みてください。または、テストでルールを無視し、これらのビューに対して色のコントラストを手動で確認することもできます。

XCTestからの不正確な isVisible プロパティ

AppleのアクセシビリティAPIは、WKWebView内のWebコンテンツを誤って「isVisible」と報告することがあります。これは、WKWebView自身が視覚的に見えているかどうかをチェックしているためです。そのため、そのWebコンテンツがユーザーに対して実際に視認可能かどうかは考慮されません。

iOS 26でのステッパーのアクセシビリティバグ

iOS 26には、デフォルトのステッパーボタンが「無効」とアシスティブテクノロジーによってアナウンスしないアクセシビリティバグがあります。その結果、このバグが解決されるまで、iOSルールでは無効なステッパーボタンに対しても有効と見なします。以下のルールは、無効なステッパーボタン上での結果を報告するかもしれません: AssociatedTextInaccessibleAction、および 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を参照してください。

発表されているテキスト検出の誤検知

一部の場合、支援技術は 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のテキスト検出実行中のエラー

ML Kitのテキスト検出は、結果の精度を保証するためにAxe DevTools Mobileの多くのルールで必要とされます。ML Kitライブラリは、EspressoやUIAutomatorテストでAxe DevTools Mobileを参照すると自動的にインポートされるはずですが、場合によっては自動インポートが行われず、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 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アプリでのスクリーンショットの有効化方法

がtrueに設定されている場合のクラッシュ minifiedEnabled にはtrueが設定されている

ビルドを縮小する場合、Axe DevToolsライブラリにログインしようとすると、アダプタが見つからないと報告されるエラーログでクラッシュが発生します。Axe DevToolsを実装したデバッグビルドではminifyを無効にしてください。(#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)