axe DevTools Mobile 2023年10月18日リリースノート
2023年10月18日
コンポーネントバージョン
- axeDevToolsXCUI v2.8.0
- axe-devtools-android v4.2.0
新機能
WCAG 2.2のサポート
WCAG 2.2リリース WCAG 2.2. releaseをご覧ください。 iOS用の タッチターゲット間隔ルール のドキュメントを閲覧し、 Android用のタッチターゲット間隔ルールをご覧ください。
知っていましたか?タッチターゲット間隔ルール(WCAG 2.2, 2.5.8)はAA基準を満たしており、タッチターゲットサイズルール(WCAG 2.1, 2.5.5)はAAA基準を満たしています。重要なコントロールに対しては、WCAGはより厳しいタッチターゲットサイズルールを目指してAAA基準を満たすことを推奨しています。Dequeもまた、モバイルでのより厳しいルールを目指すことを推奨しており、それはAppleの44ptx44ptガイドラインに従い、Googleの48dpx48dpガイドラインにより近く一致し、アプリをストアに提出する際に問題が発生しないことを保証します。
重要な変更 - 表示されているビューのみをスキャン
axe DevTools Mobileは今後、スキャン時にユーザーに表示されているビューのみをスキャンします。以前は、オフスクリーンや他のビューによって隠されているビューも含めてすべてのビューをスキャンしていました。
どのように結果が改善されるのか?
- ユーザーに表示されているものだけをスキャンすることで、障害を持つ人や支援技術を使っている人のユーザー体験をより正確に反映します。ユーザーや支援技術でアクセスできないダイアログやモーダルの背後にあるものはスキャンされません。
- コンピュータービジョンルール、たとえばカラコントラストはオフスクリーンのビューでは実行されないため、以前は制限されたルールセットからのみ結果が得られていました。画面の範囲内のビューのみをスキャンすることで、スキャンされたビューは完全なルールセットから利益を得られます。
これがチームに意味することは?
「問題フィルタリング」 のダッシュボード上のボックスを未チェックにしている場合、ダッシュボードの結果に違いはありません。ユーザーに表示されないビューはすでに結果から除外されています。 それ以外の場合、axeDevToolsXCUI v2.8.0およびaxe-devtools-android v4.2.0にアップグレードしたら:
他のビューの背後に隠れているビュー(モーダルやポップアップなど)は、アクセシビリティ結果がありません。
- オフスクリーンのビュー(現在のスクロール位置の上や下にあるものなど)は、アクセシビリティ結果がありません。
- ヒント:長い画面の各スクロール位置でスキャンを行い、すべてのアクセシビリティ問題をキャプチャしてください。たとえば、アプリのホーム画面が3画面にわたる場合、以下のように3回スキャンを行います。
「関連テキスト」ルール
- が実験ステータスを脱して昇格しました。このルールは、コントロールが近くのラベルからアクセシブル名を取得することを確認します。VoiceOverやVoice Controlなどの支援技術に利用可能です。 「カラコントラスト」ルール は、推定フォントサイズを取得し結果の精度をさらに向上させる改善を受けました。この変更により、一部のシナリオの結果は「要レビュー」ではなく「合格」または「不合格」ステータスとして報告されるようになります。
- Android カスタムルールの大幅な変更 - Androidでカスタムルールを実行するためのインターフェースが更新され、 オブジェクトを戻す代わりに、
タイプを戻します。変更の完全な例や
- Androidのカスタムルールに関する詳細を表示してください。
RunRuleResult慎重に検討した結果、ライブラリから実験的な非表示ビュー規則「Hidden Active View Focus」と「Hidden Informative View Focus」を削除することを決定しました。これらの実験規則は、2年間にわたってフィードバックを集めながら多くの反復を経ました。これらの規則を自動化すると偽陽性が生じる可能性があるため、偽陽性をゼロにするという私たちのコミットメントをサポートするために、自動ルールセットからこれらを削除することを決定しました。このリリースでは、非表示ビュー規則を「無視」ステータスに移行しました。それらは「失敗」または「合格」結果のカウントに表示されなくなります。次回のリリース(日付未定)でライブラリから完全に削除されます。Stringルールに通過、失敗、または要レビューと標記される理由をよりよく説明するために、より詳細な要約を追加しました。 Compose APIは現在、ComposeEmptyTestRule - を使用して
- ActivityScenario
- でアクティビティを起動できます。これは
AndroidComposeTestRuleを使用するよりも簡単にできる場合があります。ActivityScenario. This can be easier than usingAndroidComposeTestRule、特にXMLビューとComposeビューを一緒に使用する場合。 Compose Empty Test Ruleの使用方法について詳しく知る。 - このリリースでは、Kotlinバージョンを1.7から1.9にアップグレードし、ライブラリがJetpack Composeの最新バージョンと互換性を持つようにしました。Kotlinバージョン1.9は、Kotlin 1.8以降との互換性があります。アプリがKotlin 1.8未満に依存している場合は、axe-devtools-android v4.1.0以下を使用し続けてください。
- Moshiを1.12.0から1.15.0に、Jetpack Composeを1.4.3から1.5.1にアップグレードしました。
バグ修正
iOS
- Tough Target Spacingは、隠れたコントロールや完全に重なる要素のエッジケースを処理するための更新を受けました。
- エッジケースでのアクセシビリティ要素の検出に関する改善が行われ、さまざまなルールでコントロールをテストする際の結果精度が向上します。
- Supports Dynamic Typeルールは、可視テキストのないコントロールには適用されません。
- フレームワークは、Picker要素でフリーズしなくなりました。現在、Picker要素を対象にするルールはないため、結果に変更は予想されません。今後の機会を探します。
Android
- 分析された値に画面の向きルールの理解しやすい画面向きのプロパティを追加しました。以前は、結果を確認する人には理解しにくい整数値でした。
- レイアウトに依存しないスキャンを使用する際、Instrumentation Registryを介してカスタムルールリストを更新できるようになりました。
ダッシュボード
- 「インスペクト」機能のツリービューに対するアクセシビリティの改善。現在、ツリービューはキーボードや支援技術を使用して正常にナビゲートできます。
既知の問題
以下の問題のいずれかに遭遇した場合、次のアドレスで私たちにご連絡ください 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
Supports Dynamic TypeルールがiOS 15 Proシミュレータで動作しない
Supports Dynamic Typeルールの実行を妨げる問題がiPhone 15 Proシミュレータにあります。Supports Dynamic Typeルールに参加している場合、iPhone 15 Proシミュレータを使用してテストすることはできません。Appleにバグを報告しました。
ネストされたコントロールに対するルール
ルールの改善を検討している際に、XCTestでネストされたコントロールがアクセシビリティツリーに返されないことが判明しました。Appleにバグを報告しました。(#1110)
偽陽性: Scroll View内のActiveControlName
以下の偽陽性の修正に積極的に取り組んでおり、修正がリリースされ次第、このリストを更新します。
In Scroll View
バナーとして動作する要素内のテキストに対して問題が報告されることがあります。これらの要素を大きなテキストを必要とする人々に利用可能にするためには、 UILargeContentViewer。(#622)
ActiveControlName
UIImageViewが`accessibilityIdentifier`を設定されているが、VoiceOverでフォーカスできず、その中にフォーカス可能なコントロールがネストされている場合、ActiveControlNameはUIImageViewで偽陽性を報告することがあります。`accessibilityIdentifier`を削除すると問題が解決します。Appleにバグを報告しました。(#1226)
偽陰性: iOS 13からiOS 14.8.1までのImage View Name、Focusable Text
以下の偽陰性の修正に積極的に取り組んでおり、修正がリリースされ次第、このリストを更新します。
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)
Java8プロジェクトとaxe DevTools Android 3.1.0を使用したコンパイルエラー
次のインポートをお試しください:
implementation 'androidx.core:core-ktx:1.9.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'After importing the above library, if you see errors related to minSDK version for core-ktx library try the following in your project’s Android Manifest:
<uses-sdk tools:overrideLibrary="androidx.core" />
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)
「isRoot」が条件のノードが「2」個あると報告するようなエラーに遭遇した場合、次のアドレスで私たちにご連絡ください helpdesk@deque.com または support.deque.com にお問い合わせください。特定の条件下では、同時に2つのComposeルートノードが存在する場合があります。
axe DevTools Mobile ダッシュボード
一部のAndroidスキャン名がフォーマットされていません
デフォルトで画面タイトルに設定されている一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。今後のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。回避策として、ダッシュボードまたはフレームワークからスキャン名を設定することができます。(#1643)

