Notes de version d'Axe DevTools Mobile du 8 avril 2026
8 avril 2026
Versions des composants
iOS
- SDK iOS (axeDevToolsXCUI v3.3.0)
Comment mettre à jour : SDK iOS
Android
- SDK Android (axe-devtools-android v8.3.0)
- Plugin Gradle Android (axe-devtools-android-plugin v1.0.1)
Comment mettre à jour Plugin Gradle Android
Quoi de neuf ?
Commencez à utiliser Auto Scan avec les SDK Axe DevTools pour mobile - Espresso/UI Automator et XCUITest.
Auto Scan est le moyen le plus rapide d'ajouter des vérifications d'accessibilité à vos tests UI existants.
- Effectuez des analyses automatiquement lorsque vous interagissez avec votre application
- Configurez une seule fois, et Auto Scan s'adaptera pour intégrer tous les nouveaux tests que vous ajouterez à votre suite
- Lorsque les tests sont terminés, un résumé est imprimé directement dans vos journaux de test et un rapport HTML autonome est généré automatiquement
- Auto Scan prend en charge les environnements en ligne et hors ligne et s'intègre parfaitement à vos cadres de test existants sur iOS et Android
Si vous écrivez des tests pour des applications Android, veuillez noter que la bibliothèque axe-devtools-android n'est plus ajoutée en tant que dépendance directe — au lieu de cela, l'importation du plugin Gradle dans votre projet la récupérera automatiquement. Retrouvez tous les détails dans notre Instructions de configuration Android.
Actuellement, Auto Scan est disponible pour les SDK iOS et Android. Cette solution sera bientôt disponible pour nos pilotes Appium.
Correctifs
iOS
- Améliorations de la précision des règles suivantes : Taille de la cible tactile, Nom du contrôle actif, et Texte focalisable
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 est résolu ou d'une solution provisoire si cela n'est pas indiqué.
- Les tests automatisés d'Axe DevTools Mobile s'exécutent sur des applications iOS natives, Android natives et React Native. Veuillez contacter votre représentant Deque pour des solutions de test d'accessibilité sur votre stack technologique.
- Bien que vous puissiez obtenir certains résultats à partir de vues web ou de PDF rendus, nous vous recommandons fortement de tester en utilisant Axe DevTools pour le Web ou Axe Monitor pour les tests d'accessibilité les plus complets pour le web.
iOS
Faux positifs pour la règle de contraste des couleurs avec des arrière-plans dégradés sur les petits écrans
Lors de l'exécution de vérifications d'accessibilité sur des écrans plus petits ou avec des tailles de police réduites, la règle de contraste des couleurs peut signaler de faux positifs pour les arrière-plans en dégradé. Dans ces cas, elle peut être incapable de déterminer la couleur de premier plan et comparer à la place les couleurs de fond entre elles, entraînant un échec.
Pour contourner ce problème, essayez d'exécuter les vérifications d'accessibilité sur des appareils plus grands. Vous pouvez également choisir d'ignorer la règle dans vos tests et vérifier manuellement le contraste des couleurs pour ces vues.
Inexacte isVisible propriété de XCTest
Les API d'accessibilité d'Apple peuvent signaler incorrectement le contenu web à l'intérieur de WKWebView comme "isVisible", même lorsque la vue web est couverte par des superpositions natives (telles que des vues modales, des alertes ou d'autres éléments UI natifs). 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 par l'utilisateur.
Bogue d'accessibilité iOS 26 avec les stepper
iOS 26 contient un bogue d'accessibilité où les boutons stepper par défaut n'annoncent pas "grisé" 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 bogue a été déposé auprès d'Apple, mais jusqu'à ce que cela soit résolu, les règles suivantes peuvent signaler des résultats sur les boutons stepper désactivés : AssociatedText, InaccessibleAction, et ColorContrast.
Jusqu'à ce qu'Apple corrige ce bogue, la solution consiste à [ignorer les règles](ios-ignore-rule). Les boutons stepper par défaut ont 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.
Faux positif : LabelInName et LabelAtFront dans SwiftUI & 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 Supports Dynamic Type ne fonctionne pas avec le simulateur iOS 15 Pro
Un problème affecte le simulateur iPhone 15 Pro qui empêche la règle Supports Dynamic Type de s'exécuter. Si vous êtes inscrit à la règle Supports Dynamic Type, 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 cherchant à améliorer nos règles, nous avons trouvé que dans XCTest, les contrôles imbriqués ne sont pas retournés dans l'arbre d'accessibilité. Un bug a été signalé à Apple. (#1110)
Règle du nom ImageView nécessite une évaluation pour les applications UIKit
Dans les applications UIKit, une image sans `accessibilityLabel` n'est pas focalisable avec la technologie d'assistance par défaut.
Les propriétés que nous utilisons pour vérifier la focalisabilité d'Apple peuvent être inexactes lorsqu'un `accessibilityIdentifier` est défini sur l'image. En raison de ce comportement inattendu, les résultats pour les problèmes de nom d'ImageView dans les applications UIKit seront signalés comme nécessitant une évaluation. Un rapport de bug a été déposé chez Apple. (#1633)
Faux positif : Dans Scroll View, Label In Name, Label at Front, et Image View Name v2.11.0 & ActiveControlName
Nous travaillons activement à des corrections pour les faux positifs suivants et mettrons à jour cette liste au fur et à mesure que des correctifs seront publiés.
In Scroll View
Le texte à l'intérieur des éléments se comportant comme des bannières peut être marqué avec un message "Nécessite une évaluation". Pour rendre ces éléments disponibles pour ceux nécessitant un texte plus grand, utilisez UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Si une UIImageView a un `accessibilityIdentifier` défini mais n'est pas focalisable par VoiceOver, et qu'elle a des contrôles focalisables imbriqués, ActiveControlName peut signaler un faux positif sur la UIImageView. Retirer l'`accessibilityIdentifier` résout le problème. Un bug a été déposé chez 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 voisins pour aider à déterminer l'état de la règle. Dans certaines hiérarchies de vue, un texte voisin incorrect peut être détecté, causant l'échec de ces règles. (#1622)
Android
Faux positif de détection de texte annoncé
Dans certains cas, la technologie d'assistance se fonde sur AccessibilityEvent des descriptions du système Android pour annoncer l'information à l'utilisateur lorsqu'aucune autre annonce n'est disponible. Étant donné que AccessibilityEvents are triggered by user actions, we are unable to access the correct description if this information is not provided.
Pour éviter ce problème, assurez-vous que toutes les vues pertinentes sont marquées comme importantes pour l'accessibilité. Cela permettra à Talkback d'accéder à l'information de la vue, que notre outil pourra ensuite détecter.
La règle de contraste de couleur ne s'exécute pas lorsque les couleurs du texte et de l'arrière-plan sont identiques
Notre règle de contraste de couleur dépend de l'apprentissage automatique pour détecter le texte, ce qui garantit que le texte analysé est visible pour les utilisateurs de votre application. Dans les cas où le texte contenu dans une vue est de la même couleur que l'arrière-plan, notre algorithme d'apprentissage automatique est incapable de détecter si du texte est présent, donc la règle de contraste de couleur ne s'exécute pas sur cette vue.
EditTextName sur Android 7 (SDK 24-25)
Les applications écrites en XML qui utilisent la fonction de texte indicatif peuvent voir de faux positifs avec la EditTextName règle. Le texte indicatif n'a pas été introduit avant Android 8 (SDK 26). Utiliser cet élément dans votre application XML affectera le texte indicatif assigné à 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 de lancer vos tests sur des versions plus récentes d'Android. Si l'accessibilité de l'application sur les versions antérieures d'Android est importante, vous pouvez envisager d'éviter l'utilisation de la hintText fonction, car elle n'est pas officiellement prise en charge.
Vues cachées Android renvoyant 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 la technologie d'assistance, mais Axe DevTools Mobile les rapporte toujours comme des problèmes.
Nous travaillons sur une solution pour ce problème complexe. En attendant, si TalkBack ne peut pas atteindre 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 ML Kit
La détection de texte ML Kit est nécessaire dans de nombreuses règles d'Axe DevTools Mobile pour garantir l'exactitude des résultats. La librairie ML Kit devrait être automatiquement importée 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 la librairie ML Kit dans votre projet manuellement. Dans le build.gradle fichier de votre application, ajoutez ce qui suit sous dépendances :
debugImplementation 'com.google.mlkit:text-recognition:16.0.1'
Find a full working example of the ML Kit library being imported in the Android Mobile SDK Getting Started section, under Implementation
Espacement des cibles tactiles et Jetpack Compose
La règle Espacement des cibles tactiles ne s'exécute actuellement sur aucun composant slider écrit en Jetpack Compose. Aucune action ne peut être entreprise pour le moment. Cependant, un correctif arrive bientôt !
Erreur lors de l'enregistrement local des résultats sur API 30
Sur Android API 30, un des emplacements où nous tentons d'enregistrer les résultats localement a une erreur de permission. Le résultat sera toujours enregistré sous forme de fichier JSON malgré cette erreur affichée. 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 retourner des résultats inattendus lorsque des éléments dans une vue à défilement sont partiellement hors écran. Pour tester un élément pour l'accessibilité, assurez-vous qu'il est entièrement visible à l'écran avant d'exécuter l'analyse.
Application d'analyseur : Le bouton d'action flottant disparaît
Introduite avec l'API 31 (Android 12), la capacité de masquer les superpositions non-système. Pour utiliser l'application d'analyse Axe, 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 les préoccupations de sécurité de cette manière. 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) à setHideOverlayWindows(false) sur les fenêtres d'activité affectées.
Capture d'écran manquante (boîte noire) dans le tableau de bord
Pour débloquer toutes les fonctionnalités d'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 test ou de débogage 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.
Erreur lors de minifiedEnabled est réglé sur vrai
Si vous minifiez votre build, vous verrez un crash avec un journal d'erreurs indiquant qu'un adaptateur n'a pas été 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
Un build avec r8 activé peut tenter de minifier la bibliothèque axeDevTools ce qui entraîne une erreur similaire à :
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.** { *; }
Messages d'erreur lors de l'utilisation des API Compose
Les API Compose sont obsolètes, veuillez utiliser les API agnostiques de mise en page pour continuer à recevoir des mises à jour. Si vous continuez à utiliser les API Compose et 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.
MAUI : Règle de nom d'édition de texte
En raison des limitations de l'architecture des applications MAUI dans l'écosystème Android, la règle de nom d'édition de texte apparaîtra comme À Réviser sur le tableau de bord lorsqu'un échec est suspecté pour les versions SDK 5.5.0 et plus. Veuillez confirmer le comportement correct manuellement dans ce cas.
Android natif : Dialogues / Modaux personnalisés
Lorsque vous implémentez des dialogues ou modaux personnalisés qui n'étendent pas les contrôles natifs, vous pouvez obtenir des résultats pour les vues derrière le modal. Dans ce cas, nous recommandons de ne pas exécuter notre outil sur ces modaux ou dialogues personnalisés et plutôt de les vérifier manuellement pour s'assurer qu'ils fonctionnent avec la technologie d'assistance comme souhaité.
Tableau de bord Web
Capture d'écran manquante
Si la capture d'écran est absente de la page de détails de l'analyse, il se peut 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 une fonctionnalité complète dans le Tableau de bord Mobile d'Axe DevTools.
Certains noms d'analyse Android sont non formatés
Certains noms d'analyse Android qui sont par défaut le titre de l'écran apparaîtront comme le nom de la classe entière incluant l'identifiant de l'ensemble. Dans une future version, cela sera résolu afin que le titre de l'écran soit formaté en un nom plus lisible. Comme solution temporaire, vous pouvez définir le nom de l'analyse depuis le tableau de bord ou les frameworks. (#1643)
