axe DevTools Mobile 2024年6月26日 リリースノート
2024年6月26日
コンポーネントバージョン
- Appium プラグイン (v2.2.0)
- iOS SDK & アナライザー (axeDevToolsXCUI v2.12.0)
- Android SDK (axe-devtools-android v5.5.1)
- Android アナライザー (axe Accessibility Analyzer v1.8.1)
更新方法: iOS SDK、 iOS アナライザー、 Android SDK、 Android アナライザー
新機能
Appium
- 新しいルール: iOSとAndroid向けにタッチターゲット間隔ルールを追加し、WCAG 2.2をサポートしました。また、Android向けにテキスト編集値ルールも追加しました。
- iOSのルールでサポートするコントロールタイプの拡充: すべてのルールにおいてボタン以外のコントロールもサポートするようになりました。
- 使用状況サービス: 開発チームがaxe DevTools Mobileツールの使用状況を追跡するために使用状況サービスを利用している場合、Appiumのデータも含まれるようになります。
iOS
- サポートする最低iOSバージョンがiOS 15に引き上げられました。
- 以前の非推奨通知に従い、「衝突するコントロール」ルールは、ターゲットのサイズも考慮する「タッチターゲット間隔」ルールに置き換えられる形で、実行されなくなります。
修正点
Android
- 以下のルールにおいて、精度を向上させ偽陽性を減らすために、改良と改善が行われました: 能動ビュー名、タッチターゲットサイズ、名前内ラベル、名前の前のラベル。
- 画面外または部分的に画面外のビューに対して、識別とルール結果が向上しました。
iOS
- ステッパーコントロールを使用する際にエンドユーザーのアクセシビリティ体験を向上させるために、能動コントロール名ルールが改善されました。
- 以下のルールにおいて、精度を向上させ、偽陽性および偽陰性を減らすために、改良と改善が行われました: 能動コントロール名、イメージビュー名、先頭にあるラベル。
Appium
- Androidでのタッチターゲットサイズルールは、フォーカス可能性に関係なく、クリック可能な任意の要素で実行されるようになりました。
既知の問題
下記の問題を経験している場合は、 helpdesk@deque.com または support.deque.comにご連絡ください。解決次第、または記載の回避策がない場合に特定された解決策についてお知らせします。
- axe DevTools Mobile の自動テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリケーションで実行されます。ご利用の技術スタックに関するアクセシビリティテストソリューションについては、Dequeの担当者までお問い合わせください。
- ウェブビューや表示された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シミュレータで動作しない
iPhone 15 Proシミュレータに影響を与えて、動的テキストのサポートルールを実行できない問題があります。動的テキストのサポートルールを使用する場合は、iPhone 15 Proシミュレータを使用してテストすることができません。この件についてAppleにバグ報告がされています。
ネストされたコントロールに対するルール
私たちのルール改良を検討中、XCTestではネストされたコントロールがアクセシビリティツリーに返されないことが判明しました。この問題はAppleに報告されています。 (#1110)
UIKitアプリにおけるImageView Nameルールのレビューが必要
UIKitアプリでは、`accessibilityLabel`がない画像はデフォルトでは支援技術でフォーカスされません。
Appleからのフォーカス可能性をチェックするために利用しているプロパティは、画像に`accessibilityIdentifier`が設定されている場合、不正確になることがあります。この予期しない動作により、UIKitアプリにおけるImageView Nameの問題は「レビューが必要」として報告されます。この問題はAppleに報告されています。 (#1633)
偽陽性:スクロールビュー内、Nameにラベル、先頭にラベル、v2.11.0 Image View Name & ActiveControlName
以下の偽陽性の修正に取り組んでおり、修正がリリースされ次第このリストを更新します。
In Scroll View
バナーのような要素内のテキストに関して問題を報告することがあります。より大きなテキストを必要とするユーザーにこれらの要素を提供するには、次を使用してください。 UILargeContentViewer. (#622)
v2.11.0 Image View Name & ActiveControlName
UIImageViewに`accessibilityIdentifier`が設定されているがVoiceOverからフォーカスできず、その中にフォーカス可能なコントロールがネストされている場合、ActiveControlNameがUIImageViewの偽陽性を報告する可能性があります。`accessibilityIdentifier`を削除することで問題が解決します。この問題はAppleに報告されています。 (#1633)
Label In Name and Label At Front
これら2つのルールは、コントロールの可視ラベルを近くの要素から探してルールの状況を判断します。一部のビュー階層では、誤った近くのテキストが検出され、これらのルールが失敗することがあります。 (#1622)
axe DevTools Mobile for 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()?
`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 Dashboard
スクリーンショットがありません
スキャン詳細ページにスクリーンショットが表示されない場合、アプリがスクリーンショットの撮影を防いでいる可能性があります。多くの場合、これは本番アプリのセキュリティ上の理由によるものです。axe DevTools Mobile Dashboardで完全な機能を許可するために、テストビルドではこの要件を削除することを検討してください。
一部のAndroidスキャン名がフォーマットされていない
デフォルトで画面タイトルに割り当てられた一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。次のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。回避策として、ダッシュボードまたはフレームワークからスキャン名を設定することが可能です。 (#1643)
axe DevTools Mobile for Appium
偽陽性: Active View Name, Touch Target Spacing
以下の偽陽性の修正に取り組んでおり、修正がリリースされ次第このリストを更新します。
Active View Name
Appiumプラットフォームを通じて利用可能な情報の制約により、ボタン要素にラベルを提供するための labeledBy プロパティを使用する際、Active View Nameの偽陽性が発生することを確認しました。
Touch Target Spacing on iOS platform for SwiftUI & React Native apps
サイズが24pt x 24pt以上の大きなコントロールは、Touch Target Spacingに失敗することがあります。 (#411)
偽陰性: Inaccessible Action on Android React Native
この新しいルールをAndroidプラットフォーム上のReact Nativeアプリをスキャンする際、矛盾した結果を見ることがあるかもしれません。いくつかのビューにはネストされたボタン要素が含まれており、親ボタンが失敗し、子ボタンで合格します。 (#407)
React Native: Label In Name & Label At Front
Appiumプラットフォームを通じて利用可能な情報の制約により、React Nativeで構築されたアプリでは、Label In Name & Label At Frontのルールが実行できないことが判明しました。私たちは解決策を模索しており、将来のリリースでの修正を期待しています。
React Native & .NET MAUI: インスペクトビュー階層が過去の画面を表示
Appiumのページソースプロパティがスキャンの間に更新されるのに時間がかかることがあります。この場合、ダッシュボードのインスペクト機能を使用する際に、以前の画面の表示階層が表示されることがあります。これを修正するには、アクセシビリティスキャンを促すためにページソースAPIを呼び出す前に短いタイムアウトを追加してください。 例:
await driver.pause(1000);
const result = await driver.getPageSource();
制約: Androidにおける装飾画像のImage View Name
Appiumプラットフォームを通じて利用可能な情報の制約により、Androidでの装飾画像の成功基準を正確にテストすることができないことを確認しました。アクセシブルな名前がない画像の結果は、ダッシュボードで「レビューが必要」と表示され、さらなる解析が行われます。
