Axe DevTools Mobile 2025年2月12日リリースノート
2025年2月12日
コンポーネントバージョン
- Android SDK (axe-devtools-android v6.1.0)
- Android Analyzer(Axe Accessibility Analyzer v1.11.0)
- Android Appium Driver (axe-appium-uiautomator2-driver v1.3.0)
- Axe DevTools Reporter CLI v4.10.0
更新方法: Android SDK、Android Analyzer、Android Appium Driver、Axe DevTools Reporter CLI
新機能
Android Appium Driver
Ignore Rules機能がAndroid Appiumドライバーで利用可能になりました!ご参考に、Android Ignore Rulesドキュメントをご覧ください。なお、Appium AndroidドライバーではIgnore Rulesはすべてのビューでのみ実装可能で、選択ビューやクラス名ではできません。Ignore Rulesの詳細についてはAppiumセットアップドキュメントをご覧ください。iOS Appiumドライバーのサポートも近日中に開始予定です。
Axe Reporter CLI
これからは、モバイルスキャンのJSONファイルからHTMLレポートを生成すると、Accessibility Scoreが総問題数、合格割合、問題の深刻度の合計と共に表示されます。全てのスキャンのスコアを見るか、単一スキャンのスコアを選択して表示することができます。この追加により、Axe DevTools Mobileダッシュボード上のアクセシビリティスコアと一致します。
参考までに、合格率はチェックされた要件の合計に対して成功したアクセシビリティ要件の割合です。アクセシビリティスコアは、スクリーンの総数、問題の数、およびその問題の深刻度に基づいて計算されます。
Android修正
- ネイティブアプリとクロスプラットフォームアプリでより一貫性があり信頼性の高い結果
- Analyzerアプリのアクセシビリティ向上
- すべてのアクセシビリティルールのパフォーマンスと精度を向上させる更新
既知の問題
以下の問題のいずれかが発生している場合は、helpdesk@deque.comまたはsupport.deque.comまでご連絡ください。問題が解決されたか、リストされていない場合の対策が特定された時にお知らせできるようになります。
- Axe DevTools Mobileの自動テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリケーションで実行されます。あなたの技術スタック上でのアクセシビリティテストソリューションについては、Dequeの担当者までご連絡ください。
- ウェブビューやレンダリングされたPDFからいくつかの結果を得ることができるかもしれませんが、ウェブの包括的なアクセシビリティテストには、Axe DevTools for WebまたはAxe Monitorを使用することを強くお勧めします。
iOS
AnalyzerプロジェクトとバンドルIDによるテストでのエラー(2.8.1)
バンドル識別子でアプリケーションをテストする機能はバージョン2.8.1で壊れており、その結果、「No target application path specified via test configuration: ...」というエラーが発生していました。エラーを解決するには、2.8.2または最新バージョンに更新してください。 iOS Analyzerプロジェクト内で最新の状態に更新します。
「Could not Serialize AxeResult」エラー(Analyzerプロジェクト v1.2.0 & SDK v2.12.3)
このアナライザーとSDKのバージョンで一部のアプリケーションをスキャンすると、「Could not Serialize AxeResult」というエラーが発生します。エラーを解決するには、最新バージョンに更新してください。 最新のiOSアナライザープロジェクトに更新する。最新のiOS SDKに更新する。
誤検知: SwiftUI & クロスプラットフォームアプリのLabelInNameとLabelAtFront
一部の画面では、関連付けられているテキストプロパティが誤って検出され、LabelInNameとLabelAtFrontが誤検知を報告する可能性があります (#1622)
iOS 15 Proシミュレーターで機能しないSupports Dynamic Typeルール
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
タッチターゲットの間隔と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
// }
}
Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.
ハイブリッドアプリおよびクロスプラットフォームアプリでのスクロール検出
一部のハイブリッドおよびクロスプラットフォームアプリでは、スクロールビュー内の項目が画面外に部分的に表示されているときに予期しない結果が返されることがあります。アクセシビリティのために要素をテストするには、スキャンを実行する前に要素が完全に画面に表示されていることを確認してください。
アナライザーアプリ: フローティングアクションボタンが消える
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のすべての機能を利用するには、スクリーンショットを有効にしてください。セキュリティ上の懸念を避けるために、モックデータを使用するアプリのデバッグまたはテストバージョンでスクリーンショットを有効にすることをお勧めします。詳細については、⟦0⟧をご覧ください。 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.** { *; }
類似のエラーメッセージ:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
または: No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
Compose APIは非推奨となっているため、 レイアウト非依存のAPI を使用して更新を続けてください。Compose APIを使用し続け、「(isRoot)を満たしているノードが'2'つ見つかりました」といったエラーが発生した場合や、「ビューが初期化されていません。AxeDevToolsCompose.setComposeTestRule()を呼び出しましたか?」といったエラーが発生した場合は、 Compose setTestTag APIを参照してください。
ログメッセージ:MlKitContext has not been initialized
このメッセージが表示される場合、そのルールが人工知能を利用している際に一部のルール結果が予期どおり返されない可能性があります。影響を受けるルールには、カラーコントラスト、フォーカス可能テキスト、ネストされた要素名が含まれます。 (#841)
MAUI: Edit Text Nameルール
MAUIアプリのアーキテクチャがAndroidエコシステムでレンダリングする制約のため、Edit Text NameルールはSDKバージョン5.5.0以降で失敗が疑われる場合にはダッシュボードで要レビューとして表示されます。正しい動作を手動で確認してください。
ネイティブAndroid: カスタムダイアログ/モーダル
カスタムダイアログやモーダルをネイティブコントロールを拡張せずに実装する場合、モーダルの背後にあるビューに対する結果を得ることがあります。この場合、これらのカスタムモーダルまたはダイアログに対しては、私たちのツールを実行せず、支援技術を正しく利用できるように手動で確認することをお勧めします。
Webダッシュボード
スクリーンショットがありません
スキャンの詳細ページにスクリーンショットが表示されていない場合、アプリがスクリーンショットの撮影を妨げている可能性があります。これは通常、プロダクションアプリケーションでのセキュリティ上の理由によるものです。Axe DevTools Mobileダッシュボードでの全機能を使用するために、テストビルドでこの要件を削除することを検討してください。
一部のAndroidスキャン名がフォーマットされていません
デフォルトで画面タイトルに設定されている一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。今後のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。暫定措置として、ダッシュボードまたはフレームワークからスキャン名を設定することができます。(#1643)
