axe DevTools Mobile 2025年2月20日リリースノート
2025年2月20日
コンポーネントのバージョン
- iOS SDK (axeDevToolsXCUI v2.14.0)
- iOS Analyzer (axe-devtools-mobile-analyzer v1.4.8)
- iOS Appium Driver (axe-appium-xcuitest-driver v1.2.0)
更新方法: iOS SDK、 iOS Analyzer、 iOS Appium Driver
新機能
iOS Appium Driver
iOS AppiumドライバーでIgnore Rules機能が使用可能になりました!詳細情報は、 Appium用Ignore Rulesドキュメント をご覧ください。アクセシビリティのスキャン時にIgnore Rulesをどのように使用するかについての詳細は、 Appiumセットアップドキュメントをご覧ください。
iOS SDK
ネットワークログメッセージをより説明的にしました。以前は、すべての成功ログはメッセージのみを含んでいましたが 200 OK。今では、より説明的なメッセージとして、例えば DEQUE LOG: 200 OK - User verified. Successfully logged in.などがコンソールに表示されます。
iOS修正
- 次のルールの精度が向上しました: 色の対比、関連テキスト、ラベル名、ラベル先頭
既知の問題
以下の問題が発生した場合は、 helpdesk@deque.com または support.deque.comにご連絡ください。問題が解決した際や、特定された回避策がない場合に備えて通知することができます。
- axe DevTools Mobileの自動テストは、ネイティブのiOS、ネイティブのAndroid、およびReact Nativeアプリケーションに対応しています。お使いの技術スタックに関するアクセシビリティテストソリューションについては、Dequeの担当者にお問い合わせください。
- ウェブビューやレンダリングされたPDFからいくつかの結果が得られる場合がありますが、ウェブの最も包括的なアクセシビリティテストのためには、axe DevTools for Webまたはaxe Monitorでのテストを強くお勧めします。
iOS
iOS Analyzer 1.4.7で物理デバイスでのスキャンを実行できない
iOS Analyzer 1.4.7 の設定により、スキャンが実行されず、「テスト失敗」というメッセージが返されます。物理デバイスでスキャンを実行するには、 最新のiOS Analyzerプロジェクトに更新します。
AnalyzerプロジェクトとバンドルIDによるテストのエラー(v2.8.1)
バンドル識別子によるアプリケーションのテスト機能がバージョン2.8.1で壊れ、「テスト構成を経由してターゲットアプリケーションパスが指定されていません:...」というエラーが発生しました。エラーを解決するために2.8.2または最新バージョンに更新してください。 最新のiOS Analyzerプロジェクトに更新してください。
「AxeResultをシリアライズできません」エラー(Analyzerプロジェクト v1.2.0 & SDK v2.12.3)
このバージョンのアナライザーおよびSDKで一部のアプリケーションをスキャンすると、「AxeResultをシリアライズできません」エラーが発生します。エラーを解決するには、最新バージョンに更新してください。 最新のiOS Analyzerプロジェクトに更新します。最新のiOS SDKに更新します。
誤って検出される: SwiftUIおよびクロスプラットフォームアプリでのLabelInNameとLabelAtFront
一部の画面で誤った関連テキストプロパティが見つかるため、LabelInNameおよびLabelAtFrontに関して誤検知が報告される場合があります (#1622)。
iOS 15 Proシミュレータで有効でないSupports Dynamic Typeルール
Supports Dynamic Typeルールを実行できなくするiPhone 15 Proシミュレータに影響を与える問題があります。Supports Dynamic Typeルールに加入している場合、iPhone 15 Proシミュレータを使用してテストすることはできません。Appleにバグが報告されています。
入れ子になったコントロールに対するルール
ルールの改善を検討している際、XCTestで入れ子になったコントロールがアクセシビリティツリーに返されないことが判明しました。Appleにバグが報告されています (#1110)。
UIKitアプリのImageView名のルール要レビュー結果
UIKitアプリでは、`accessibilityLabel`が設定されていない画像はデフォルトで支援技術を使用してフォーカスすることができません。
Appleから提供されるフォーカス可能性のチェックに使用されるプロパティは、画像に`accessibilityIdentifier`が設定されている場合に不正確である可能性があります。この予期しない動作のため、UIKitアプリのImageView名に関する問題は要レビューとして報告されます。Appleにバグレポートが提出されています。(#1633)
誤検出:スクロールビュー、名前のラベル、先頭のラベル、およびv2.11.0のImage View名&ActiveControlName
以下の誤検出に対する修正に積極的に取り組んでおり、修正がリリースされ次第、このリストを更新します。
In Scroll View
バナーとして動作する要素内のテキストに関する問題が報告される場合があります。これらの要素をより大きなテキストが必要な方に提供するために、を使用してください。 UILargeContentViewer。(#622)
v2.11.0 Image View Name & Active Control Name
UIImageViewに`accessibilityIdentifier`が設定されていても、VoiceOverがフォーカスしない場合、フォーカス可能なコントロールがその内部にネストされていると、ActiveControlNameで誤検出を報告する可能性があります。`accessibilityIdentifier`を削除すると問題が解決されます。Appleにバグレポートが提出されています。(#1633)
Label In Name and Label At Front
これらの2つのルールは、近くの要素の中でコントロールの見えるラベルを探してルール状態を判断します。一部のビュー階層では、誤った近くのテキストが検出され、これらのルールが失敗する可能性があります。(#1622)
Android
タッチターゲット間隔と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
// }
}
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.
ハイブリッドアプリとクロスプラットフォームアプリでのスクロール検出
一部のハイブリッドおよびクロスプラットフォームアプリでは、スクロールビュー内のアイテムが画面外に部分的に表示されている場合、予期しない結果が返されることがあります。アクセシビリティをテストする要素がスキャンの前に完全に画面に表示されていることを確認してください。
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アプリでのスクリーンショットの有効化についてのガイドをご覧ください。 こちら
`minifiedEnabled`がtrueに設定されているときのクラッシュ
ビルドが小型化されている場合、axe DevToolsライブラリにログインしようとすると、アダプタが見つからないというエラーログが表示され、クラッシュが発生します。axe DevToolsを実装したデバッグビルドでは、mini-fyを無効にしてください。(#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を使用し続け、`1`つのノードしか見つからないはずなのに`2`つのノードが見つかった、または`AxeDevToolsCompose.setComposeTestRule()`が呼ばれていないなどのエラーが発生した場合は、 Compose setTestTag APIを参照してください。
ログメッセージ:MlKitContext has not been initialized
このメッセージが表示された場合、人工知能を利用するルールで期待通りの結果が返されない可能性があります。影響を受けるルールには、カラコントラスト、フォーカステキスト、ネストされた要素名が含まれます。(#841)
MAUI: Edit Text Nameルール
MAUIアプリのアーキテクチャがAndroidエコシステムでのレンダリングに制約があるため、SDKバージョン5.5.0以上では、Edit Text Nameルールが失敗の疑いがある場合にダッシュボードで要レビューとして表示されます。このケースでは正しい動作を手動で確認してください。
ネイティブAndroid: カスタムダイアログ/モーダル
ネイティブコントロールを拡張しないカスタムダイアログまたはモーダルを実装している場合、その背後のビューに関する結果を取得することがあります。この場合、これらのカスタムモーダルまたはダイアログに対してツールを実行せず、代わりに手動で確認して、支援技術が意図通りに機能することを確認することをお勧めします。
Webダッシュボード
スクリーンショットが欠けている
スキャン詳細ページからスクリーンショットが欠けている場合、アプリがスクリーンショットの取得を妨げている可能性があります。これは通常、セキュリティ上の理由で本番アプリケーションで発生します。テストビルド用にこの要件を削除し、axe DevTools Mobile Dashboardでのフル機能を利用できるように検討してください。
一部のAndroidスキャン名がフォーマットされていない
スクリーンタイトルにデフォルト設定されている一部のAndroidスキャン名は、バンドル識別子を含むフルクラス名として表示されます。将来のリリースで、スクリーンタイトルがより読みやすい名前にフォーマットされるように解決される予定です。回避策としては、ダッシュボードまたはフレームワークからスキャン名を設定できます。(#1643)
