Axe DevTools Mobile 2024年3月27日リリースノート
2024年3月27日
コンポーネントバージョン
- axe-devtools-android v5.3.0
- axeDevToolsMobile Appiumプラグイン v2.0.0
新機能について
Appium
- 重大な変更 - ユーザーからのフィードバックに基づき、Appiumプラグインをより使いやすくするために以下の変更を行いました。
- アクセシビリティスキャンを開始するために、Appiumドライバーの
page sourceメソッドを使用する必要はなくなりました。代わりに、ドライバーのexecute script機能を使用します。これにより、Appiumテストでpage sourceメソッドを他の目的で使用する自由があります。注意: スクリプトを実行するときに、ページソースを自動的に取得します。テスト中にページソースを既に取得している場合は、スクリプトの実行時にそれを渡してください。二重に取得することを避けるためです。 key用に能力を設定する必要はもうありません。代わりに、APIキーをスクリプトに渡します。- v1.0.0からv2.0.0への移行ガイドをご覧ください
- 始めますか? セットアップ手順と例についてはAppiumのドキュメントをご覧ください。
- アクセシビリティスキャンを開始するために、Appiumドライバーの
バグ修正
Android
- 自動テストの結果をローカルに保存する際、Gradleバージョン8以上で動作しない問題を修正しました。
既知の問題
以下の問題のいずれかが発生している場合は、helpdesk@deque.comまたはsupport.deque.comにご連絡ください。その後、解決された場合や、リストされていない回避策が特定された場合にお知らせします。
- Axe DevTools Mobile の自動テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリケーションで実行されます。技術スタックでのアクセシビリティ テスト ソリューションについては、Dequeの担当者にお問い合わせください。
- WebビューやレンダリングされたPDFから一部の結果を取得できるかもしれませんが、最も包括的なWebのアクセシビリティテストのためには、Axe DevTools for Web または Axe Monitorを使用することを強くお勧めします。
iOS用Axe DevTools Mobile
アナライザープロジェクトとバンドルIDによるテストのエラー 2.8.1
バージョン2.8.1では、バンドル識別子によるアプリケーションのテスト機能が壊れており、「テストの設定で指定されたターゲットアプリケーションパスがありません: ...」というエラーが発生します。2.8.2または最新バージョンにアップデートしてエラーを解決してください。 iOSアナライザープロジェクト内で最新のものに更新
オフスクリーンのビューがiOS 17でテストしたSwiftUIアプリに対して結果を表示する可能性
バージョン 2.8.0(リリースノートを見る)では、オフスクリーンや他のビューに隠されたビューを含め、視覚に見えないビューでは結果が報告されなくなりました。ただし、iOS 17でテストしているSwiftUIアプリケーションでは、一部の結果がまだ表示されることが判明しました。(#1383)
iOS 15 ProシミュレーターでDynamic Typeのルールが機能しない
iPhone 15 Proシミュレーターに影響する問題があり、Dynamic Typeのルールが実行されません。Dynamic Typeのルールにオプトインしている場合は、iPhone 15 Proシミュレーターを使用してテストすることができません。Appleにはバグが報告されています。
ネストされたコントロールに対するルール
ルールの改善を検討する中で、XCTestではネストされたコントロールがアクセシビリティツリーに返されないことが判明しました。Appleにはバグが報告されています。(#1110)
誤検知: スクロールビュー内、ActiveControlName
以下の誤検知に対する修正に積極的に取り組んでおり、修正がリリースされ次第、このリストを更新します。
In Scroll View
バナーとして振る舞う要素内のテキストに対して問題を報告することがあります。これらの要素をより大きなテキストが必要な方に利用可能にするには、次を使用してください UILargeContentViewer。(#622)
ActiveControlName
UIImageViewが`accessibilityIdentifier`を設定されているがVoiceOverでフォーカス不可能であり、かつその中にフォーカス可能なコントロールがネストされている場合、ActiveControlNameがUIImageViewに対して誤検知を報告する可能性があります。`accessibilityIdentifier`を削除すると問題が解決されます。Appleにはバグが報告されています。(#1226)
誤否定: イメージビューの名前、iOS 13からiOS 14.8.1のフォーカステキスト
以下の誤否定に対する修正に積極的に取り組んでおり、修正がリリースされ次第、このリストを更新します。
Image View Name
UIImageViewが`accessibilityIdentifier`を設定されているがVoiceOverでフォーカス不可能である場合、ImageViewNameがUIImageViewに対して誤否定を報告する可能性があります。`accessibilityIdentifier`を削除すると問題が解決されます。Appleにはバグが報告されています。(#1226)
Focusable Text
非アクセシビリティ要素としてマークされた要素は、Appleのフレームワークのバグにより不適切な結果を報告する可能性があります。
Android用Axe DevTools Mobile
Proguardを使用した際のクラッシュ
デバッグまたはテストビルドでProguardを利用している場合、次の手順に従って Proguard設定でDequeを無視します。
`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()?
`1`ノードが期待される場所で`2`ノードが見つかったか、または`AxeDevToolsCompose.setComposeTestRule()`を呼び出しましたか?という内容のエラーが発生した場合は、 Compose setTestTag APIを参照してください。
Axe DevTools Mobile ダッシュボード
スクリーンショットが欠落している
スキャン詳細ページにスクリーンショットが表示されない場合、アプリがスクリーンショットの撮影を防いでいる可能性があります。多くの場合、これは本番アプリケーションにおけるセキュリティ上の理由からです。Axe DevTools Mobile ダッシュボードでの完全な機能を可能にするために、テスト用ビルドのこの要件を削除することを検討してください。
一部のAndroidスキャン名が未フォーマット
画面タイトルがデフォルトに設定されている一部のAndroidスキャン名は、バンドル識別子を含むクラス名全体として表示されます。次期リリースで、画面タイトルがより読みやすい名前にフォーマットされるように解決される予定です。代替策として、ダッシュボードやフレームワークからスキャン名を設定できます。(#1643)
Appium用Axe DevTools Mobile
誤検出: アクティブビュー名
Appiumプラットフォーム経由で利用可能な情報の限界から、ボタン要素にラベルを提供するための labeledBy プロパティを使用する際にアクティブビュー名の誤検出を特定しました。解決策を検討しており、次期リリースでの修正を期待しています。
React Native & .NET MAUI: 名前にラベルと先頭にラベル
Appiumプラットフォーム経由で取得可能な情報の限界から、React Nativeで構築されたアプリのラベル名にラベルと先頭にラベルのルールが実行できません。解決策を検討しており、次期リリースでの修正を期待しています。
React Native: ビューヒエラルキーに過去画面が表示
時々、Appiumのページソースプロパティがスキャン間で更新されるのに余分な時間を要することがあります。これが発生すると、ダッシュボードのインスペクト機能を使用した際に前の画面のビューヒエラルキーが表示されます。解決するには、ページソースAPIを呼び出す前に小さなタイムアウトを追加して、アクセシビリティスキャンを促してください。 例:
await driver.pause(1000);
const result = await driver.getPageSource();
