Notes de mise à jour d'Axe DevTools Mobile du 22 avril 2026

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

22 avril 2026

Not for use with personal data

Versions des composants

iOS

  • Pilote iOS Appium 2 (axe-appium2-xcuitest-driver v2.4.0)
    • (Dérivé de XCUITest v9.10.4)
  • Pilote iOS Appium 3 (axe-appium3-xcuitest-driver v_1.3.0)
  • (Dérivé de XCUITest v10.33.0)

Comment mettre à jour : Pilote iOS Appium

Android

  • Pilote Android Appium 2 (axe-appium2-uiautomator2-driver v2.4.0)
    • (Dérivé de UiAutomator2 v4.2.8)
  • Pilote Android Appium 3 (axe-appium3-uiautomator2-driver v1.3.0)
  • (Dérivé de UiAutomator2 v7.1.0)

Comment mettre à jour Pilote Android Appium

Quoi de neuf ?

Commencez à utiliser l'analyse automatique avec les pilotes Appium d'Axe DevTools pour mobile.

L'analyse automatique est le moyen le plus rapide d'ajouter des vérifications d'accessibilité à vos tests d'interface utilisateur existants.

  • Effectuez des analyses automatiquement pendant que vous interagissez avec votre application
  • Configurez une seule fois, et l'analyse automatique s'adaptera à tout nouveau test ajouté à 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
  • L'analyse automatique prend en charge les environnements en ligne et hors ligne et s'intègre parfaitement à votre suite de tests

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 ainsi vous avertir une fois qu'il est résolu ou d'une solution de contournement identifiée si aucune n'est répertoriée.

important
  • Axe DevTools Mobile exécute des tests automatisés sur les applications iOS natives, 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 vous recommandons fortement d'utiliser Axe DevTools pour le Web ou Axe Monitor pour des tests d'accessibilité web les plus complets.

iOS

Faux positifs pour la règle de contraste des couleurs avec des arrière-plans en dégradé sur de petits écrans

Lors de l'exécution des vérifications d'accessibilité sur des écrans de petite taille ou avec des tailles de police réduites, la règle de contraste des couleurs peut signaler des faux positifs pour des arrière-plans en dégradé. Dans ces cas, il peut être impossible de déterminer la couleur de premier plan et à la place, comparer les couleurs de fond entre elles, entraînant un échec.

Pour contourner ce problème, essayez d'effectuer des 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é d'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, alertes ou d'autres éléments d'interface utilisateur natives). Cela se produit car le système d'accessibilité vérifie si le conteneur WKWebView lui-même est visible, plutôt que de savoir si son contenu web est réellement non obstrué et perceptible pour l'utilisateur.

Bug d'accessibilité d'iOS 26 avec les stepper

iOS 26 contient un bug d'accessibilité où les boutons stepper par défaut n'annoncent pas "atténué" par la technologie d'assistance pour indiquer qu'ils ne sont pas activés. En conséquence, les règles iOS voient également ces boutons comme activés même s'ils ne le sont pas. Un rapport de bug 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 bug, la solution sera d'[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 & Apps 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

Il y a un problème affectant 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é déposé auprès d'Apple.

Règles contre les contrôles imbriqués

Lors de l'examen d'une amélioration pour nos règles, nous avons découvert 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 de nommage ImageView : besoin d'examen des résultats pour les applications UIKit

Dans les applications UIKit, une image sans `accessibilityLabel` n'est pas focalisable par la technologie d'assistance par défaut.
Les propriétés que nous utilisons pour vérifier la focalisation 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 nommage ImageView dans les applications UIKit seront signalés comme nécessitant un examen. Un rapport de bug a été déposé auprès d'Apple. (#1633)

Faux positifs : dans Scroll View, Label dans Nom, Label en tête et v2.11.0 Image View Name & ActiveControlName

Nous travaillons activement sur des correctifs pour les faux positifs suivants et mettrons à jour cette liste au fur et à mesure des correctifs.

In Scroll View
Le texte dans des éléments se comportant comme des bannières peut être signalé par un message "Nécessite un examen". Pour rendre ces éléments disponibles à ceux qui nécessitent un texte plus grand, utilisez UILargeContentViewer. (#622)

v2.11.0 Image View Name & Active Control Name
Si un UIImageView a un `accessibilityIdentifier` défini mais n'est pas focalisable par VoiceOver, et qu'il a des contrôles focalisables imbriqués, ActiveControlName peut signaler un faux positif sur l'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 à proximité pour aider à déterminer le statut de la règle. Dans certaines hiérarchies de vues, le texte incorrect à proximité peut être détecté, causant l'échec de ces règles. (#1622)

Android

Faux positifs sur la détection de texte annoncé

Dans certains cas, la technologie d'assistance s'appuie sur AccessibilityEvent des descriptions du système Android pour annoncer des informations à l'utilisateur lorsqu'aucune autre annonce n'est disponible. Puisque 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 aux informations depuis la vue, que notre outil pourra ensuite détecter.

La règle de contraste des couleurs ne fonctionne pas lorsque les couleurs du texte et de l'arrière-plan sont les mêmes

Notre règle de contraste des couleurs dépend de l'apprentissage automatique pour détecter le texte, ce qui garantit que le texte scanné 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 un texte est présent, donc la règle de contraste des couleurs ne s'applique pas à cette vue.

EditTextName sur Android 7 (SDK 24-25)

Les applications écrites avec XML qui utilisent la fonctionnalité de texte d'indication peuvent rencontrer des faux positifs avec la EditTextName règle. Le texte d'indication n'a été introduit qu'à partir d'Android 8 (SDK 26). Utiliser cet élément dans votre application XML assignera le texte d'indication à 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. S'il est important que l'application soit accessible sur les versions antérieures d'Android, vous pouvez envisager d'éviter l'utilisation de la hintText fonctionnalité, car elle n'est pas officiellement supportée.

Résultats des vues cachées Android

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 signale quand même comme problèmes.

Nous travaillons sur un correctif 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 correction pour garantir l'accessibilité.

Erreur lors de l'exécution de la détection de texte avec ML Kit

La détection de texte avec ML Kit est requise dans de nombreuses règles 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 build.gradle fichier de votre application, ajoutez ce qui suit sous dependencies :

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 Implémentation

Espacement des cibles tactiles et Jetpack Compose

La règle d'espacement des cibles tactiles ne fonctionne actuellement pas sur les composants de curseur écrits dans Jetpack Compose. Aucune action ne peut être entreprise pour le moment. Cependant, un correctif est à venir bientôt !

Erreur lors de l'enregistrement des résultats localement sur API 30

Sur Android API 30, l'un des emplacements où nous tentons d'enregistrer les résultats localement présente une erreur de permissions. Le résultat sera toujours enregistré en tant que 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 API 30 car cela causera des problèmes lors de l'enregistrement local sur d'autres niveaux d'API.

Détection de défilement sur applications hybrides et multiplateformes

Dans certaines applications hybrides et multiplateformes, nous pouvons retourner des résultats inattendus lorsque des éléments dans une vue de défilement sont partiellement hors de l'écran. Pour tester un élément pour l'accessibilité, assurez-vous qu'il est entièrement à l'écran avant d'effectuer l'analyse.

Application Analyzer : bouton d'action flottant disparaît

Introduite avec l'API 31 (Android 12) est la capacité de masquer les superpositions non-systèmes. Pour utiliser l'application Axe Analyzer, assurez-vous que ce réglage n'est pas activé. Si vous avez choisi d'utiliser cette fonctionnalité pour ses améliorations de sécurité, nous vous recommandons de la désactiver pour les builds de test internes où vous pouvez utiliser des données de test en toute sécurité et ainsi é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) vers setHideOverlayWindows(false) sur les fenêtres d'activité concerné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 débogage ou de test de votre application qui utilise des données fictives pour éviter les problèmes de sécurité. Consultez notre guide pour activer les captures d'écran dans les applications Android.

Crash quand minifiedEnabled est réglé sur true

Si vous minimisez votre build, vous verrez un crash avec un journal d'erreurs indiquant qu'un adaptateur ne peut pas être trouvé lors de la tentative de connexion à la bibliothèque Axe DevTools. Désactivez la minimisation pour vos builds de débogage avec Axe DevTools implémenté. (#729)

Les builds avec r8 activé génèrent une erreur

Une compilation avec r8 activé peut tenter de minimiser 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 APIs Compose

Les APIs Compose sont obsolètes, veuillez utiliser les APIs agnostiques de mise en page pour continuer à recevoir des mises à jour. Si vous continuez à utiliser les APIs Compose et rencontrez une erreur du type `Exactement '1' nœud attendu mais trouvé '2' nœuds qui satisfont : (isRoot)` ou `Aucune vue initialisée, avez-vous appelé AxeDevToolsCompose.setComposeTestRule()?`, veuillez vous référer à l'API Compose setTestTag.

MAUI : Règle de nommage du texte d’édition

En raison des limitations de l'architecture des applications MAUI sur l'écosystème Android, la règle de nommage du texte d’édition apparaîtra comme À Revoir dans le tableau de bord lorsqu'un échec est suspecté pour la version SDK 5.5.0 et ultérieure. Veuillez confirmer le comportement correct manuellement dans ce cas.

Android natif : Dialogues / Modals personnalisés

Lors de l'implémentation de dialogues ou modals personnalisés qui n'extensionnent 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 utiliser notre outil sur ces modals ou dialogues personnalisés et de les vérifier manuellement pour garantir 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 des détails de l'analyse, votre application peut empêcher 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 Axe DevTools.

Certains noms d'analyse Android ne sont pas formatés

Certains noms d'analyse Android qui par défaut correspondent au titre de l'écran apparaîtront comme le nom complet de la classe, y compris l'identifiant du bundle. Dans une version future, cela sera résolu pour que le titre de l'écran soit formaté en un nom plus lisible. En attendant, vous pouvez définir le nom de l'analyse depuis le tableau de bord ou les frameworks. (#1643)