Axe DevTools Mobile 2026年7月20日リリースノート

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年7月20日

Not for use with personal data

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

Maestro

  • Maestro用Axe DevTools Mobile(axe-devtools-mobile-maestro v1.0.0)
    • (Maestro v2.6.0からフォーク)

新機能

Maestro用Axe DevTools Mobile

Maestro用Axe DevTools Mobileは、Axe DevTools for Mobile SDKによって動作し、Maestroに組み込みのアクセシビリティスキャンを提供します。これを使用してUIテストフローを実行すると、2つのコマンドaxeStartScanSessionaxeScanでYAML内にある自動アクセシビリティチェックを簡単に呼び出せます。

既知の問題

以下の問題が発生した場合は、helpdesk@deque.comまたはsupport.deque.comにご連絡ください。解決した際、または回避策が特定された際にはお知らせいたします。

important
  • Axe DevTools Mobileの自動テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリケーション上で実行されます。ご使用の技術スタックに合わせたアクセシビリティテストソリューションについては、Dequeの担当者にお問い合わせください。
  • WebビューやレンダリングされたPDFからも結果を得られることがありますが、Web向けの包括的なアクセシビリティテストには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#185894で追跡されている既知のFlutterのプラットフォーム制限です。

小画面でのグラデーション背景によるカラ―コントラストルールの誤検出

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

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

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

AppleのアクセシビリティAPIは、WKWebView内のWebコンテンツを「isVisible」と誤って報告するかもしれません。

iOS 26のステッパーに関するアクセシビリティバグ

iOS 26には、デフォルトのステッパーボタンが「dimmed」としてアナウンスされないアクセシビリティバグがあります。このため、これらのボタンは有効でないにもかかわらずiOSルールによって有効と見なされることがあります。Appleにバグ報告が行われていますが、解決されるまで、次のルールが無効なステッパーボタンに結果を報告する可能性があります: AssociatedTextInaccessibleAction、および ColorContrast

Appleがこのバグを修正するまで、「ルールを無視する」ことが解決策となります。デフォルトのステッパーボタンには識別子「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の誤検出

一部の画面では、誤った関連テキストプロパティが見つかることで、LabelInNameとLabelAtFrontに誤検出が報告されることがあります(#1622)

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)

誤検出:スクロールビュー内、名前にラベル、先頭にラベル、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

目に見えるテキストが隠されている場合の先頭ラベルの誤検出

先頭ラベルルールは、要素の目に見えるラベルがアナウンスされたテキストの冒頭に来ているかを確認します。対話型要素の目に見えるテキストに省略形(例:「GB」、「km」)や隠れた/切り取られた識別子が含まれ、アクセシビリティのアナウンスが表現された単語(例:「ギガバイト」、「キロメートル」)で構成されている場合、ルールの失敗が発生することがありますが、これは省略されたまたは切り取られた内容をスクリーンリーダーフレンドリーにするための推奨パターンです。

インタラクティブ要素の目に見えるラベルの最初の部分がスクリーンリーダーのアナウンスの冒頭と一致し、省略された/隠された部分のみが異なる場合、そのフラグ立てられた結果を無視することができます。スクリーンリーダーを使って、アナウンスが意図したとおりに読まれることを確認してください。

フォーカス可能なテキストの潜在的なアクセシビリティの懸念

「連絡先アイコン」などのビューで装飾的なテキストを使用すると、アクセシビリティの問題を引き起こす可能性があります。テキストビューを使用して文字を表示し、目的の文字をベクトルとして生成する代わりに、それをアクセシビリティのために重要ではないと宣言した場合、アクセシビリティ違反が発生したかどうかを確実に判定することはできません。

フォーカス可能なテキストを編集して2文字以下を無視すると、さまざまな言語で「OK」、「No」、「Sí」などの一語のボタンを誤って無視してしまう可能性があります。これらの問題を回避するには、アイコンで表現したい単語から目的の文字を取り、それを画像の一部として生成し、別のテキストビューとしてではなくする必要があります。そうすれば`FocusableText`はこれらのビューで実行されることはありません。

Flutterアプリでのスクリーンタイトルの誤検出

Flutterは AppBar.title ネイティブスクリーンタイトルプロパティにマッピングされておらず、 Activity.setTitleすべてのFlutterの画面でスクリーンタイトルルールが失敗します。説明的なタイトルが存在するかどうかに関わらずです。

これは既知の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 テキスト検出を実行中のエラー

正確な結果を保証するために、Axe DevTools Mobileの多くのルールではML Kit テキスト検出が必要です。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では、ローカルに結果を保存しようとするときに権限エラーが発生する場所があります。このエラーが表示されますが、それでも結果は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レベルでローカル保存時に問題を引き起こすため、API 30のみでコメントアウトしてください。

ハイブリッドアプリとクロスプラットフォームアプリでのスクロール検出

一部のハイブリッドおよびクロスプラットフォームアプリでは、スクロールビュー内の項目が画面外に部分的に表示されていると予期しない結果が返ることがあります。要素のアクセシビリティをテストするには、スキャンを実行する前にそれが完全に画面に表示されていることを確認してください。

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アプリでスクリーンショットを有効にする方法

がtrueに設定されているときのクラッシュ minifiedEnabled

ビルドを縮小化すると、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 APIsは推奨されなくなりました。 レイアウトに依存しない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をご覧ください。

MAUI: テキスト名編集ルール

AndroidエコシステムのMAUIアプリのアーキテクチャの制約により、SDKバージョン5.5.0以上で問題が疑われた場合、ダッシュボード上に「レビューが必要」と表示されます。この場合は正しい動作を手動で確認してください。

ネイティブAndroid: カスタムダイアログ / モーダル

ネイティブコントロールを拡張しないカスタムダイアログやモーダルを実装している場合、モーダルの背後にあるビューの結果を取得することがあります。この場合、これらのカスタムモーダルやダイアログに対してツールを実行せず、手動で確認して、支援技術で望ましい動作をしているか確認することをお勧めします。

ウェブダッシュボード

スクリーンショットがない

スキャン詳細ページにスクリーンショットが表示されない場合、アプリがスクリーンショットの取得を妨げている可能性があります。多くの場合、これは本番アプリケーションでのセキュリティの理由によります。Axe DevTools Mobileダッシュボードの全機能を利用するために、テストビルドではこの要件を削除することを検討してください。

いくつかのAndroidスキャン名がフォーマットされていない

デフォルトで画面タイトルに設定されているいくつかのAndroidスキャン名は、バンドル識別子を含むフルクラス名として表示されます。将来のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。回避策として、ダッシュボードまたはフレームワークからスキャン名を設定することができます。(#1643)