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.
- 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.
iOS
Unable to Run Scans on Physcial Devices with iOS Analyzer 1.4.7
A configuration setting in the iOS Analyzer 1.4.7 prevents scans from running, returning the message "Test Failed". To run scans on a physical device, update to the latest iOS Analyzer project.
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 iOS Analyzer project.
"Could not Serialize AxeResult" Error in Analyzer Project v1.2.0 & SDK v2.12.3
Scanning some applications with this version of the analyzer and SDK would result in a "Could not Serialize AxeResult" error. Update to the latest version to resolve the error. Update to the latest iOS Analyzer project.Update to the latest iOS SDK.
False Positive: LabelInName and LabelAtFront in SwiftUI & Cross Platform Apps
Some screens may report false positives with LabelInName and LabelAtFront due to an incorrect associatedText property being found (#1622)
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)
ImageView Name Rule Needs Review Results for UIKit Apps
In UIKit apps, an image without an `accessibilityLabel` is not focusable with assistive technology by default.
The properties we use to check focusability from Apple may be inaccurate when an `accessibilityIdentifier` is set on the image. Due to this unexpected behavior, results for ImageView Name issues in UIKit apps will report as Needs Review. A bug report has been filed with Apple. (#1633)
False Positive: In Scroll View, Label In Name, Label at Front, and v2.11.0 Image View Name & 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)
v2.11.0 Image View Name & Active Control Name
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. (#1633)
Label In Name and Label At Front
These two rules look for a control's visible label amongst nearby elements to help determine rule status. In some view hierarchies, the incorrect nearby text may be detected causing these rules to fail. (#1622)
Android
EditTextName
on Android 7 (SDK 24-25)
Apps written with XML that utilize the hint text feature may see false positives with the EditTextName
rule. Hint text was not introduced until Android 8 (SDK 26). Using this element in your XML app will assign the hint text to the value of the text input field. More recent versions of Android are better equipped to make this experience accessible.
To overcome this issue, our first recommendation is to run your tests on newer versions of Android. If it is important that the app is accessible on earlier Android versions however, you might consider avoiding usage of the hintText
feature, as it is not officially supported.
Android hidden views returning results
You may see results for views which are hidden behind other views on the screen. These hidden views are not available to assistive technology, but axe DevTools Mobile still reports them as issues.
We are working on a fix for this complex issue. In the meantime, if TalkBack cannot reach these views, you can disregard the corresponding issues. They do not require a fix to ensure accessibility.
Error while running ML Kit Text Detection
ML Kit text detection is required in many of the axe DevTools Mobile rules to ensure accuracy of results. The ML Kit library should be automatically imported when referencing axe DevTools Mobile in your automated Espresso or UIAutomator tests. In some cases however, the automatic import does not happen and you will see the following error in the logcat:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
To overcome this issue, you should import the ML Kit library into your project manually. In your application's build.gradle
file, add the following under dependencies:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Touch Target Spacing and Jetpack Compose
The Touch Target Spacing rule is currently not running on any slider components that were written in Jetpack Compose. No action can be taken at this time. However, a fix is coming soon!
Error when saving results locally on API 30
On Android API 30, one of the locations that we attempt to save results locally has a permissions error. The result will still be saved as a JSON file despite this error being displayed. The error can be suppressed by commenting out the code in the following block:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') { executable "${android.getAdbExecutable().toString()}" args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'// finalizedBy { // fetchAndroidFolderAxeReportsTask // } }
Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.
Scroll detection on Hybrid Apps and Cross-Platform Apps
In some hybrid and cross-platform apps, we may return unexpected results when items in a scroll view are partially off screen. To test an element for accessibility, ensure it is fully onscreen before performing the scan.
Analyzer App: Floating Action Button Disappears
Introduced with API 31 (Android 12) is the ability to hide non-system overlays. In order to utilize the axe Analyzer app, please ensure this setting is not turned on. If you have opted to utilize this feature for its security enhancements, we recommend leaving it off for internal testing builds where you can safely utilize testing data and eliminate security concerns that way. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
To utilize the axe Accessibility Analyzer app, update any calls to the method setHideOverlayWindows(true)
to setHideOverlayWindows(false)
on the affected activity windows.
Screenshot Missing (Black Box) in the Dashboard
To unlock full functionality of axe DevTools for Mobile, ensure screenshots are enabled. We recommend enabling screenshots on a debug or test version of your app that uses mock data to avoid security concerns. Checkout our guide for enabling screenshots in Android apps.
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)
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 messages when using Compose APIs
The Compose APIs are deprecated. Please use the layout agnostic APIs to continue receiving updates. If you continue to use the Compose APIs and encounter an error along the lines of Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
or No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
, please refer to Compose setTestTag API.
Log message: MlKitContext has not been initialized
If you encounter this message, some rule results may not return as expected when that rule is utilizing artificial intelligence. Affected rules include Color Contrast, Focusable Text and Nested Element Name. (#841)
MAUI: Edit Text Name rule
Due to limitations of the MAUI app architecture rendering in the Android ecosystem, the Edit Text Name rule will show as Needs Review in the dashboard when a failure is suspected for SDK version 5.5.0 and up. Please confirm correct behavior manually for this case.
Native Android: Custom Dialogs / Modals
When you're implementing custom dialogs or modals that do not extend the native controls, you may get results for views behind the modal. In this case, we recommend not running our tool against these custom modals or dialogs and instead manually checking them to ensure they behave with assistive technology as desired.
Web 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)