Axe DevToolsモバイル 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モバイルアナライザーの紹介

新しいAxe DevToolsモバイルアナライザーを使用して、ソースコードにアクセスせずに、iOSまたはAndroidアプリをあらゆる技術でテストできます。iOSのSwiftUIとUIKit、AndroidのJetpack ComposeとXML、React Native、Flutter、Xamarin、Ionicなどのネイティブおよびクロスプラットフォームアプリをテストします。Axe DevToolsモバイルアナライザーは、ユーザーによる(手動の)アクセシビリティテストのために埋め込まれたフローティングアクションボタンを置き換えます。切り替えるには、アプリからフローティングアクションボタンの埋め込みコードを削除し、新しいAxe DevToolsモバイルアナライザーを始めるに従ってドキュメントを参照してください。

iOS

  • SwiftUIで作成されたビューおよびクロスプラットフォームアプリは、新しいiOS用Axe DevToolsモバイルアナライザーを使ってユーザーによる(手動の)テストを行うことができます。
  • 動的タイプをサポートルールがXCUIフレームワークで利用可能になりました。このルールはテキストを複数回リサイズし、各リサイズ後にスクリーンを再評価して問題を確認します。実行には数秒かかるため、オプトイン方式としてリリースしました。オプトインするには、Axe設定APIからoptInToSDTをtrueに設定します。axeDevTools.configuration.optInToSDT = true
  • サポートされるiOSの最小バージョンは、iOS 13からiOS 14に変更されました。

Android

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

ダッシュボード

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

バグ修正

iOS用Axe DevToolsモバイル

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

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

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

アップデート

このリリースは、iOSアプリの自動化テスト向けUIKitフレームワークに対する当社の更新の最後を示します。このフレームワークの提供は今後も続けますが、バグ修正や更新は行いません。今後は新しいルールや改善が行われるXCUIフレームワークへの切り替えをお勧めします。現在UIKitフレームワークを自動化されたユニットまたはUIテストに使用しており、XCUIフレームワークへの移行サポートを希望する場合は、ご連絡ください。support.deque.comでリクエストを送信するか、helpdesk@deque.comにメールしてください。

既知の問題

以下の問題に遭遇している場合は、helpdesk@deque.comまたはsupport.deque.comまでお問い合わせください。解決した際や、記載のない回避策がある場合に通知いたします。

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

iOS用Axe DevToolsモバイル

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のフレームワークのバグにより不適切な結果を報告することがあります。

Android用Axe DevToolsモバイル

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)