Notes de version d'Axe DevTools Mobile du 14 février 2024
14 février 2024
Versions des composants
- Plugin Appium pour axeDevToolsMobile v1.0
Quoi de neuf ?
Solution Appium améliorée
- Nous sommes ravis d'annoncer une solution améliorée pour utiliser Appium afin d'effectuer des tests d'accessibilité sur vos applications mobiles. Auparavant, Axe DevTools Mobile prenait en charge les tests Appium avec des applications natives iOS ou Android et nécessitait l'intégration de code Axe dans votre application. Nous proposons désormais un plugin Appium qui vous permet de tester n'importe quelle application, qu'elle soit native ou multiplateforme. Vous pouvez utiliser n'importe quel client Appium pour vos scripts de test, et vous n'avez pas besoin d'intégrer de code Deque dans votre application. L'installation et la mise en route sont simples. Commencez avec Appium
- La version initiale du plugin couvre cinq règles basées sur les normes WCAG. Nous allons améliorer notre ensemble de règles dans les mois à venir. Règles Appium
- Si vous utilisez déjà nos capacités Appium d'origine pour obtenir les tests d'accessibilité mobile dont vous avez besoin, vous pouvez continuer à les utiliser pour le moment. Nous passerons au nouveau plugin Appium à l'avenir une fois que l'ensemble de règles sera complet. Restez à l'écoute pour plus de mises à jour.
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 avertir une fois le problème résolu ou d'une solution de contournement identifiée si aucune n'est listée.
- Axe DevTools Mobile effectue des tests automatisés sur les applications natives iOS, Android et React Native. Veuillez contacter votre représentant Deque pour des solutions de tests d'accessibilité sur votre pile technologique.
- Bien que vous puissiez obtenir certains résultats à partir de vues web ou de PDF rendus, nous recommandons vivement d'utiliser Axe DevTools pour le Web ou Axe Monitor pour des tests d'accessibilité web les plus complets.
Axe DevTools Mobile pour iOS
Erreur dans le projet Analyzer et tests par ID de bundle en 2.8.1
La fonctionnalité de test d'une application par identifiant de bundle a été rompue dans la version 2.8.1, entraînant 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 au sein du projet Analyzer iOS.
Les vues hors écran peuvent afficher des résultats pour les apps SwiftUI testées sous iOS 17
Avec la version 2.8.0 (Voir les notes de version), les résultats ne sont plus signalés sur des vues non visibles, y compris hors écran ou cachées par une autre vue. Nous avons découvert que dans les applications SwiftUI testées sous iOS 17, certains résultats apparaissent encore. (#1383)
La règle « Prend en charge le type dynamique » ne fonctionne pas avec le simulateur iOS 15 Pro
Il existe un problème affectant le simulateur iPhone 15 Pro qui empêche la règle « Prend en charge le type dynamique » de s'exécuter. Si vous êtes inscrit à la règle « Prend en charge le type dynamique », 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
Lors de l'examen d'une amélioration pour 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 la vue de défilement, 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 rendre ces éléments accessibles à ceux qui nécessitent un texte plus grand, utilisez UILargeContentViewer. (#622)
ActiveControlName
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. Supprimer le `accessibilityIdentifier` résout le problème. Un bug a été signalé à Apple. (#1226)
Faux négatif : nom de la vue d'image, texte focalisable sous iOS 13 à 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` défini mais n'est pas focalisable par VoiceOver, ImageViewName peut signaler un faux négatif sur l'UIImageView. Supprimer le `accessibilityIdentifier` résout le problème. Un bug a été signalé à Apple. (#1226)
Focusable Text
Les éléments marqués comme non accessibilité peuvent signaler des résultats incorrects en raison d'un bug dans le framework d'Apple.
Axe DevTools Mobile pour Android
Crash lors de l'utilisation de Proguard
Si votre build de débogage ou de test utilise Proguard, suivez les étapes pour ignorer Deque dans vos paramètres Proguard.
Crash lorsque `minifiedEnabled` est réglé sur true
Si vous minifiez votre build, 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, 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)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)
Si vous rencontrez une erreur du type `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`, veuillez nous contacter à helpdesk@deque.com ou support.deque.com pour obtenir de l'aide. Dans certaines conditions, il peut y avoir deux nœuds racine Compose existant en même temps.
Tableau de bord Mobile Axe DevTools
Capture d'écran manquante
Si la capture d'écran est absente de la page des détails de l'analyse, votre application peut empêcher la prise de captures d'écran. C'est souvent pour des raisons de sécurité dans votre application en production. Envisagez de supprimer cette exigence pour votre version de test afin de permettre un fonctionnement complet 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 sous la forme du nom de classe complet incluant l'identifiant du bundle. Dans une version future, 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)
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 le Nom de la vue active lors de l'utilisation de la propriété labeledBy pour fournir une étiquette à un élément bouton. Nous explorons des solutions et prévoyons une correction dans une version future.
React Native : Étiquette dans le nom et Étiquette devant
En raison des limitations des informations disponibles via la plateforme Appium, nous avons identifié que les règles Étiquette dans le nom et Étiquette devant ne peuvent pas s'exécuter pour les applications construites avec React Native. Nous explorons des solutions et prévoyons une correction dans une version future.
React Native : Inspecter la hiérarchie des vues affichant l'écran précédent
Parfois, la propriété de source de 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 de l'écran précédent en utilisant la fonction d'inspection sur le tableau de bord. Pour résoudre le problème, ajoutez une petite temporisation avant d'appeler l'API de source de page pour déclencher l'analyse d'accessibilité. Exemple :
await driver.pause(1000);
const result = await driver.getPageSource();
