axe DevTools Mobile December 13, 2023 Release Notes

Link to axe DevTools Mobile December 13, 2023 Release Notes copied to clipboard

December 13, 2023

Free Trial

Component Versions

  • axeDevToolsXCUI v2.8.2
  • axe-devtools-android v5.0.0

What's New?

Android

  • You can now add tags to your scans from within the Mobile Analyzer app. Streamline your process by adding tags before you scan, rather than adding tags afterwards from the Mobile Dashboard.
  • For Jetpack Compose layouts, we will now recognize the value of an "onClickLabel" as the content description for a view. This means rules requiring a content description, such as Active View Name, will not fail in the absence of a content description if an onClickLabel is present.
  • Breaking Change - We removed the Floating Action Button (FAB) from the Android library.
    • If you are using the embedded Floating Action Button for manual testing, continue using axe-devtools-android version 4.3.0 or lower, or switch to the Mobile Analyzer to test your app without embedding any code and have access to the most up-to-date ruleset.
    • If you are using the embedded Floating Action Button for automated testing with Appium, please continue to use axe-devtools-android version 4.3.0 or lower. We will release an Appium plugin soon, at which time you will no longer need to embed the Floating Action Button in your app to perform testing with Appium.

Bug Fixes

iOS

  • Fixed an issue where the Mobile Analyzer was crashing when used with XCUI framework version 2.8.1.
  • Fixed the Label In Name rule so it no longer runs on views without visible text, such as buttons containing only an icon.

Android

  • Fixed an accessibility issue with a button in the Mobile Analyzer which was too small.

Dashboard

  • Accessibility fixes for color contrast, overlapping/cut-off text, a missing checkbox group label, buttons with the same name but different actions, and links with the same text but different destinations.
  • You can now highlight and copy text displayed within the View Hierarchy when using the Inspect feature on the scan details page.

Known Issues

If you're experiencing any of the below issues, please contact us at helpdesk@deque.com or support.deque.com. We will then be able to notify you once it's resolved or of an identified workaround if none is listed.

important
  • axe DevTools Mobile automated testing runs on native iOS, native Android, and React Native applications. Please contact your Deque representative for accessibility testing solutions on your tech stack.
  • While you may get some results from web views or rendered PDFs, we highly recommend testing using axe DevTools for Web or axe Monitor for the most comprehensive accessibility testing for the web.

axe DevTools Mobile for iOS

Error in Analyzer Project & Testing by Bundle ID in 2.8.1

Functionality with testing an application by bundle identifier was broken in version 2.8.1 which resulted in an error titled "No target application path specified via test configuration: ...". Update to 2.8.2 or the latest version to resolve the error. Update to the latest within the iOS Analyzer project.

Views off-screen may show results for SwiftUI apps tested in iOS 17

With version 2.8.0 (View Release Notes), results are no longer reported on views that are not visible, including off-screen or hidden by another view. We've discovered in SwiftUI applications being tested in iOS 17, some results still show. (#1383)

Supports Dynamic Type rule not working with iOS 15 Pro simulator

There is an issue affecting the iPhone 15 Pro simulator that prevents the Supports Dynamic Type rule from running. If you are opted in to the Supports Dynamic Type rule, you will not be able to test it using an iPhone 15 Pro simulator. A bug has been filed with Apple.

Rules against Nested Controls

While looking at an improvement for our rules, we found that in XCTest, nested controls are not returned in the accessibility tree. A bug has been filed with Apple. (#1110)

False Positive: In Scroll View, ActiveControlName

We are actively working on fixes for the following false positives and will update this list as fixes are released.

In Scroll View
May report issues for text within banner-behaving elements. To make these elements available to those that require larger text, use UILargeContentViewer. (#622) ActiveControlName
If an UIImageView has an `accessibilityIdentifier` set but is not focusable by VoiceOver, and it has focusable controls nested within it, ActiveControlName may report a false positive on the UIImageView. Removing the `accessibilityIdentifier` resolves the issue. A bug has been filed with Apple. (#1226)

False Negative: Image View Name, Focusable Text in iOS 13 through iOS 14.8.1

We are actively working on fixes for the following false negatives and will update this list as fixes are released.

Image View Name
If an UIImageView has an `accessibilityIdentifier` set but is not focusable by VoiceOver, ImageViewName may report a false negative on the UIImageView. Removing the `accessibilityIdentifier` resolves the issue. A bug has been filed with Apple. (#1226) Focusable Text
Elements marked as non-accessibility elements may report improper results due to a bug in Apple's framework.

axe DevTools Mobile for Android

Crash when using Proguard

If your debug or test build is utilizing Proguard, follow the steps to ignore Deque in your Proguard settings.

Crash when `minifiedEnabled` is set to true

If minifying your build, you'll see a crash with an error log reporting an adapter could not be found when trying to login to the axe DevTools library. Disable minify for your debug builds with axe DevTools implemented. (#729)

Errors Compiling with Java8 Project and axe DevTools Android 3.1.0

Try the following imports:

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" />

Builds with r8 enabled throw an error

A build with r8 enabled may attempt to minify the axeDevTools library resulting in an error similar to:

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.** { *; }

Error message similar to:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)

If you encounter an error along the lines of `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`, please contact us at helpdesk@deque.com or support.deque.com for assistance. Under certain conditions, there may be two Compose root nodes existing at the same time.

axe DevTools Mobile Dashboard

Missing Screenshot

If the screenshot is missing from the scan details page, your app may be preventing screenshots from being taken. Often this is for security reasons in your production application. Consider removing this requirement for your testing build to allow for full functionality in the axe DevTools Mobile Dashboard.

Some Android scan names are unformatted

Some Android scan names that are defaulted to the screen title will appear as the full class name including the bundle identifier. In a future release, this will be resolved so that the screen title is formatted into a more readable name. As a workaround, you can set the scan name from the dashboard or frameworks. (#1643)