Notes de version d'avril 2023 d'Axe DevTools Mobile
19 avril 2023
Versions des composants
- axeDevToolsUIKit v3.4.0
- axeDevToolsXCUI v2.4.0
- axe-devtools-android v3.2.0
Quoi de neuf ?
Tests et linting automatisés pour React Native
Nous sommes ravis d'annoncer qu'à partir de cette version, Axe DevTools Mobile peut être utilisé pour effectuer des tests d'accessibilité dans XCUI et Espresso pour les applications construites avec React Native ! Ce n'est pas tout, nous avons également ajouté des règles pour React Native aux outils gratuits extension Axe Accessibility Linter VSCode et Axe DevTools Linter (anciennement connu sous le nom de Axe Linter Server) ! Ces deux outils fonctionnent main dans la main, permettant à votre équipe de détecter les bogues d'accessibilité dès que possible dans le processus de développement pour les applications React Native. [17298]
Pagination
Pour améliorer les temps de chargement du tableau de bord Axe DevTools Mobile, nous avons ajouté une pagination au tableau des analyses. Chaque page contient 50 analyses, et un contrôle sous le tableau permet de naviguer entre les pages. La bannière récapitulative continuera à indiquer le score d'accessibilité et le nombre total de problèmes restants pour toutes les analyses. Le filtrage et le tri affecteront l'ensemble des analyses. La sélection par lot des analyses est liée à chaque page, donc la case à cocher tout sélectionner ne sélectionnera que les 50 analyses de la page en cours. De plus, nous avons supprimé la possibilité de redimensionner le tableau, mais nous avons apporté des améliorations pour garantir que les données de chaque analyse soient disponibles à la largeur fixe. [17142]
Règles d'espacement des cibles tactiles WCAG 2.2
Chez Deque, nous nous engageons à fournir les tests d'accessibilité mobile native les plus précieux, ce qui inclut la couverture des critères de succès applicables de la WCAG. Avec l'arrivée de la WCAG 2.2, nous avons mis en œuvre des règles sur iOS et Android pour tester les Critère de succès de niveau AA 2.5.8 Taille de la cible (minimum) proposés. Ces nouvelles règles sont appelées Espacement des cibles tactiles pour se distinguer de nos règles existantes Taille de la cible tactile basées sur la Critère de succès de niveau AAA 2.5.5 Taille de la cible. Veuillez noter que ces nouvelles règles se basent sur des exigences plus souples par rapport aux règles existantes qui s'alignent plus étroitement avec les recommandations d'Apple et de Google. Étant donné que la WCAG 2.2 est encore au stade de recommandation candidate, ces règles rapporteront tous les résultats avec le statut IGNORÉ. Une fois que la WCAG 2.2 sera finalisée, ces règles seront réactivées dans une prochaine version. Pour plus d'informations sur les exigences que les règles d'espacement des cibles tactiles testent, veuillez consulter les guides de remédiation pour iOS et Android.
Axe DevTools Mobile pour iOS
Support iPadOS
axeDevToolsUIKit v3.4.0 et axeDevTools v2.4.0 prennent officiellement en charge les tests d'applications s'exécutant sur iPadOS via un simulateur ou un appareil physique. Dans le tableau de bord, ces analyses afficheront l'icône Apple dans le tableau et sur la page récapitulative des analyses, et les problèmes individuels indiqueront iPadOS. [18244]
Construction optimisée pour l'automatisation du framework XCUI
Dans la version de novembre 2022, nous avons introduit une construction optimisée pour l'automatisation de axeDevToolsUIKit qui a permis des tests unitaires sans authentification ni autres requêtes réseau. Avec cette version, nous proposons également une construction optimisée pour l'automatisation de axeDevToolsXCUI, afin que vous puissiez également effectuer des tests UI qui n'interagissent pas avec des réseaux externes. Cette construction est uniquement disponible via l'Artifactory de Deque, alors veuillez suivre ce guide pour télécharger le framework.
Nouvelles règles pour le framework XCUI
Nous travaillons constamment à améliorer et à étendre notre ensemble de règles, nous sommes donc ravis de partager que deux nouvelles règles ont été ajoutées au framework XCUI pour iOS. Le Contraste des couleurs et l'Orientation de l'écran étaient auparavant uniquement inclus dans axeDevToolsUIKit, mais sont désormais disponibles également dans axeDevToolsXCUI.
Amélioration de la règle des vues en collision
Après avoir intégré framework Vision d'Apple à la règle de Contraste des couleurs lors de la dernière version, nous avons vu l'opportunité de l'utiliser également dans notre règle Vues en collision. La règle mise à jour utilise désormais le ROC pour déterminer si le texte des vues superposées est en collision, réduisant ainsi les faux positifs.
Fonctionnalités supplémentaires
- Ajout de la possibilité de définir un nom d'analyse lors de l'enregistrement local
- Mise à jour de l'API de l'écran de connexion pour pouvoir se connecter à une instance privée
- L'URL de l'analyse est maintenant imprimée dans les journaux lors du téléchargement pour un accès facile
Axe DevTools Mobile pour Android
Amélioration de l'apprentissage automatique pour le contraste des couleurs
Dans la version de février 2023, nous avons annoncé que nous avons intégré la framework Vision d'Apple à notre règle de Contraste des couleurs iOS pour augmenter la précision et la portée de la règle. De même, nous utilisons maintenant MLKit de Google dans notre règle de Contraste des couleurs Android. Cela nous permet de détecter la couleur du texte plus précisément ainsi que de tester le contraste des couleurs sur les images de texte. Grâce à ces améliorations, vous pourriez voir de nouveaux problèmes de Contraste des couleurs signalés que nous ne pouvions pas détecter auparavant.
Règle de nom pour les boutons Compose
Dans axe-devtools-android v3.2.0, nous avons combiné le Nom de l'icône du bouton Compose et le Nom du bouton texte Compose en une seule règle appelée Nom du bouton Compose. Les analyses existantes conserveront tous les résultats des deux règles obsolètes, et elles pourront toujours être filtrées en utilisant la fonctionnalité de Jeux de règles personnalisées dans les paramètres du tableau de bord Axe DevTools Mobile.
Fonctionnalités supplémentaires
- Ajout de la possibilité de ajouter des règles personnalisées et analyser les dialogues en utilisant la Construction Optimisée pour l'Automatisation
- Ignorer les règles capacité maintenant disponible pour Compose
- Nouvelle API disponible pour réinitialiser les règles ignorées à la fois pour XML et Compose
Corrections de bugs
Axe DevTools Mobile pour iOS
LoginViewControllera été renommé enDequeLoginViewControllerpour éviter les problèmes lorsque des applications ont un contrôleur du même nom [23412]- La règle du titre de l'écran signale maintenant un problème au lieu d'être incomplète lorsqu'il n'y a pas de titre programmatique et rien de disponible dans la barre de navigation
- L'écran de connexion inclut maintenant des descriptions des champs désactivés
- Un bug a été corrigé avec la propriété
isVisibleToUserpour les alertes - Un problème a été résolu dans la règle du contraste des couleurs lié aux résultats en double pour plusieurs lignes de texte
- Le formatage du nom du produit dans le service d'utilisation a été mis à jour pour être cohérent avec les autres produits Deque
- Réduction des faux positifs dans plusieurs règles liées aux sélecteurs
Axe DevTools Mobile pour Android
- La règle de nom de TextField Compose passera maintenant si le TextField inclut une icône avec une description de contenu
- Un problème avec Proguard qui empêchait les utilisateurs de résoudre des collisions de dépendances a été résolu
- Le titre de l'écran sera maintenant formaté pour être lisible par un humain plutôt que sous la forme du nom de la classe
- Le formatage du nom du produit dans le service d'utilisation a été mis à jour pour être cohérent avec les autres produits Deque
Tableau de bord Axe DevTools Mobile
- Les règles de Focus sur la Vue Cachée Informative pour Android et de Focus sur la Vue Cachée Active sont maintenant correctement affichées comme expérimentales
- Un problème a été corrigé avec la fonction de lien de copie qui bloquait les nouveaux utilisateurs en lecture seule pour voir les problèmes
- Plusieurs bugs ont été corrigés liés à la modale pour l'édition des tags sur un scan dans le tableau
- La mise en page du tableau a été améliorée pour réduire le besoin de défilement horizontal
- La page d'accès refusé est maintenant réactive pour différentes tailles de fenêtres
- Des chargeurs séparés ont été créés pour le tableau et les données dans la bannière récapitulative
- Amélioration de la gestion des erreurs lors de la récupération des annonces
- Ajout d'un texte alternatif pour l'icône de fermeture sur la superposition qui apparaît lorsque des scans sont sélectionnés dans le tableau
- Des améliorations ont été apportées à la navigation via lecteur d'écran et clavier du tableau
- Un lien de saut a été ajouté pour aller directement au tableau
- Un problème a été corrigé où la page d'accès refusé n'était pas affichée correctement dans certains cas
- Le point d'exclamation qui apparaissait à côté du nombre de scans a été supprimé pour réduire la confusion
- Certaines règles de style de police ont été mises à jour
Problèmes connus
- Les tests automatisés de Axe DevTools Mobile fonctionnent sur les applications iOS natives, Android natives et React Native. Veuillez contacter votre représentant Deque pour des solutions de tests d'accessibilité sur votre pile technologique.
- Les règles ne fonctionneront pas dans les vues web ou les PDF rendus. Pour tester le contenu HTML, veuillez utiliser Axe DevTools pour le Web. Axe Monitor prend en charge l'analyse de l'accessibilité des PDFs.
Axe DevTools Mobile pour iOS
axeDevToolsUIKit.xcframework
Les vues construites avec SwiftUI ne peuvent pas être testées à l'aide de ce framework
Utilisez le framework axeDevToolsXCUI dans les tests d'interface utilisateur (UITesting) pour les vues SwiftUI.
Le support des règles personnalisées est disponible seulement en Swift
L'API des règles personnalisées n'est pas ouverte à Objective-C.
The "Visible to User" filter may not work properly on side menus and alerts.
We are actively working on a fix and are expecting it in the next release.
Faux positifs : InScrollView, SupportsDynamicType
Nous travaillons activement sur des corrections pour les faux positifs suivants et nous mettrons cette liste à jour au fur et à mesure que les corrections seront apportées.
InScrollView
InScrollView peut signaler des problèmes pour les textes à l'intérieur d'éléments se comportant comme une bannière. Pour rendre ces éléments accessibles à ceux qui ont besoin d'un texte plus grand, utilisez UILargeContentViewer.
SupportsDynamicType
Vous pourriez voir des faux positifs dans les scénarios suivants :
- Si vous utilisez la
UIContentSizeCategoryDidChangenotification, le framework peut incorrectement signaler que le texte ne répond pas au type dynamique dans les tests d'interface utilisateur (UITests). - Si vous utilisez
NotificationCenter.default.addObserver(forName:.., object:.., queue:.., using:..)pour répondre à laUIContentSizeCategoryDidChangenotification. - Si vous utilisez
traitCollectionDidChangesur la vue parente ou le contrôleur de vue d'un texte pour répondre au type dynamique.
axeDevToolsXCUI.xcframework
Sélecteur SwiftUI et Sélecteur UIKit
Les vues de sélection dans SwiftUI et UIKit peuvent entraîner un blocage du framework sur les simulateurs ou les appareils.
Le filtre « Visible pour l'utilisateur » peut ne pas fonctionner correctement sur les menus latéraux et les alertes.
Nous travaillons activement sur un correctif et nous l'attendons dans la prochaine version.
L'orientation paysage n'est pas officiellement prise en charge pour le moment
Cela sera corrigé dans une version ultérieure.
Faux positifs : A11yElementFocusBox, InScrollView
Nous travaillons activement sur des correctifs pour les faux positifs suivants et nous mettrons à jour cette liste à mesure que des correctifs seront publiés.
A11yElementFocusBox
Pour les vues qui sont hors écran, cette règle peut signaler à tort que le cadre de focus VoiceOver n'encapsule pas la vue.
InScrollView
InScrollView peut signaler des problèmes pour le texte au sein des éléments agissant comme des bannières. Pour rendre ces éléments accessibles aux personnes nécessitant un texte plus grand, utilisez UILargeContentViewer.
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.
Erreurs de compilation avec un projet Java8 et Axe DevTools Android 3.1.0
Essayez les importations suivantes :
implementation 'androidx.core:core-ktx:1.9.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'After importing the above library, if you see errors related to minSDK version for core-ktx library try the following in your project’s Android Manifest:
<uses-sdk tools:overrideLibrary="androidx.core" />
Les builds avec r8 activé génèrent une erreur
Une build avec r8 activé peut tenter de minimiser 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)
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 exister deux nœuds racines Compose en même temps.
Tableau de bord Axe DevTools Mobile
Le tableau ne peut pas être trié par nombre de problèmes
Depuis la version d'avril 2023, le tri par nombre de problèmes par analyse a été désactivé. Cela sera corrigé dans une prochaine version.
Certains noms de scan Android ne sont pas formatés
Certains noms de scan Android qui par défaut sont le titre de l'écran apparaîtront comme le nom complet de la classe 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. En attendant, vous pouvez définir le nom du scan depuis le tableau de bord ou les frameworks
