Axe DevTools Mobile 2026年6月17日リリースノート
2026年6月17日
コンポーネントのバージョン
iOS
- iOSアナライザーデスクトップアプリ (axe-devtools-mobile-desktop-app v1.3.0)
更新方法: iOSアナライザー
新機能
Axe DevTools Mobile Analyzerのガイド付きセットアップでは、スキャン前に問題をキャッチします。起動時に、アプリはテストの準備が整っているか確認し、不足しているものを追加するよう促します。Apple IDがサインインされていない場合や、Xcodeが正しくインストールされていない、ライセンスされていない、または開発者アカウントが構成されていない場合、アプリは明確な説明を提供し、進行する前に問題を解決できるようにします。
アプリ内からあなたのApple開発者チームを選択して、Xcodeプロジェクトの署名を自動化し、Xcodeを開く必要がありません。チームが保存されると、スキャンするたびにアプリが署名を自動的に処理します。
デベロッパーモードが有効でない物理デバイスでテストする際、アプリは有効化の手順を案内し、有効化されると自動的に続行します。
カスタムバックエンドサーバーに接続する際、URLが事前に検証されるようになりました。
修正
- USBで接続された物理iOSデバイスが時々検出されない問題を修正しました。アプリは自動的に接続トンネルを確立するため、デバイスを接続する前にXcodeを開く必要がなくなりました。
- 失敗した接続を自動的に再試行することにより、ネットワークリクエストの信頼性を向上させました。
既知の問題
以下の問題に直面している場合は、以下の手段でご連絡ください。 helpdesk@deque.com または support.deque.com。問題が解決された際や掲載されていない回避策が見つかった際はお知らせいたします。
- Axe DevTools Mobileの自動テストは、ネイティブiOS、ネイティブAndroid、そしてReact Nativeアプリケーションで実行されます。技術スタックに対するアクセシビリティテストソリューションについては、デクの担当者にお問い合わせください。
- ウェブビューやレンダリングされた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で追跡されています。
小さな画面でのグラデーション背景に対する色コントラストルールの誤検知
より小さい画面サイズや文字サイズでアクセシビリティチェックを行うと、色コントラストルールがグラデーション背景に対して誤って警告を出す場合があります。そのような場合、前景色を判断できず、代わりに背景色同士を比較してしまい、結果として失敗になります。
この問題を回避するには、大型のデバイスでアクセシビリティチェックを実行することをお試しください。または、テスト中にこれらのビューに対するルールを無視し、色コントラストを手動で確認することを検討してください。
XCTestからの不正確な isVisible プロパティ
AppleのアクセシビリティAPIは、WKWebView内のウェブコンテンツを「isVisible」と誤って報告することがあります。これは、アクセシビリティシステムが、WKWebViewコンテナ自体が可視であるかどうかをチェックするためであり、実際にそのウェブコンテンツが遮られておらずユーザーに認識可能かどうかを確認していないためです。
ステッパーに関するiOS 26のアクセシビリティバグ
iOS 26には、デフォルトのステッパーボタンがAssistive Technologyによって「消灯」と知らせるべきだということを発表しないアクセシビリティバグがあります。その結果、iOSのルールは、無効になったステッパーボタンでも有効として認識されます。Appleにバグレポートが提出されていますが、これが解決されるまで、以下のルールは無効になったステッパーボタンに対する結果を報告する可能性があります: 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 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 をネイティブのスクリーンタイトルプロパティにマッピングしません。 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テキスト検出の実行エラー
ML Kitテキスト検出は、結果の正確性を確保するために多くのaxe DevTools Mobileルールで必要です。ML Kitライブラリはaxe DevTools Mobileを自動化されたEspressoまたはUIAutomatorテストで参照する際に自動的にインポートされるべきですが、場合によっては自動インポートが行われず、次のエラーが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レベルではローカル保存に問題を引き起こします。
ハイブリッドアプリおよびクロスプラットフォームアプリでのスクロール検出
一部のハイブリッドアプリやクロスプラットフォームアプリでは、スクロールビュー内の項目が画面外に部分的に出ると予期しない結果が返されることがあります。アクセシビリティをテストする際は、スキャンを実行する前に要素が完全に画面に表示されていることを確認してください。
アナライザーアプリ:浮動アクションボタンが消える
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
ビルドをミニファイ化すると、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を使用し続け、`Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` または `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?` のようなエラーに遭遇した場合は、次を参照してください: Compose setTestTag API。
MAUI: 編集テキスト名ルール
MAUIアプリアーキテクチャの制限のため、Androidエコシステムでのレンダリングでは、編集テキスト名ルールがSDKバージョン5.5.0以降で失敗が疑われる場合にはダッシュボードで「レビューが必要」として表示されます。このケースでは手動での正しい動作の確認をしてください。
ネイティブAndroid: カスタムダイアログ/モーダル
ネイティブのコントロールを拡張しないカスタムダイアログやモーダルを実装する場合、モーダルの背後にあるビューの結果が得られることがあります。この場合、これらのカスタムモーダルやダイアログに対してツールを実行せず、手動でチェックすることで支援技術が意図したとおりに動作することを確認することをお勧めします。
Webダッシュボード
スクリーンショットがない
スキャン詳細ページにスクリーンショットがない場合、アプリがスクリーンショット撮影を防いでいる可能性があります。これは、通常、製品版アプリケーションでのセキュリティ理由によるものです。テストビルドではこの要件を除外し、axe DevToolsモバイルダッシュボードの完全な機能を利用できるようにすることを検討してください。
一部のAndroidスキャン名がフォーマットされていない
一部のAndroidスキャン名は、画面タイトルにデフォルト設定されることがあり、バンドル識別子を含むフルクラス名として表示されます。今後のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。回避策としては、ダッシュボードまたはフレームワークからスキャン名を設定することができます。(#1643)
