Notes de mise à jour d'Axe DevTools Mobile du 6 novembre 2025
6 novembre 2025
Versions des composants
iOS
- SDK iOS (axeDevToolsXCUI v3.0.1)
- Projet Xcode de l'Analyseur iOS (axe-devtools-mobile-analyzer v1.7.0)
- Application de bureau de l'Analyseur iOS (axe-devtools-mobile-desktop-app v1.0.1)
- Pilote Appium 2 pour iOS (axe-appium-xcuitest-driver v2.1.0)
- (Issu de XCUITest v9.10.4)
- Pilote Appium 3 pour iOS (axe-appium3-xcuitest-driver v1.0.0)
- (Issu de XCUITest v10.4.3)
Comment mettre à jour : SDK iOS, Analyseur iOS (Passez à l'application de bureau de l'Analyseur Mobile), Pilote Appium pour iOS
Android
- SDK Android (axe-devtools-android v8.0.2)
- Analyseur Android (Axe Accessibility Analyzer v2.1.3)
- Pilote Appium 2 pour Android (axe-appium-uiautomator2-driver v2.1.0)
- (Issu de UiAutomator2 v4.2.8)
- Pilote Appium 3 pour Android (axe-appium3-uiautomator2-driver v1.0.0)
- (Issu de UiAutomator2 v5.0.1)
Comment mettre à jour SDK Android, Analyseur Android, Pilote Appium pour Android
Temps forts
Mises à jour des capacités existantes de balayage mobile et d'organisation des résultats
Application de bureau de l'Analyseur Mobile iOS
Avec notre application de bureau Mac facile à utiliser, vous pouvez vous connecter facilement à votre appareil pour les tests, sans avoir besoin d'un ID de bundle ou d'une clé API. Si vous avez utilisé le projet Xcode de l'Analyseur iOS, apprenez Comment passer à l'application de bureau de l'Analyseur Mobile.
Intégration Axe Developer Hub
Acheminer les résultats d'accessibilité de vos tests automatisés vers Axe Developer Hub - un emplacement central pour visualiser et gérer les problèmes d'accessibilité, où les analyses sont automatiquement regroupées par exécution de test. Bien que vous puissiez toujours trouver les résultats à la fois sur le tableau de bord mobile et dans le Developer Hub, le tableau de bord sera finalement retiré au profit du Developer Hub. Si vous utilisez encore le tableau de bord pour les résultats des tests automatisés, apprenez Comment passer à Axe Developer Hub.
Corrections
iOS
- Améliorations de la précision des règles suivantes : Taille de la cible tactile et espacement de la cible tactile
Android
- Mises à jour de la collecte de données de vue dans l'application Axe Accessibility Analyzer
- Améliorations de la précision des règles suivantes : Étiquette dans le nom, Nom d'élément imbriqué et Nom de l'interrupteur
CLI du rapporteur Axe DevTools
Mises à jour
Pilotes Appium
Pour maintenir la compatibilité rétroactive avec Appium 2 et également prendre en charge Appium 3, nous allons désormais publier deux pilotes Appium distincts pour chaque plateforme. Les noms de paquets actuels reviendront à la prise en charge d'Appium 2 et continueront avec les versions 2.x.x. Les nouveaux paquets seront appelés axe-appium3 et commenceront avec la version 1.0.0.
iOS
- axe-appium-xcuitest-driver@2.1.0 -> Compatible uniquement avec Appium 2
- axe-appium3-xcuitest-driver@1.0.0 -> Compatible uniquement avec Appium 3
Android
- axe-appium-uiautomator2-driver@2.1.0 -> Compatible uniquement avec Appium 2
- axe-appium3-uiautomator2-driver@1.0.0 -> Compatible uniquement avec Appium 3
Problèmes connus
Si vous rencontrez l'un des problèmes ci-dessous, veuillez nous contacter à helpdesk@deque.com ou support.deque.com. Nous pourrons alors vous informer une fois qu'il sera résolu ou d'une solution de contournement identifiée si aucune n'est indiquée.
- Les tests automatisés d'Axe DevTools Mobile fonctionnent sur les applications natives iOS, Android natives et React Native. Veuillez contacter votre représentant Deque pour des solutions de test d'accessibilité adaptées à votre pile technologique.
- Bien que vous puissiez obtenir certains résultats à partir de vues web ou de PDF rendus, nous recommandons fortement d'utiliser Axe DevTools pour le Web ou Axe Monitor pour les tests d'accessibilité les plus complets sur le web.
iOS
Propriété incorrecte isVisible d'XCTest
Les API d'accessibilité d'Apple peuvent signaler de manière incorrecte le contenu web à l'intérieur de WKWebView comme "isVisible", même lorsque la vue web est couverte par des superpositions natives (comme des vues modales, des alertes ou d'autres éléments de l'interface utilisateur native). Cela se produit parce que le système d'accessibilité vérifie si le conteneur WKWebView lui-même est visible, plutôt que si son contenu web est réellement dégagé et perceptible pour l'utilisateur.
Bug d'accessibilité iOS 26 avec les steppers
iOS 26 contient un bug d'accessibilité où les boutons de stepper par défaut ne signalent pas "atténué" par la technologie d'assistance pour indiquer qu'ils ne sont pas activés. En conséquence, les règles iOS considèrent également ces boutons comme activés même s'ils ne le sont pas. Un rapport de bug a été soumis à Apple, mais jusqu'à ce que ce problème soit résolu, les règles suivantes peuvent signaler des résultats sur des boutons d'incrément désactivés : AssociatedText, InaccessibleAction, et ColorContrast.
Jusqu'à ce qu'Apple corrige ce bug, la solution sera d'[ignorer les règles](ios-ignore-rule). Les boutons de stepper par défaut portent les identifiants "Decrement" et "Increment", et peuvent être ignorés par identifiant si nécessaire.
Color Contrast rule does not run when text and background colors are the same
Our Color Contrast rule depends on Machine Learning to detect text, which ensures that the text being scanned is visible to users of your application. In cases where the text contained in a view is the same color as the background, our Machine Learning algorithm is unable to detect if any text is present, so the Color Contrast rule does not run on this view.
Impossible de lancer des analyses sur des appareils physiques avec iOS Analyzer 1.4.7
Un paramètre de configuration dans iOS Analyzer 1.4.7 empêche les analyses de s'exécuter, retournant le message "Échec du test". Pour lancer des analyses sur un appareil physique, mettez à jour vers le dernier projet iOS Analyzer.
Erreur dans le projet Analyzer et test par identifiant de bundle dans la version 2.8.1
La fonctionnalité de test d'une application par identifiant de bundle a été rompue dans la version 2.8.1, ce qui a entraîné une erreur intitulée "No target application path specified via test configuration: ...". Mettez à jour vers la version 2.8.2 ou la dernière version pour résoudre l'erreur. Mettez à jour vers la dernière version dans le projet iOS Analyzer.
Erreur "Impossible de sérialiser AxeResult" dans le projet Analyzer v1.2.0 et SDK v2.12.3
Analyser certaines applications avec cette version de l'analyseur et du SDK entraînerait une "Could not Serialize AxeResult" erreur. Mettez à jour vers la dernière version pour corriger l'erreur. Mettez à jour vers le dernier projet iOS Analyzer.Mettez à jour vers le dernier SDK iOS.
Faux positif : LabelInName et LabelAtFront dans SwiftUI et applications multiplateformes
Certaines écrans peuvent signaler des faux positifs avec LabelInName et LabelAtFront en raison d'une propriété associatedText incorrecte trouvée (#1622)
La règle de prise en charge du type dynamique ne fonctionne pas avec le simulateur iOS 15 Pro
Un problème affecte le simulateur iPhone 15 Pro, ce qui empêche la règle de prise en charge du type dynamique de s'exécuter. Si vous êtes inscrit à la règle de prise en charge du type dynamique, vous ne pourrez pas la tester en utilisant un simulateur iPhone 15 Pro. Un bug a été signalé à Apple.
Règles contre les contrôles imbriqués
En examinant une amélioration pour nos règles, nous avons constaté que dans XCTest, les contrôles imbriqués ne sont pas renvoyés dans l'arborescence d'accessibilité. Un bug a été signalé à Apple. (#1110)
La règle de nommage ImageView nécessite un examen des résultats pour les applications UIKit
Dans les applications UIKit, une image sans un accessibilityLabel n'est pas focalisable avec les technologies d'assistance par défaut.
Les propriétés que nous utilisons pour vérifier la focalisabilité provenant d'Apple peuvent être inexactes lorsque accessibilityIdentifier est défini sur l'image. En raison de ce comportement inattendu, les résultats pour les problèmes de nommage ImageView dans les applications UIKit seront signalés comme nécessitant un examen. Un rapport de bug a été soumis à Apple. (#1633)
Faux positif : dans la vue à défilement, Label In Name, Label à l'avant, et la vue image & ActiveControlName v2.11.0
Nous travaillons activement sur des correctifs pour les faux positifs suivants et mettrons à jour cette liste au fur et à mesure des corrections.
In Scroll View
Peut signaler des problèmes pour le texte à l'intérieur des éléments se comportant comme des bannières. Pour rendre ces éléments accessibles à ceux qui nécessitent un texte plus grand, utilisez UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Si un UIImageView possède un accessibilityIdentifier défini mais n'est pas focalisable par VoiceOver, et a des contrôles focalisables imbriqués, ActiveControlName peut signaler un faux positif sur le UIImageView. Supprimer le accessibilityIdentifier résout le problème. Un bug a été signalé à Apple. (#1633)
Label In Name and Label At Front
Ces deux règles recherchent l'étiquette visible d'un contrôle parmi les éléments environnants pour aider à déterminer le statut de la règle. Dans certaines hiérarchies de vue, le texte environnant incorrect peut être détecté, causant l'échec de ces règles. (#1622)
Android
La règle de Contraste des couleurs ne s'exécute pas lorsque les couleurs du texte et du fond sont identiques
Notre règle de Contraste des couleurs repose sur l'apprentissage automatique pour détecter le texte, ce qui garantit que le texte analysé soit visible pour les utilisateurs de votre application. Dans les cas où le texte contenu dans une vue a la même couleur que l'arrière-plan, notre algorithme d'apprentissage automatique ne peut pas détecter la présence de texte, donc la règle de Contraste des couleurs ne s'exécute pas sur cette vue.
EditTextName sur Android 7 (SDK 24-25)
Les applications écrites en XML qui utilisent la fonctionnalité de texte d'indice peuvent constater des faux positifs avec la EditTextName règle. Le texte d'indice n'a été introduit qu'à partir d'Android 8 (SDK 26). Utiliser cet élément dans votre application XML assigne le texte d'indice à la valeur du champ de saisie de texte. Les versions plus récentes d'Android sont mieux équipées pour rendre cette expérience accessible.
Pour surmonter ce problème, notre première recommandation est d'exécuter vos tests sur des versions plus récentes d'Android. Si il est important que l'application soit accessible sur des versions antérieures d'Android, vous pourriez envisager d'éviter l'utilisation de la hintText fonctionnalité, car elle n'est pas officiellement supportée.
Vues cachées d'Android retournant des résultats
Vous pouvez voir des résultats pour des vues qui sont cachées derrière d'autres vues à l'écran. Ces vues cachées ne sont pas disponibles pour les technologies d'assistance, mais Axe DevTools Mobile les rapporte tout de même comme problèmes.
Nous travaillons sur une solution pour ce problème complexe. En attendant, si TalkBack ne peut pas accéder à ces vues, vous pouvez ignorer les problèmes correspondants. Ils ne nécessitent pas de correctif pour garantir l'accessibilité.
Erreur lors de l'exécution de la détection de texte de ML Kit
La détection de texte de ML Kit est requise dans de nombreuses règles d'Axe DevTools Mobile pour garantir la précision des résultats. La bibliothèque ML Kit devrait être importée automatiquement lors de la référence à Axe DevTools Mobile dans vos tests automatisés Espresso ou UIAutomator. Dans certains cas, cependant, l'importation automatique ne se produit pas et vous verrez l'erreur suivante dans le logcat:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
Pour surmonter ce problème, vous devez importer manuellement la bibliothèque ML Kit dans votre projet. Dans le fichier build.gradle de votre application, ajoutez ce qui suit sous les dépendances:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Espacement des cibles tactiles et Jetpack Compose
La règle d'Espacement des cibles tactiles ne s'exécute actuellement sur aucun composant de glissière écrit en Jetpack Compose. Aucune action ne peut être entreprise pour le moment. Cependant, une correction est bientôt disponible !
Erreur lors de l'enregistrement des résultats localement sur l'API 30
Sur Android API 30, un des emplacements où nous tentons de sauvegarder les résultats localement présente une erreur de permissions. Le résultat sera néanmoins enregistré en tant que fichier JSON malgré l'affichage de cette erreur. L'erreur peut être supprimée en commentant le code dans le bloc suivant:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
// finalizedBy {
// fetchAndroidFolderAxeReportsTask
// }
}
Veuillez noter que ce code ne doit être commenté que pour l'API 30 car il causera des problèmes lors de l'enregistrement local pour d'autres niveaux d'API.
Détection de défilement sur les applications hybrides et multiplateformes
Dans certaines applications hybrides et multiplateformes, nous pouvons renvoyer des résultats inattendus lorsque des éléments dans une vue de défilement sont partiellement hors écran. Pour tester un élément pour l'accessibilité, assurez-vous qu'il soit entièrement à l'écran avant de lancer le scan.
Application d'analyseur : le bouton d'action flottant disparaît
Introduite avec l'API 31 (Android 12) est la capacité de masquer les superpositions non-système. Afin d'utiliser l'application Axe Analyzer, veuillez vous assurer que ce paramètre n'est pas activé. Si vous avez choisi d'utiliser cette fonctionnalité pour ses améliorations de sécurité, nous vous recommandons de la laisser désactivée pour les versions de test internes où vous pouvez utiliser des données de test en toute sécurité et éliminer ainsi les préoccupations de sécurité. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
Pour utiliser l'application Axe Accessibility Analyzer, mettez à jour tous les appels à la méthode setHideOverlayWindows(true) en setHideOverlayWindows(false) sur les fenêtres d'activités affectées.
Capture d'écran manquante (boîte noire) dans le tableau de bord
Pour débloquer toutes les fonctionnalités de Axe DevTools pour Mobile, assurez-vous que les captures d'écran sont activées. Nous recommandons d'activer les captures d'écran sur une version de débogage ou de test de votre application qui utilise des données fictives pour éviter les préoccupations de sécurité. Consultez notre guide pour activer les captures d'écran dans les applications Android.
Crash lorsque `minifiedEnabled` est défini sur true
Si vous réduisez la taille de votre build, vous verrez un crash avec un journal d'erreurs signalant qu'un adaptateur n'a pas pu être trouvé lors de la tentative de connexion à la bibliothèque Axe DevTools. Désactivez la minification pour vos builds de débogage avec Axe DevTools implémenté. (#729)
Les builds avec r8 activé génèrent une erreur
Une build avec r8 activé peut tenter de réduire la taille de la bibliothèque axeDevTools, ce qui entraîne une erreur similaire à:
Caused by: java.lang.NullPointerException: throw with null exception
Pour résoudre cette erreur, ajoutez la ligne suivante à votre fichier ProGuard pour conserver les classes axeDevTools :
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)
keep class com.deque.** { *; }
Message d'erreur similaire à :
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
ou : No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
Les API Compose sont obsolètes, veuillez utiliser les APIs agnostiques en termes de mise en page pour continuer à recevoir des mises à jour. Si vous continuez à utiliser les API Compose et que vous rencontrez une erreur du type "Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)" ou "No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?", veuillez vous référer à l'API Compose setTestTag.
Message du journal :MlKitContext has not been initialized
Si vous rencontrez ce message, certains résultats de règles peuvent ne pas être renvoyés comme prévu lorsque cette règle utilise l'intelligence artificielle. Les règles affectées incluent Contraste des couleurs, Texte focalisable et Nom de l'élément imbriqué. (#841)
MAUI : règle de nom d'édition de texte
En raison des limitations de l'architecture de l'application MAUI dans l'écosystème Android, la règle de Nom d'édition de texte apparaîtra comme À revoir dans le tableau de bord lorsqu'une défaillance est suspectée pour la version SDK 5.5.0 et plus. Veuillez confirmer manuellement le comportement correct pour ce cas.
Android natif : boîtes de dialogue/modaux personnalisés
Lorsque vous implémentez des boîtes de dialogue ou modaux personnalisés qui n'étendent pas les contrôles natifs, vous pouvez obtenir des résultats pour des vues derrière le modal. Dans ce cas, nous recommandons de ne pas utiliser notre outil contre ces modaux ou boîtes de dialogue personnalisés et de les vérifier manuellement pour vous assurer qu'ils fonctionnent comme souhaité avec les technologies d'assistance.
Tableau de bord web
Capture d'écran manquante
Si la capture d'écran est absente de la page de détails du scan, il est possible que votre application empêche la prise de captures d'écran. Cela est souvent dû à des raisons de sécurité dans votre application de production. Envisagez de supprimer cette exigence pour votre version de test afin de permettre la pleine fonctionnalité dans le Tableau de Bord de Axe DevTools Mobile.
Certains noms de scan Android ne sont pas formatés
Certains noms de scan Android qui sont par défaut le titre de l'écran apparaîtront comme le nom de la classe complète, y compris l'identifiant du bundle. Dans une future version, cela sera résolu afin que le titre de l'écran soit formaté en un nom plus lisible. Comme solution provisoire, vous pouvez définir le nom du scan depuis le tableau de bord ou les frameworks. (#1643)
