Notes de version d'Axe DevTools Mobile du 24 septembre 2025

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

24 septembre 2025

Not for use with personal data

Versions des composants

iOS

  • SDK iOS (axeDevToolsXCUI v3.0.0)
  • Analyseur iOS (axe-devtools-mobile-analyzer v1.6.0)
  • Pilote Appium iOS (axe-appium-xcuitest-driver v2.0.0)
    • (Dérivé de XCUITest v10.1.0)

Comment mettre à jour : SDK iOS, Analyseur iOS, Pilote Appium iOS

Android

  • SDK Android (axe-devtools-android v8.0.1)
  • Analyseur Android (Axe Accessibility Analyzer v2.1.2)
  • Pilote Appium Android (axe-appium-uiautomator2-driver v2.0.1)
    • (Dérivé de UiAutomator2 v5.0.1)

Comment mettre à jour SDK Android, Analyseur Android, Pilote Appium Android

Reporter CLI

  • Axe DevTools Reporter CLI v4.11.1

Quoi de neuf ?

Nouvelle règle Android : Élément focalisable imbriqué

Deque s'engage à proposer et optimiser des règles qui détectent avec précision les véritables problèmes d'accessibilité. Notre nouvelle règle pour Android aide à garantir que les utilisateurs de technologies d'assistance reçoivent toutes les informations nécessaires pour interagir avec l'interface utilisateur. En savoir plus sur notre règle Élément focalisable imbriqué.

Pilotes Appium hors ligne

Nous avons désormais à disposition des pilotes Appium hors ligne utilisables avec une clé de licence fournie par Deque. Cela peut être utile lors du travail avec des fournisseurs cloud ou pour optimiser les performances dans votre flux CI/CD en réduisant les requêtes réseau.

Support d'Appium 3

Depuis notre dernière version, Appium a sorti de nouvelles versions majeures de ses pilotes pour prendre en charge le serveur Appium 3. Nous avons mis à jour notre versions majeures pour nous aligner avec le dépôt public, et nous travaillons à garantir qu'il n'y ait pas d'impact sur la fonctionnalité Axe. Ces pilotes prennent en charge pleinement Appium 3. Nous espérions pouvoir assurer la rétrocompatibilité avec Appium 2, mais avons découvert un bug que nous travaillons à corriger au plus vite.

Corrections

iOS

  • Journalisation plus descriptive lorsque debugStatements sont activés
  • Améliorations de la précision des règles suivantes : Taille de la cible tactile et Espacement de la cible tactile

Android

  • Améliorations de la précision des règles suivantes : Valeur du texte édité et Nom de la vue d'image

Axe DevTools Reporter CLI

  • Correction d'un bug dans les rapports HTML pour le filtrage des problèmes par gravité dans le cas des règles mobiles pouvant signaler plusieurs gravités
  • Résolution d'un problème empêchant la génération des rapports HTML pour les noms de scan incluant des barres obliques

Mises à jour

iOS et Xcode 26

Notre équipe a minutieusement testé en prévision de la récente sortie d'iOS et Xcode 26. Cette mise à jour garantit que le cadre XCUI et le pilote Appium peuvent fonctionner sur iOS 26, utilisant Xcode 26. Nous avons identifié certaines modifications avec cette version qui ont impacté la manière dont nos règles fonctionnent, nous avons donc mis à jour Problèmes connus en conséquence et continuerons à le faire au fur et à mesure que nous en apprendrons davantage.

Clés hors ligne

Des automatisations hors ligne sont disponibles tant pour nos SDK que pour les pilotes Appium, et tous nécessiteront une clé de licence hors ligne à des fins d'authentification. Veuillez contacter votre représentant Deque ou contacter le support pour coordonner la livraison de votre clé de licence. Veuillez vous référer à la FAQ pour plus d'informations sur l'utilisation des SDK hors ligne pour des performances optimisées sans requêtes réseau.

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

important
  • Les tests automatisés d'Axe DevTools Mobile sont exécutés sur les applications iOS natives, Android natives et React Native. Veuillez contacter votre représentant Deque pour des solutions de test d'accessibilité sur votre pile technologique.
  • Bien que vous puissiez obtenir certains résultats à partir de vues Web ou de PDF rendus, nous vous recommandons vivement d'effectuer des tests en utilisant Axe DevTools pour le Web ou Axe Monitor pour les tests d'accessibilité les plus complets sur le Web.

iOS

Bogue d'accessibilité iOS 26 avec les steppers

iOS 26 contient un bogue d'accessibilité où les boutons par défaut des steppers n'annoncent pas "désactivé" 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 ce soit résolu, les règles suivantes peuvent signaler des résultats sur les boutons de steppers désactivés : AssociatedText, InaccessibleAction, et ColorContrast.

Jusqu'à ce qu'Apple corrige ce bogue, la solution sera d'ignorer les règles. Les boutons par défaut des steppers 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.

Impossible d'exécuter 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, renvoyant le message "Test échoué". Pour exécuter des analyses sur un appareil physique, mettez à jour le projet iOS Analyzer à la dernière version.

Erreur dans le projet Analyzer & Test par identifiant de bundle dans la version 2.8.1

La fonctionnalité de test d'une application par identifiant de bundle a été cassée 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 "Could not Serialize AxeResult" dans le projet Analyzer v1.2.0 & SDK v2.12.3

Analyser certaines applications avec cette version de l'analyzer et du SDK entraînerait une "Could not Serialize AxeResult" erreur. Mettez à jour vers la dernière version pour résoudre l'erreur. Mettez à jour le projet iOS Analyzer à la dernière version.Mettez à jour le SDK iOS à la dernière version.

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 empêchant la règle Supports Dynamic Type de s'exécuter. Si vous avez adhéré à la règle Supports Dynamic Type, vous ne pourrez pas la tester en utilisant un simulateur iPhone 15 Pro. Un bogue a été déposé auprès d'Apple.

Règles contre les contrôles imbriqués

En examinant une amélioration pour nos règles, nous avons découvert que dans XCTest, les contrôles imbriqués ne sont pas renvoyés dans l'arbre d'accessibilité. Un bogue a été déposé auprès d'Apple. (#1110)

La règle ImageView Name 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 focalisation d'Apple peuvent être inexactes lorsqu'un accessibilityIdentifier est défini sur l'image. En raison de ce comportement inattendu, les résultats des problèmes liés au nom d'ImageView dans les applications UIKit seront rapportés comme nécessitant un examen. Un rapport de bogue a été déposé auprès d'Apple. (#1633)

Faux positif : dans Scroll View, Label In Name, Label at Front, et Image View Name & ActiveControlName v2.11.0

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

In Scroll View
Peut signaler des problèmes pour le texte dans les éléments se comportant comme une bannière. Pour rendre ces éléments disponibles à ceux qui nécessitent un texte plus large, 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. En supprimant le accessibilityIdentifier résout le problème. Un bogue a été déposé auprès d'Apple. (#1633)

Label In Name and Label At Front
Ces deux règles cherchent l'étiquette visible d'un contrôle parmi les éléments voisins pour aider à déterminer le statut de la règle. Dans certaines hiérarchies de vues, le texte voisin incorrect peut être détecté, ce qui peut entraîner l'échec de ces règles. (#1622)

Android

La règle du contraste des couleurs ne s'exécute pas lorsque les couleurs du texte et de l'arrière-plan sont identiques

Notre règle du contraste des couleurs repose sur 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 du texte est présent, donc la règle du 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'indication peuvent voir des faux positifs avec le 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 assignera 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 l'accessibilité de l'application sur les versions Android antérieures est importante, vous pourriez envisager d'éviter l'utilisation du hintText fonctionnalité, car elle n'est pas officiellement prise en charge.

Vues Android cachées renvoyant des résultats

Vous pouvez voir des résultats pour des vues qui sont cachées derrière d'autres vues sur l'écran. Ces vues cachées ne sont pas accessibles aux technologies d'assistance, mais Axe DevTools Mobile les signale 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 correction pour garantir l'accessibilité.

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

La détection de texte avec ML Kit est requise dans de nombreuses règles d'Axe DevTools Mobile pour garantir l'exactitude des résultats. La bibliothèque ML Kit doit être importée automatiquement lors de la référence à Axe DevTools Mobile dans vos tests automatiques Espresso ou UIAutomator. Cependant, dans certains cas, 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 de votre application build.gradle , ajoutez ce qui suit sous 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 curseur écrit en Jetpack Compose. Aucune action ne peut être entreprise pour le moment. Cependant, une solution est en cours d'élaboration !

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

Sur Android API 30, l'un des emplacements où nous tentons de sauvegarder les résultats localement présente une erreur de permissions. Le résultat sera néanmoins sauvegardé 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 doit uniquement être commenté pour 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 quant à son accessibilité, assurez-vous qu'il est entièrement visible avant d'effectuer l'analyse.

Application Analyzer : le bouton d’action flottant disparaît

Introduite avec API 31 (Android 12), la capacité de cacher les superpositions non-système. Pour utiliser l'application Axe Analyzer, veuillez vous assurer que ce paramètre n'est pas activé. Si vous avez choisi de l'utiliser pour ses améliorations de sécurité, nous recommandons de le désactiver pour les versions internes de test où vous pouvez utiliser les 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) à setHideOverlayWindows(false) sur les fenêtres d'activités concernées.

Capture d'écran manquante (boîte noire) dans le tableau de bord

Pour débloquer toute la fonctionnalité 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 simulées 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 réglé à true

Si vous réduisez votre build, vous aurez un crash avec un journal des erreurs indiquant qu'un adaptateur n'a pas pu être trouvé lors de la tentative de connexion à la bibliothèque Axe DevTools. Désactivez la réduction 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 réduire la bibliothèque axeDevTools, entraînant 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)
Pour résoudre cette erreur, ajoutez la ligne suivante à votre fichier ProGuard pour conserver les classes axeDevTools :
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 API agnostiques au layout pour continuer à recevoir des mises à jour. Si vous continuez à utiliser les API Compose et rencontrez une erreur de 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 concernées incluent le Contraste des couleurs, le Texte focalisable et le Nom d'élément imbriqué. (#841)

MAUI : règle Nom de l'édition de texte

En raison des limitations de l'architecture des applications MAUI dans l'écosystème Android, la règle Nom de l'édition de texte apparaîtra comme Nécessite une révision dans le tableau de bord lorsqu'un échec est suspecté pour la version SDK 5.5.0 et supérieure. Veuillez confirmer le comportement correct manuellement dans ce cas.

Android native : dialogues/modales personnalisés

Lorsque vous implémentez des dialogues ou modales personnalisés qui ne prolongent pas les contrôles natifs, vous pouvez obtenir des résultats pour des vues derrière la modale. Dans ce cas, nous recommandons de ne pas exécuter notre outil sur ces modales ou dialogues personnalisés et de les vérifier manuellement pour vous assurer qu'ils se comportent comme souhaité avec les technologies d'assistance.

Tableau de bord Web

Capture d'écran manquante

Si la capture d'écran manque sur la page de détails de l'analyse, votre application peut empêcher les captures d'écran d'être prises. Souvent, cela est dû à des raisons de sécurité dans votre application de production. Envisagez de supprimer cette exigence pour votre build de test afin de permettre la pleine fonctionnalité dans le tableau de bord 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 sous la forme du nom complet de la classe, y compris l'identifiant du bundle. Dans une future version, cela sera résolu pour que le titre de l'écran soit formaté en un nom plus lisible. Comme solution de contournement, vous pouvez définir le nom du scan depuis le tableau de bord ou les frameworks. (#1643)