Notes de version Axe DevTools Mobile du 12 février 2025
12 février 2025
Versions des composants
- SDK Android (axe-devtools-android v6.1.0)
- Analyseur Android (Axe Accessibility Analyzer v1.11.0)
- Pilote Appium Android (axe-appium-uiautomator2-driver v1.3.0)
- CLI de rapport Axe DevTools v4.10.0
Comment mettre à jour : SDK Android, Analyseur Android, Pilote Appium Android, CLI de rapport Axe DevTools
Quoi de neuf ?
Pilote Appium Android
La fonctionnalité de règles d'ignorance est désormais disponible pour le pilote Appium Android ! Consultez notre documentation sur les règles d'ignorance pour Android en notant que pour le pilote Android d'Appium, les règles d'ignorance ne peuvent être mises en œuvre qu'avec toutes les vues, et non par sélection de vues ou de nom de classe. Pour en savoir plus sur comment ignorer les règles, voir notre documentation de configuration Appium. La prise en charge du pilote Appium iOS est bientôt disponible.
CLI de rapport Axe
Désormais, lorsque vous générez un rapport HTML à partir du fichier JSON de l'analyse mobile, vous pourrez voir le Score d'accessibilité en complément du nombre total de problèmes, du Taux de réussite et du décompte de la gravité des problèmes. Vous pouvez voir un score pour toutes les analyses ou sélectionner une analyse unique pour voir son score. Cet ajout est en accord avec le Score d'accessibilité que vous voyez sur le tableau de bord Axe DevTools Mobile.
Pour référence, le Taux de réussite est le pourcentage des exigences d'accessibilité qui ont été remplies avec succès sur le nombre total d'exigences vérifiées. Le Score d'accessibilité est calculé en fonction du nombre total d'écrans, du nombre de problèmes et de la gravité de ces problèmes.
Correctifs Android
- Résultats plus cohérents et fiables sur les applications natives et multiplateformes
- Améliorations de l'accessibilité pour l'application Analyzeur
- Mises à jour pour améliorer la performance et la précision de toutes les règles d'accessibilité
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 sera résolu ou d'une solution de contournement identifiée si aucune n'est répertoriée.
- 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 de vues Web ou de PDF rendus, nous vous recommandons vivement de tester avec Axe DevTools pour le Web ou Axe Monitor pour des tests d'accessibilité Web les plus complets.
iOS
Erreur dans le projet Analyzer et test par identifiant de bundle dans la version 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 entraînait une erreur titré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 projet Analyzer iOS.
Erreur "Impossible de sérialiser AxeResult" dans le projet Analyzeur v1.2.0 et SDK v2.12.3
Analyser certaines applications avec cette version de l'analyzeur 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 Analyzer iOS.Mettez à jour vers le dernier SDK iOS.
Faux positif : LabelInName et LabelAtFront dans les apps SwiftUI et multitechnologie
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 l'exécution de la règle Supports Dynamic Type. Si vous avez opté pour 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 examinant une amélioration de nos règles, nous avons trouvé qu'en XCTest, les contrôles imbriqués ne sont pas renvoyés dans l'arbre d'accessibilité. Un bug a été signalé à Apple. (#1110)
La règle Name de l'ImageView a besoin de révision pour les applications UIKit
Dans les applications UIKit, une image sans `accessibilityLabel` n'est pas focalisable avec les technologies d'assistance par défaut.
Les propriétés que nous utilisons pour vérifier l'aptitude à la mise au point 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 de l'ImageView dans les applications UIKit seront signalés comme nécessitant une révision. Un rapport de bug a été déposé auprès d'Apple. (#1633)
Faux Positif : Dans Scroll View, Label dans le Nom, Label à l'Avant, et v2.11.0 Nom de l'Image View & 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.
In Scroll View
Peut signaler des problèmes pour le texte dans des éléments se comportant comme des bannières. Pour que ces éléments soient accessibles à 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 qu'il 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. Retirer 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 cherchent l'étiquette visible d'un contrôle parmi les éléments proches pour aider à déterminer le statut de la règle. Dans certaines hiérarchies de vue, le texte incorrect voisin peut être détecté, ce qui entraîne l'échec de ces règles. (#1622)
Android
Espacement de la Cible Tactile et Jetpack Compose
La règle de l'Espacement de la Cible Tactile n'est actuellement pas appliquée à aucun composant slider écrit en Jetpack Compose. Aucune action ne peut être prise pour l'instant. Cependant, un correctif est en cours de réalisation!
Erreur lors de la sauvegarde des résultats localement sur API 30
Sur Android API 30, un des emplacements où nous tentons de sauvegarder les résultats localement présente une erreur de permissions. Le résultat sera tout de même 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
// }
}
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 du Défilement sur Applications Hybrides et Applications Multi-Plateformes
Dans certaines applications hybrides et multi-plateformes, nous pouvons obtenir des résultats inattendus lorsque des éléments dans une vue à défilement sont partiellement hors de l'écran. Pour tester l'accessibilité d'un élément, assurez-vous qu'il soit entièrement visible avant de lancer le scan.
Application Analyzer : Le Bouton d'Action Flottant Disparaît
Introduite avec API 31 (Android 12) est la capacité de masquer 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 d'utiliser cette fonctionnalité pour ses améliorations de sécurité, nous vous recommandons de le désactiver pour les versions internes de test 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) 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 la pleine fonctionnalité des 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 lorsque `minifiedEnabled` est réglé sur vrai
Si vous minifiez votre version, vous verrez un crash avec un journal d'erreurs signalant 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 semblable à :
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 dépréciées, veuillez utiliser les API agnostiques à la 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 à API Compose setTestTag.
Message de log :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 affectées incluent le Contraste des Couleurs, Texte Focalisable et Nom de l'Élément Imbriqué. (#841)
MAUI : règle du Nom de Texte Modification
En raison des limitations de l'architecture des applications MAUI dans l'écosystème Android, la règle du Nom de Texte Modification apparaîtra comme à Réviser dans le tableau de bord lorsqu'un échec est suspecté pour la version SDK 5.5.0 et au-delà. Veuillez confirmer le comportement correct manuellement dans ce cas.
Android Natif : Dialogues Personnalisés
Lorsque vous implémentez des dialogues 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 utiliser notre outil contre ces dialogues ou modaux personnalisés et de vérifier manuellement qu'ils se comportent bien 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 du scan, 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 version 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 au titre de l'écran apparaîtront comme le nom de la classe complet, y compris l'identifiant de bundle. Dans une version future, cela sera résolu de manière à ce 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 des frameworks. (#1643)
