Notes de publication d'axe DevTools Mobile du 15 mai 2024
15 mai 2024
Versions des composants
- Plugin axeDevToolsMobile Appium v2.1.0
Comment mettre à jour : Plugin Appium
Quoi de neuf ?
Appium
- Nous avons ajouté quatre nouvelles règles au plugin Appium : Texte focalisable, Action inaccessible, Nom accessible significatif et Dans ScrollView. Règles d'Appium
- Nous avons ajouté l'option permettant de définir un nom de scan et des balises avant de lancer un scan d'accessibilité. Configuration Appium Exemples d'automatisation Appium
- Sur Android, les règles s'exécuteront désormais sur toutes les vues cliquables, pas seulement sur les boutons, et nous avons introduit la prise en charge des tests d'applications créées avec Jetpack Compose.
Corrections
Appium
- Correction des faux positifs lors de l'analyse des applications React Native pour les règles Étiquette dans le Nom et Étiquette à l'Avant.
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.
- 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.
axe DevTools Mobile pour iOS
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.
Les vues hors-champ peuvent afficher les résultats des applications SwiftUI testées dans iOS 17
Avec la version 2.8.0 (Voir les notes de publication), les résultats ne sont plus signalés sur les vues qui ne sont pas visibles, y compris hors-champ ou masquées par une autre vue. Nous avons découvert que dans les applications SwiftUI testées dans iOS 17, certains résultats apparaissent encore. (#1383)
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)
Faux positif : dans Scroll 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.
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)
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. (#1226)
Faux négatifs : nom de la vue d'image, Texte pouvant être mis au point dans iOS 13 via iOS 14.8.1
Nous travaillons activement sur des correctifs pour les faux négatifs suivants et mettrons à jour cette liste au fur et à mesure que des correctifs seront publiés.
Image View Name
Si un UIImageView a un `accessibilityIdentifier` attribut défini mais n'est pas focalisable par VoiceOver, ImageViewName peut signaler un faux négatif sur le UIImageView. La suppression du `accessibilityIdentifier` résout le problème. Un bug a été signalé à Apple. (#1226)
Texte focalisable
Les éléments marqués comme éléments non accessibles peuvent signaler des résultats incorrects en raison d'un bogue dans le framework d'Apple.
axe DevTools Mobile pour Android
Crash lors de l'utilisation de Proguard
Si votre version de débogage ou de test utilise Proguard, suivez les étapes pour ignorer Deque dans vos paramètres Proguard.
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()?
Si vous 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 .
Tableau de bord axe DevTools Mobile
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)
Axe DevTools Mobile pour Appium
Faux positif : nom de la vue active
En raison des limitations des informations disponibles via la plateforme Appium, nous avons identifié un faux positif pour Nom de Vue Active lors de l'utilisation de la propriété labeledBy
pour fournir une étiquette pour un élément de bouton. Nous explorons des solutions et attendons un correctif dans une future version.
React Native et .NET MAUI : étiquette dans le nom et étiquette au début
En raison des limitations des informations disponibles via la plateforme Appium, nous avons identifié que les règles Label In Name et Label At Front ne peuvent pas fonctionner pour les applications créées avec React Native. Nous explorons des solutions et attendons un correctif dans une future version.
React Native : inspecter la hiérarchie des vues affichant l'écran précédent
Parfois, la propriété source de la page Appium nécessite un temps supplémentaire pour être mise à jour entre les analyses. Si cela se produit, vous verrez la hiérarchie des vues d'un écran précédent lorsque vous utilisez la fonction d'inspection sur le tableau de bord. Pour résoudre ce problème, ajoutez un petit délai d’attente avant d’appeler l’API source de la page pour déclencher l’analyse d’accessibilité. Exemple :
await driver.pause(1000); const result = await driver.getPageSource();