Axe DevTools Mobile November 11, 2026 Release Notes

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

November 11, 2026

Not for use with personal data

Component Versions

iOS

  • iOS SDK (axeDevToolsXCUI v5.0.0)

How to update: iOS SDK, iOS Analyzer Desktop App

Android

  • Android SDK (axe-devtools-android v10.0.0)
  • Android Gradle Plugin (axe-devtools-android-plugin v2.0.0)
  • Android Analyzer (Axe Accessibility Analyzer v4.2.0)

How to updateJ: Android Gradle Plugin, Android Analyzer

What's New?

SDK

As the retirement of the Mobile Dashboard approaches, global rule configuration is now set in Axe Account. Here admins configure settings for which rules will run in automated testing, and they can also give permissions for users to override global settings and ignore individual rules in their tests. When overrides are not allowed, the ignore call does nothing and the SDK logs why. Note that if the org settings can't be read, scans will still run. Every rule runs, and code-level ignores are allowed. Only an org that explicitly turns overrides off blocks them.

iOS

  • Find a link to your results after upload. After a scan uploads, the log now prints View your results in Axe Developer Hub: <link>. Targeted scans link to the project page, and Auto Scan links to its session.
  • Rules are now ignored on AxeDevTools itself, for example axe.ignoreRules(.colorContrast, .screenTitle), or per element with ignoreRules(onElementWithId:) / ignoreRules(onElementOfClass:). A misspelled rule now fails the build instead of silently running. (Breaking — see below.)

Android

  • Find a link to your results after upload. After a scan uploads, the log prints a link to Axe Developer Hub. Targeted scans link to the project page, and AutoScan links to its session.
  • You now ignore rules with the AxeRuleName enum, for example axeDevTools.ignoreRules(AxeRuleName.COLOR_CONTRAST, AxeRuleName.SCREEN_TITLE). To skip rules on one element, use ignoreRulesOnElementWithId("resource_id", AxeRuleName.TOUCH_TARGET_SIZE). A misspelled rule name now fails the build instead of being silently ignored. (Breaking, see below.)
  • Set rule ignores once per session when performing targeted testing. Pass ignoreRules and ignoreRulesOnElementIds to the mobile: axeStartSession function; these apply to every targeted scan until the session ends. (Note: Auto Scan does not allow individual rule ignores; it follows the org's rule settings only.)

Fixes

iOS

  • Improvements to the accuracy of the following rules: Label in Name, Label at Front, Touch Target Size, Touch Target Spacing
  • Scans no longer crash when the test runner is built with Xcode 16.2 or other versions older than 16.4
  • Quieter test logs - the SDK no longer prints to the test log every time it sends analytics

Android

  • Improved accuracy of the Label in Name rule
  • Improved performance for Auto Scan - the test runner now waits up to 10 seconds for a network before signing in
  • Improved performance for the Axe Accessibility Analyzer's floating scan button when using TalkBack - you can now reach it by swiping, and it keeps focus after a scan or after opening a menu (Swipe focus requires TalkBack version 16.2 or later)

Updates

Android

  • The SDK, Analyzer and sample targets now build against Android SDK 37 (compileSdk / targetSdk 37). The minSdk stays at 26. Your app doesn't need any changes.
  • Java tests can now call AxeAutoScan.skipScan(...) directly, without .Companion
  • resetIgnoredRules() is no longer deprecated and you can continue using it

Deprecations & Removals

iOS

  • The Inaccessible Action rule has been removed. Scans never run it, and AxeRuleId.InaccessibleAction no longer compiles. Remove any references to this rule from your test code - Any code you added to disable or ignore the rule can be deleted.
  • The experimental rule APIs have been removed. The experimental key is also gone from exported JSON.
  • The optInToSupportsDynamicType key has been removed. If you still have this in your code, delete the line that sets it.
  • The following mobile dashboard APIs have now been removed. These were deprecated in an earlier release. The Axe Developer Hub path is the only one left:
    • getResult, tagResult, deleteResult, updateScanName, AxeDevToolsResultKey, AxeResult.tags — removed, no replacement.
    • login(withAPIKey:toServer:) and startSession(apiKey:url:projectId:) — use startScanSession(...) or authenticate(...) instead.
    • postResult(_:withTags:withScanName:) — use postResult(_:withScanName:), which now returns nothing.
    • axeServiceUrl / axeServerUrl (for Auto Scan) — use axeAccountUrl.
    • AxeStatus.IGNORED - removed. Ignored rules no longer produce a result at all, so "status":"IGNORED" never appears in exported JSON.

Android

  • Experimental rules have been removed:
    • NestedElementName and NestedActiveControl no longer exist.
    • ignoreExperimental() and the experimental flag on AxeRule are gone.
  • AxeRuleViewHierarchy was deprecated in March 2025 and has now been removed. Custom rules should extend AxeRule and override isApplicable / runRule using AxeView.
  • Mobile dashboard APIs have been removed. Axe Developer Hub is now the only upload path:
    • loginWithApiKey(...) and startSession(apiKey, projectId, serverUrl) — use startScanSession(apiKey, projectId, axeAccountUrl).
    • tagScanAs, getResult, deleteResult, AxeDevToolsResultKey, TagsSet — removed, no replacement.
  • ScanResultHandler.uploadToDashboard(uploadOnly) — use uploadToDashboard() with no arguments. Note: This sends results to Axe Developer Hub.
  • Gradle plugin axeServerUrl — use axeAccountUrl.
  • AxeStatus.IGNORED - removed. Ignored rules don't produce any result now, so "status":"IGNORED" never appears in exported JSON.

Breaking Changes

iOS

  • The minimum iOS version required is now 17. UI test targets that still target iOS 16 must raise their deployment target. Running on iOS 16 devices is no longer supported.
  • Ignoring rules has moved off of axe.configuration, and axe.configuration is removed. Old calls fail to compile with a message naming the new call:
    • axe.configuration.ignore(rules:) - use axe.ignoreRules(...)
    • axe.configuration.ignore(rulesFor:) - use axe.ignoreRules(onElementWithId:_:) or ignoreRules(onElementOfClass:_:)
    • axe.configuration.customRules.insert(rule) - use axe.addCustomRule(rule)
    • Ignoring custom rules and switching a rule back on are no longer supported
  • AxeRuleId values are now lowerCamelCase (for example .ColorContrast becomes .colorContrast). Swift code using the old spelling no longer compiles. Objective-C, exported JSON, Axe Developer Hub, and Appium ignoreRules settings are unchanged.
  • http:// account URLs are refused when signing in with an API key. On-prem customers whose account URL starts with http:// must switch to https://.
  • Removed APIs listed under Deprecations & Removals fail to compile.

Android

  • The rule-ignore APIs have changed. Old calls no longer compile:
    • ignoreRules(listOf("ColorContrast")) - use ignoreRules(AxeRuleName.COLOR_CONTRAST)
    • ignoreByViewIdResourceName(id, listOf(...)) - use ignoreRulesOnElementWithId(id, AxeRuleName.X, ...)
    • ignoreExperimental() - remove the call.
  • TouchSizeWcag is now TouchTargetSize, which matches iOS and Axe Developer Hub. Update any code, filters or dashboards that look for the old name.
  • Custom rules that extend AxeRuleViewHierarchy, or that pass the experimental flag to AxeRule, no longer compile.
  • Gradle plugin: Builds that still set axeServerUrl in the axeDevTools { } block must switch to axeAccountUrl.
  • Removed APIs listed under Deprecations & Removals fail to compile.

Known Issues

important
  • Axe DevTools Mobile automated testing runs on native iOS, native Android, React Native applications, and apps built with Appium. Please contact your Deque representative for accessibility testing solutions on your tech stack.
  • These are the changes to Known Issues since the October 2026 release. For all current issues, see Known Issues.
  • 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.

New Issues

If you're experiencing any of the below issues, please contact us at helpdesk@deque.com or <a href=https://support.deque.com"" target="_blank">support.deque.com. We will then be able to notify you once it's resolved or of an identified workaround if none is listed.

iOS

False positives for Supports Dynamic Type and Clipped Text rules

The Supports Dynamic Type and Clipped Text rules (iOS 17 and later) use results from Apple's accessibility audit. That audit occasionally flags text that scales correctly or is fully visible, and these rules report what Apple returns. Most failures from these rules are real issues, so we don't recommend dismissing them as a group. This issue has been reported to Apple, and we're working on reducing these false positives.

To confirm a failure, turn on Larger Accessibility Sizes under Settings > Accessibility > Display & Text Size > Larger Text. Step through every text size, from the default to the largest, and check that the flagged text scales and stays fully visible. Text can look fine at the largest size but break at a size in between.

If the failure is a false positive, ignore the rule on that element by its accessibility identifier. We don't recommend ignoring the rule for the whole scan or by class name, because this can also hide real failures.

Android

False positives when scanning maps

It is not currently possible to accurately determine if an element on the screen is contained within a map, therefore our rules could unintentionally scan map pins and give false positive results. This is an issue with how the Android system reports maps to the Accessibility Service.

Use our ignore rules API to exempt your map or map pins from being scanned by using their IDs.

Learn more about ignoring rules.

Apps built with Unity can't be scanned

Axe DevTools Mobile can't scan the on-screen content of apps built with the Unity game engine. This affects automated scans with the Android library as well as scans from the Accessibility Analyzer app. Results only show screen-level checks - for rules such as Screen Orientation and Screen Title - and nothing for the app's buttons, text, or switches.

There is no workaround at this time.

Resolved Issues

iOS

Removed: outdated Image View Name and Active Control Name false positive

We removed an outdated entry about Active Control Name false positives on a UIImageView that has an accessibilityIdentifier. This issue only affected v2.11.0 and was fixed in the June 2024 release. Active Control Name no longer runs on these images in UIKit apps. Image View Name reports them as Needs Review instead (see ImageView Name Rule Needs Review Results for UIKit Apps).