Notes de publication d'axe DevTools Mobile (16 juillet 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

16 juillet 2025

Not for use with personal data

Versions des composants

Android

  • SDK Android (axe-devtools-android v7.0.1)
  • Analyseur Android (axe Accessibility Analyzer v2.0.1)
  • Pilote Android Appium (axe-appium-uiautomator2-driver v1.4.3)
    • (Dérivé de UiAutomator2 v4.2.4)

Comment mettre à jour : Android SDK, Android Analyzer, Android Appium Driver

Corrections

  • Correction d'une condition de concurrence dans la règle d'orientation de l'écran, de sorte que les captures d'écran affichent la même orientation dans laquelle l'analyse a été lancée
  • Implémentation de la sérialisation des captures d'écran sous forme de chaînes base64 pour les analyses Appium, afin que les données de capture d'écran soient accessibles dans les rapports et sur le tableau de bord mobile

Problèmes connus

Si vous rencontrez l'un des problèmes ci-dessous, veuillez nous contacter à helpdesk@deque.com ou support.deque.com. Nous serons alors en mesure de vous informer une fois le problème résolu ou d'une solution de contournement identifiée, si aucune n'est listée.

important
  • Les tests automatisés axe DevTools Mobile s'exécutent sur les applications natives iOS, 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 des résultats à partir de vues Web ou de PDF rendus, nous vous recommandons vivement de tester à l'aide d'axe DevTools pour le Web ou axe Monitor pour les tests d'accessibilité les plus complets pour le Web.

iOS

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

Notre règle de contraste des couleurs s'appuie sur 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 des couleurs ne s'exécute pas sur cette vue.

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 l'exécution des analyses, renvoyant le message « Test échoué ». Pour exécuter des analyses sur un appareil physique, mettez à jour vers le dernier projet iOS Analyzer.

Erreur dans le projet Analyzer et les tests par ID de bundle dans 2.8.1

La fonctionnalité de test d'une application par identifiant de bundle était interrompue dans la version 2.8.1, ce qui entraînait une erreur intitulée « Aucun chemin d'application cible spécifié via la configuration de test : ... ». 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 cadre du projet iOS Analyzer.

Erreur « Impossible de sérialiser AxeResult » dans le projet Analyzer v1.2.0 et le SDK v2.12.3

L'analyse de certaines applications avec cette version de l'analyseur et du SDK entraînerait une erreur « Impossible de sérialiser AxeResult ». Mettez à jour vers la dernière version pour résoudre 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 les applications multiplateformes

Certains é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 existe un problème affectant le simulateur iPhone 15 Pro qui empêche l'exécution de la règle Prend en charge le type dynamique. Si vous avez opté pour la règle « Prend en charge le type dynamique », vous ne pourrez pas la tester à l’aide d’un simulateur iPhone 15 Pro. Un bug a été signalé à Apple.

Règles contre les contrôles imbriqués

En recherchant une amélioration de 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)

Les résultats de la règle de nom ImageView doivent être examinés 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 des problèmes de nom ImageView dans les applications UIKit seront signalés comme Nécessite une révision. 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 v2.11.0 & ActiveControlName

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

En mode défilement
Peut signaler des problèmes de texte dans les éléments se comportant comme des bannières. Pour rendre ces éléments accessibles à ceux qui ont besoin d’un texte plus grand, utilisez UILargeContentViewer. (#622)

v2.11.0 Nom de la vue d'image et nom du contrôle actif
Si un UIImageView possède un `accessibilityIdentifier` attribut mais n'est pas focalisable par VoiceOver et qu'il contient des contrôles focalisables imbriqués, ActiveControlName peut signaler un faux positif sur le UIImageView. La suppression du `accessibilityIdentifier` résout le problème. Un bug a été signalé à Apple. (#1633)

Étiquette dans le nom et étiquette en avant
Ces deux règles recherchent l'étiquette visible d'un contrôle parmi les éléments proches pour aider à déterminer l'état de la règle. Dans certaines hiérarchies de vues, le texte incorrect à proximité peut être détecté, ce qui entraîne 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 de l'arrière-plan sont identiques

Notre règle de contraste des couleurs s'appuie sur 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 des couleurs ne s'exécute pas sur cette vue.

EditTextName sur Android 7 (SDK 24-25)

Les applications écrites avec XML qui utilisent la fonctionnalité de texte d'aide peuvent voir des faux positifs avec la EditTextName règle. Le texte d'aide n'a pas été introduit avant Android 8 (SDK 26). L'utilisation de cet élément dans votre application XML attribuera 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 d'utiliser la fonctionnalité, car elle n'est pas officiellement prise en charge. hintText

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 disponibles pour la technologie d'assistance, mais axe DevTools Mobile les signale toujours comme des problèmes.

Nous travaillons sur un correctif pour ce problème complexe. En attendant, si TalkBack ne parvient 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 du kit ML

La détection de texte du kit ML 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 automatiquement importée lors du référencement d'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 résoudre ce problème, vous devez importer manuellement la bibliothèque ML Kit dans votre projet. Dans le fichier de votre application, ajoutez les éléments suivants sous les dépendances : build.gradle

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 pas sur aucun composant de curseur écrit dans Jetpack Compose. Aucune action ne peut être entreprise pour le moment. Cependant, un correctif arrive bientôt !

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

Sur l'API Android 30, l'un des emplacements où nous essayons d'enregistrer les résultats localement présente une erreur d'autorisation. Le résultat sera toujours enregistré sous forme de 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 entraînera 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 les éléments d'une vue de défilement sont partiellement hors écran. Pour tester l’accessibilité d’un élément, assurez-vous qu’il est entièrement à l’écran avant d’effectuer l’analyse.

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

L'API 31 (Android 12) a introduit la possibilité de masquer les superpositions non système. Afin d'utiliser l'application axe Analyzer, assurez-vous 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 éteinte pour les versions de test internes où vous pouvez utiliser les données de test en toute sécurité et éliminer ainsi les problèmes de sécurité. Remarque : ce paramètre n’affecte pas l’application de scanner d’accessibilité de Google, car elle est considérée comme une superposition du système.

Pour utiliser l'application Axe Accessibility Analyzer, mettez à jour tous les appels à la méthode setHideOverlayWindows(true) à setHideOverlayWindows(false) les fenêtres d'activité concernées.

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

Pour déverrouiller toutes les fonctionnalités d'axe DevTools pour mobile, assurez-vous que les captures d'écran sont activées. Nous vous 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 lorsque `minifiedEnabled` est défini sur true

Si vous minifiez votre construction, vous verrez un crash avec un journal d'erreurs signalant qu'un adaptateur n'a pas pu être trouvé lors de la tentative de se connecter à la bibliothèque axe DevTools. Désactivez la minification pour vos constructions de débogage avec axe DevTools intégré. (#729)

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

Une construction 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)
    
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 indépendantes de la mise en page pour continuer à recevoir les mises à jour. Si vous continuez à utiliser les API Compose et que vous rencontrez une erreur dans le genre de `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 à API Compose setTestTag.

Message de log :MlKitContext has not been initialized

Si vous rencontrez ce message, certains résultats de règle peuvent ne pas être renvoyés comme prévu lorsque cette règle utilise l'intelligence artificielle. Les règles affectées incluent le contraste des couleurs, le texte pouvant recevoir le focus et le nom de l'élément imbriqué. (#841)

MAUI : Règle de modification du nom de texte

En raison des limitations du rendu de l'architecture de l'application MAUI dans l'écosystème Android, la Règle de modification du nom de texte s'affichera comme Nécessitant une révision dans le tableau de bord lorsqu'une défaillance est suspectée pour la version 5.5.0 du SDK et les versions ultérieures. Veuillez confirmer manuellement le comportement correct pour ce cas.

Android natif : boîtes de dialogue/modales personnalisées

Lorsque vous implémentez des boîtes de dialogue ou des 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 vous recommandons de ne pas exécuter notre outil de test sur ces fenêtres modales ou boîtes de dialogue personnalisées, mais plutôt de les vérifier manuellement pour vous assurer qu'elles se comportent avec la technologie d'assistance comme souhaité.

Tableau de bord Web

Capture d'écran manquante

Si la capture d'écran est manquante sur la page des détails de l'analyse, votre application peut empêcher la prise de captures d'écran. 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 une fonctionnalité complète dans le tableau de bord axe DevTools Mobile.

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

Certains noms de scan Android qui sont par défaut dans le titre de l'écran apparaîtront comme le nom de classe complet, y compris l'identifiant du bundle. Dans une version ultérieure, ce problème sera résolu afin que le titre de l'écran soit formaté en un nom plus lisible. Pour contourner ce problème, vous pouvez définir le nom du scan à partir du tableau de bord ou des frameworks. (#1643)