axe DevTools Mobile 2023年8月16日リリースノート

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

2023年8月16日

Not for use with personal data

コンポーネントのバージョン

  • axeDevToolsXCUI v2.6.0
  • axe-devtools-android v4.0.0

新機能

axe DevTools Mobile Analyzerの導入

新しいaxe DevTools Mobile Analyzerを使用して、ソースコードへのアクセスなしで、あらゆる技術で構築されたiOSまたはAndroidアプリをテストできます。iOSのSwiftUIやUIKit、AndroidのJetpack ComposeやXML、React Native、Flutter、Xamarin、Ionicなど、ネイティブアプリとクロスプラットフォームアプリの両方をテストします。axe DevTools Mobile Analyzerは、ユーザーが開始する(手動)アクセシビリティテストのための埋め込みFloating Action Buttonに取って代わります。移行するには、アプリからFloating Action Buttonの埋め込みコードを削除し、ドキュメントに従って 新しいaxe DevTools Mobile Analyzerを使って開始するに従ってください。

iOS

  • SwiftUIで構築されたビューやクロスプラットフォームアプリは、新しい iOS用axe DevTools Mobile Analyzerを使用してユーザーが開始する(手動)テストが可能になりました。
  • 動的タイプをサポート ルールがXCUIフレームワークで利用可能になりました。このルールは、複数回テキストのサイズを変更し、各リサイズ後に画面を再評価して問題を探します。実行には数秒かかります。このため、オプトインとしてリリースしています。オプトインするには、axe構成APIから optInToSDT をtrueに設定してください。 axeDevTools.configuration.optInToSDT = true
  • サポートされるiOSの最小バージョンは、iOS 13からiOS 14に変更されました。

Android

  • クロスプラットフォームアプリは、新しい Android用axe DevTools Mobile Analyzerを使用してユーザーが開始する(手動)テストが可能になりました。
  • Jetpack Composeビューを使用するアプリは、ユーザーが開始する(手動)テストまたは自動テストのいずれかで完全なルールセットを実行します。(以前はJetpack Composeを使用するAndroidアプリには小さなルールセットしかありませんでした。)
  • 自動テスト用にUI Automatorテストフレームワークをサポートするようになりました。
  • 更新されたAndroid SDKは、EspressoとUI Automatorを通じて、自動的なアクセシビリティスキャンをInstrumentation Registryを用いて実行でき、ビューやアクティビティを指定する必要がありません。
  • 重大な変更: DashboardService クラスは ResultsDashboard クラスに置き換えられました。

ダッシュボード

  • 主要なダッシュボード画面からの問題数とサマリーの読み込み時間が改善されました。
  • Safariブラウザで表示されたときのビュー階層の外観が改善されました。

バグ修正

iOS用axe DevTools Mobile

  • カラーコントラストルール - 無効なボタンに対してカラーコントラストルールを実行しないようにしました。無効な要素にはカラーコントラストルールが適用されないためです。
  • 衝突コントロールルール - アクセシビリティフォーカス可能とマークされていない、またはアクセシビリティ要素でないコントロールは、衝突コントロールを見る際に考慮されなくなりました。
  • ローカルに保存された結果 - スキャン名がJSONファイルに正しく追加され、ローカルに保存されたりダッシュボードからダウンロードされたときに反映されます。これにより、Reporter CLIから生成されたHTMLレポートに「未命名スキャン」タイトルが表示されていた問題が修正されました。

axe DevTools Mobileダッシュボード

  • アクセシビリティ修正: 欠落していたaria role="button"を追加し、アナウンスモーダルヘッディングを改善し、ビュー階層内のツールチップを削除し、ページネーションのより良い画面リーダーアナウンスを追加しました。
  • スクリーンショットのスキャン名が「インスペクト」ボタンと重なっていた問題を修正しました。
  • 無料トライアルユーザーが無限にスピナーを見ていた問題を修正しました。

アップデート

このリリースは、iOSアプリの自動テストでのUIKitフレームワークへの最後のアップデートを示しています。我々はこのフレームワークを今後も提供し続けますが、バグ修正やアップデートを行うことはありません。今後の新しいルールや改善点はXCUIフレームワークで提供されます。現在、自動化されたユニットまたはUIテストにUIKitフレームワークを使用しており、XCUIフレームワークへの移行をサポートしてほしい場合は、お知らせください。 support.deque.comにリクエストを送信するか、メールで helpdesk@deque.com

既知の問題

以下の問題が発生した場合は、 helpdesk@deque.com または support.deque.comまでご連絡ください。問題が解決した場合、または記載されていない回避策が発見された場合はご連絡いたします。

important
  • axe DevTools Mobileの自動テストは、ネイティブiOS、ネイティブAndroid、およびReact Nativeアプリに対応しています。技術スタックに応じたアクセシビリティテストのソリューションについては、Dequeの担当者にお問い合わせください。
  • 正確な結果と適用可能な修正アドバイスを得るために、axe DevTools MobileのルールはWebビューやレンダリングされたPDFでは実行されません。HTMLコンテンツをテストするには、axe DevTools for Webをご利用ください。axe MonitorはアクセシビリティのためのPDFスキャンをサポートしています。

axe DevTools Mobile for iOS

axeDevToolsUIKit.xcframework

SwiftUIで構築されたビューは、このフレームワークでは自動テストできません。

SwiftUIビューのUITestingにはaxeDevToolsXCUIフレームワークを使用してください。

カスタムルールはSwiftのみでサポートされています

カスタムルールAPIはObjective-Cでは利用できません。

誤検出: InScrollView, SupportsDynamicType, Colliding Views

以下の誤検出の修正に取り組んでおり、修正がリリースされ次第、このリストを更新します。

InScrollView
InScrollViewでは、バナーのように振る舞う要素内のテキストについて、問題が報告される場合があります。これらの要素を大きなテキストが必要な人に利用可能にするには、 UILargeContentViewer

SupportsDynamicType
次のシナリオでは誤検出が発生する可能性があります:

  • を使用している場合、 UIContentSizeCategoryDidChange 通知において、フレームワークが誤ってテキストがUITestsでDynamic Typeに応答しないと報告する可能性があります。
  • を使用している場合、 NotificationCenter.default.addObserver(forName:.., object:.., queue:.., using:..) に応答するために UIContentSizeCategoryDidChange 通知を使用しています。
  • を使用している場合、 traitCollectionDidChange Dynamic Typeに応答するためにテキストの親ビューやビュコントローラーで使用しています。
Colliding Views
When a scrollable subview contains text, and that subview does not span to the edge of the screen's bounds, you will see failures for text located within the view's bounds.

axeDevToolsXCUI.xcframework

SwiftUI PickerとUIKit Picker

SwiftUIとUIKitのPickerビューは、シミュレータまたはデバイス上でフレームワークが停止する原因になることがあります。(#636)

入れ子になったコントロールに対するルール

ルールの改善を検討する中で、XCTestで入れ子になったコントロールがアクセシビリティツリーに返されないことが判明しました。この問題についてはAppleにバグ報告を行いました。(#1110)

誤検出: In Scroll View, ActiveControlName

以下の誤検出の修正に取り組んでおり、修正がリリースされ次第、このリストを更新します。

In Scroll View
バナーのように振る舞う要素内のテキストについて、問題が報告される場合があります。これらの要素を大きなテキストが必要な人に利用可能にするには、 UILargeContentViewer。(#622) ActiveControlName
UIImageViewに`accessibilityIdentifier`が設定されているがVoiceOverでフォーカスできない場合、かつその中にフォーカス可能なコントロールが入れ子になっている場合に、ActiveControlNameがUIImageViewについて誤検出を報告することがあります。`accessibilityIdentifier`を削除するとこの問題は解決されます。(#1178)

誤検出: イメージビュー名、iOS 13からiOS 14.8.1のフォーカス可能なテキスト

以下の誤検出の修正に取り組んでおり、修正がリリースされ次第、このリストを更新します。

Image View Name
UIImageViewに`accessibilityIdentifier`が設定されているがVoiceOverでフォーカスできない場合、ImageViewNameがUIImageViewについて誤検出を報告することがあります。`accessibilityIdentifier`を削除するとこの問題は解決されます。(#1188) Focusable Text
非アクセシブル要素としてマークされた要素は、Appleのフレームワークのバグにより不適切な結果を報告することがあります。

axe DevTools Mobile for Android

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)

「Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)」のようなエラーに遭遇した場合は、下記のメールアドレスまでご連絡ください helpdesk@deque.com または support.deque.com までお問い合わせください。特定の条件下では、2つのComposeルートノードが同時に存在することがあります。

axe DevToolsモバイルダッシュボード

一部のAndroidスキャン名がフォーマットされていない

デフォルトで画面タイトルに設定されている一部のAndroidスキャン名は、バンドル識別子を含む完全なクラス名として表示されます。将来のリリースでは、画面タイトルがより読みやすい名前にフォーマットされるように解決されます。暫定的に、ダッシュボードまたはフレームワークからスキャン名を設定することができます。(#1643)