Notes de version Axe DevTools Mobile 26 mars 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

26 mars 2025

Not for use with personal data

Versions des composants

iOS

  • SDK iOS (axeDevToolsXCUI v2.14.1)
  • Analyseur iOS (axe-devtools-mobile-analyzer v1.4.9)
  • Driver iOS Appium (axe-appium-xcuitest-driver v1.3.0)

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

Android

  • SDK Android (axe-devtools-android v6.2.0)
  • Analyseur Android (Axe Accessibility Analyzer v1.12.0)
  • Driver Android Appium (axe-appium-uiautomator2-driver v1.4.0)

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

Quoi de neuf ?

SDK

Lorsque vous rédigez vos tests, vous pouvez maintenant choisir d'ignorer règles expérimentales des SDK Axe DevTools Mobile. Puisque les règles expérimentales sont encore en cours de test et de développement, vous pouvez choisir de vous concentrer sur les résultats basés sur l'ensemble de règles standard.

Driver Appium

Vous avez plusieurs nouvelles options lorsque vous effectuez une analyse avec nos drivers Appium. Vous pouvez :

  • Ignorer les règles expérimentales lors de la configuration
  • Désactiver le téléchargement des analyses sur le Tableau de bord mobile, pour réduire le nombre de requêtes réseau et améliorer la vitesse des analyses
  • Créer un lien vers une analyse sur le Tableau de bord mobile à l'aide de la clé de résultat

En savoir plus sur la page Fonctionnalités Appium.

Corrections

iOS

  • Correction de l'erreur couldNotSerializeResult pour les vues ayant une zone infinie
  • Réduction des faux positifs pour les vues partiellement hors écran
  • Améliorations de la précision des règles de Contraste des couleurs et de Vues se chevauchant

Android

  • Correction d'un problème concernant la manière dont la capture d'écran est stockée dans l'analyse
  • Réduction des faux positifs pour les WebViews
  • Prévention des plantages sur l'écran de connexion de l'application Analyzer
  • Améliorations de la précision des règles suivantes : Espacement des cibles tactiles, Nom de l'ImageView, Étiquette à l'avant 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 résolu ou vous proposer une solution alternative si aucune n'est listée.

important
  • Les tests automatisés Axe DevTools Mobile fonctionnent 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 des vues web ou des PDF rendus, nous recommandons fortement d'utiliser Axe DevTools pour le Web ou Axe Monitor pour des tests d'accessibilité web les plus complets.

iOS

Impossible d'exécuter des analyses sur des appareils physiques avec l'analyseur iOS 1.4.7

Un paramètre de configuration dans Analyseur iOS 1.4.7 empêche les analyses de s'exécuter, renvoyant le message "Test Failed". Pour exécuter des analyses sur un appareil physique, mettez à jour le projet à l'analyseur iOS le plus récent.

Erreur dans le projet Analyzer et lors du test par ID de bundle en 2.8.1

La fonctionnalité de test d'une application par identifiant de bundle était défaillante dans la version 2.8.1, ce qui a abouti à une erreur intitulée « Aucun chemin d'application cible spécifié via la configuration du 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 au sein du projet iOS Analyzer.

Erreur « Could not Serialize AxeResult » dans le projet Analyzer v1.2.0 et SDK v2.12.3

Analyser certaines applications avec cette version de l'analyzer et du SDK pouvait entraîner une erreur « Could not Serialize 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 applications multiplateformes

Certaines écrans peuvent signaler de faux positifs avec LabelInName et LabelAtFront en raison d'une propriété associatedText incorrecte qui a été trouvée (#1622)

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 fonctionner. 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

En examinant une amélioration de nos règles, nous avons constaté que dans XCTest, les contrôles imbriqués ne sont pas retournés dans l'arborescence d'accessibilité. Un bug a été déposé auprès d'Apple. (#1110)

Règle du nom ImageView nécessitant un examen des résultats 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 focalisation depuis 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 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 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 à mesure que des correctifs seront publiés.

In Scroll View
Peut signaler des problèmes pour les textes au sein des éléments se comportant comme des bannières. Pour rendre ces éléments disponibles pour 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 à l'intérieur, ActiveControlName peut signaler un faux positif sur l'UIImageView. Retirer le `accessibilityIdentifier` résout le problème. Un bug a été déposé auprès d'Apple. (#1633)

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

Android

EditTextName sur Android 7 (SDK 24-25)

Les applications écrites avec XML qui utilisent la fonction de texte d'indication peuvent voir de faux positifs avec la EditTextName règle. Le texte d'indication n'a été introduit qu'avec Android 8 (SDK 26). Utiliser cet élément dans votre application XML attribuera le texte d'indication à la valeur du champ 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 faire vos tests sur des versions plus récentes d'Android. S'il est important que l'application soit accessible sur les versions Android antérieures, vous pourriez 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 sur 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 des 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 assurer l'accessibilité.

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

La détection de texte ML Kit est requise dans de nombreuses règles d'Axe DevTools Mobile pour assurer l'exactitude des résultats. La bibliothèque ML Kit devrait être automatiquement importée lors de la référence à Axe DevTools Mobile dans vos tests automatisés 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 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 fonctionne actuellement avec aucun composant de curseur écrit en Jetpack Compose. Aucune action ne peut être prise pour le moment. Cependant, un correctif est bientôt disponible !

Erreur lors de la sauvegarde des résultats localement sur API 30

Sur Android API 30, un des emplacements où nous essayons de sauvegarder 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
//    }
}

Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.

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 d'une vue déroulante sont partiellement hors de l'écran. Pour tester un élément pour l'accessibilité, assurez-vous qu'il est entièrement à l'écran avant de réaliser l'analyse.

Application Analyzer : 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 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 désactiver pour les versions de test internes où vous pouvez utiliser en toute sécurité des données de test 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é affectées.

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

Pour débloquer la pleine fonctionnalité 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 soucis 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 build, vous verrez un crash avec un journal d'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 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.** { *; }

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 du layout 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 à Compose setTestTag API.

Message de log :MlKitContext has not been initialized

Si vous rencontrez ce message, certains résultats des règles peuvent ne pas être retournés comme attendu lorsque cette règle utilise l'intelligence artificielle. Les règles concernées incluent Contraste des couleurs, Texte focusable et Nom d'élément imbriqué. (#841)

MAUI : Règle du nom du texte modifiable

En raison des limitations de l'architecture des applications MAUI dans l'écosystème Android, la règle du nom du texte modifiable apparaîtra comme À réviser 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 pour ce cas.

Android natif : Dialogues/Modaux personnalisés

Lorsque vous implémentez des dialogues 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 recommandons de ne pas exécuter notre outil contre ces modaux ou dialogues personnalisés et d'effectuer plutôt une vérification manuelle 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 manquante sur la page de détails de l'analyse, votre application peut empêcher les captures d'écran d'être prises. Souvent, cela est pour 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 mobile 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 complet de la classe incluant l'identifiant de 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 de l'analyse depuis le tableau de bord ou les frameworks. (#1643)