axe DevTools Mobile 2024年2月28日リリースノート
2024年2月28日
コンポーネントのバージョン
- axeDevToolsXCUI v2.9.1
- axe-devtools-android v5.2.0
新機能
Appiumソリューションの改善
- Appiumを使用するための改善されたソリューションが2月14日にリリースされました。詳細は リリースノートをご覧ください。
Android
- axe DevTools Mobileサーバーへの認証のためのconnect()メソッドは、loginWithUsername()またはloginWithApiKey()に置き換えられます。 APIリファレンス
- 新しいAPIが利用可能になり、Jetpack Composeのレイアウト内の特定のコンポーザブルを見つけ、スキャンするためにテストタグを使用することができます。これは、画面がJetpack ComposeとXMLレイアウトの混合である場合に役立ちます。 例
バグ修正
iOS
- アクティブコントロール名ルールで、
searchBarTextFieldがアクセシブルラベルなしで誤って合格していた問題を修正しました。 - テキストフィールドのカーソルが存在する場合のカラコントラストルールでの誤検出を修正しました。テキストフィールドが編集されているように見える場合、「失敗」ではなく「レビューが必要」ステータスに設定されるようにします。
Android
- モバイルアナライザーがクロスプラットフォームアプリをスキャン中にクラッシュすることがあった問題を修正しました。
- ユーザーに見えないビューに対して実行されていた、フォーカステキストおよびネストされた要素名ルールの誤検出を修正しました。ビューが画面上に見えていない限り、ルールは実行されなくなります。
既知の問題
以下の問題を経験している場合は、 helpdesk@deque.com または support.deque.comにご連絡ください。問題が解決した際やリストされていない回避策が判明した際にお知らせできます。
- axe DevTools Mobileによる自動化テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリケーションで動作します。技術スタックにアクセスビリティテストソリューションを求める場合は、Dequeの担当者にお問い合わせください。
- ウェブビューやPDFレポートからいくつかの結果を得ることができるかもしれませんが、ウェブ上で最も包括的なアクセシビリティテストを行うには、axe DevTools for Webまたはaxe Monitorをご利用いただくことをお勧めします。
iOS用axe DevTools Mobile
アナライザプロジェクトとバンドルIDによるテストのエラー (バージョン2.8.1)
バンドル識別子によるアプリケーションのテストを行う機能がバージョン2.8.1で壊れ、「No target application path specified via test configuration: ...」というタイトルのエラーが発生しました。エラーを解決するには2.8.2または最新バージョンにアップデートしてください。 iOSアナライザプロジェクト内で最新に更新してください。
オフスクリーンビューがiOS 17でテストされたSwiftUIアプリで結果を表示するかもしれない
バージョン 2.8.0 (リリースノートを表示)では、他のビューによって隠されたものを含め、画面外や非表示のビューの結果は報告されなくなりました。しかしiOS 17でテストされるSwiftUIアプリケーションでは、まだいくつかの結果が表示されることがあります。 (#1383)
iOS 15 Proシミュレータで動作しない動的タイプサポートルール
iPhone 15 Proシミュレータに影響を与える問題があり、動的タイプサポートルールが実行されないようになっています。動的タイプサポートルールにオプトインしている場合、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のフレームワークのバグにより不適切な結果を報告することがあります。
axe DevTools Mobile Android版
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()?
`Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`や`No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`といったエラーに遭遇した場合は、 Compose setTestTag APIを参照してください。
axe DevTools Mobile ダッシュボード
スクリーンショットが不足している
スキャン詳細ページにスクリーンショットがない場合、アプリがスクリーンショットの撮影を防いでいる可能性があります。通常、これは製品版アプリでセキュリティ上の理由からです。テストビルドでの完全な機能を許可するために、この要件を削除することを検討してください。
一部のAndroidスキャン名がフォーマットされていない
デフォルトで画面タイトルが設定されている一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。今後のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されますが、一時的な対策として、ダッシュボードまたはフレームワークからスキャン名を設定できます。(#1643)
axe DevTools Mobile for Appium
誤検知: アクティブビュー名
Appiumプラットフォームを通じて利用可能な情報の制限により、ボタン要素にラベルを提供するための labeledBy プロパティを使用した場合、アクティブビュー名に対して誤検知が発生することが確認されました。解決策を検討しており、将来のリリースで修正が期待されます。
React Native: 名前にラベル & 前面のラベル
Appiumプラットフォームを通じて利用可能な情報の制約により、React Nativeで構築されたアプリでは名前にラベル & 前面のラベルのルールが実行できないことが判明しました。解決策を検討しており、将来のリリースでの修正を期待しています。
React Native: 過去の画面を表示するビュー階層を検査する
Appiumのページソースプロパティは、スキャン間で更新されるのに時間がかかることがあります。このような場合、ダッシュボードの検査機能を使用するときに前の画面のビュー階層を表示します。修正するには、アクセシビリティスキャンを促すために、ページソースAPIを呼び出す前に短いタイムアウトを追加してください。 例:
await driver.pause(1000);
const result = await driver.getPageSource();
