Notes de version d'axe DevTools Mobile d'avril 2023
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 de React Native
Nous sommes ravis d’annoncer qu’à partir de cette version, axe DevTools Mobile peut être utilisé pour exécuter des tests d’accessibilité dans XCUI et Espresso pour les applications créées avec React Native ! Mais ce n'est pas tout, nous avons également ajouté des règles React Native à l'extension gratuite axe Accessibility Linter VSCode et axe DevTools Linter (officiellement connu sous le nom d'axe Linter Server) ! Ces deux outils vont de pair, afin que votre équipe puisse détecter les bugs d’accessibilité le plus tôt possible dans le processus de développement des applications React Native. [17298]
Pagination
Pour améliorer les temps de chargement du tableau de bord axe DevTools Mobile, nous avons ajouté la pagination au tableau des scans. Chaque page contient 50 analyses et il y a une commande sous le tableau pour naviguer entre les pages. La bannière récapitulative continuera d'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 total des analyses. La sélection par lots d'analyses est liée à chaque page, donc la case à cocher 'Tout sélectionner' sélectionnera uniquement les 50 analyses de la page actuelle. 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 analyses sont disponibles à la largeur fixe. [17142]
WCAG 2.2 Touch Target Spacing Rules
Chez Deque, nous nous engageons à fournir les tests d'accessibilité mobile natifs les plus utiles, qui incluent la couverture des critères de réussite WCAG applicables. Avec WCAG 2.2 à l'horizon, nous avons mis en œuvre des règles sur iOS et Android pour tester le critère de réussite de niveau AA 2.5.8 Taille cible (minimum) proposée(https://www.w3.org/TR/WCAG22/#target-size-minimum). Ces nouvelles règles sont appelées Espacement des cibles tactiles pour les distinguer de nos règles existantes sur la taille des cibles tactiles qui sont basées sur le critère de réussite de niveau AAA 2.5.5 Taille de la cible. Veuillez noter que ces nouvelles règles fonctionnent sur la base d'exigences plus clémentes par rapport aux règles existantes qui s'alignent plus étroitement sur les recommandations d'Apple et de Google. Étant donné que WCAG 2.2 est encore au stade de recommandation candidate, ces règles signaleront tous les résultats avec le statut IGNORÉ. Une fois WCAG 2.2 finalisé, ces règles seront rétablies dans une prochaine version. Pour plus d'informations sur les exigences testées par les règles d'espacement des cibles tactiles, veuillez consulter les guides de correction pour iOS et Android.
axe DevTools Mobile pour iOS
Prise en charge d'iPadOS
axeDevToolsUIKit v3.4.0 et axeDevTools v2.4.0 prennent officiellement en charge les tests d'applications exécutées 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 de résumé de l’analyse, et les problèmes individuels indiqueront iPadOS. [18244]
Version d'automatisation optimisée pour le framework XCUI
Dans la version de novembre 2022, nous avons introduit une version d'automatisation optimisée d'axeDevToolsUIKit qui permettait les tests unitaires sans authentification ni aucune autre demande réseau. Avec cette version, nous proposons également une version d'automatisation optimisée d'axeDevToolsXCUI, afin que vous puissiez également effectuer des tests d'interface utilisateur qui n'interagissent avec aucun réseau externe. Cette version est uniquement disponible via Deque's Artifactory, veuillez donc 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 vous annoncer que deux nouvelles règles ont été ajoutées au framework XCUI pour iOS. Le contraste des couleurs et l'orientation de l'écran n'étaient auparavant inclus que dans axeDevToolsUIKit, mais sont désormais également disponibles dans axeDevToolsXCUI.
Colliding Views Vision Enhancement
Après avoir intégré le framework Vision d'Apple dans la règle Contraste des couleurs 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 l'OCR pour déterminer si le texte des vues qui se chevauchent entre en collision ou non, 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 balayage est désormais imprimée dans les journaux lors du téléversement pour un accès facile
axe DevTools Mobile pour Android
Amélioration de l'apprentissage automatique du contraste des couleurs
Dans la version de février 2023, nous avons annoncé que nous avions intégré le cadre Vision d'Apple dans 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 exploitons désormais [le MLKit de Google] (https://developers.google.com/ml-kit) dans notre règle de contraste des couleurs Android. Cela nous permet de détecter la couleur du texte avec plus de précision ainsi que de tester le contraste des couleurs sur les images de texte. En raison de ces améliorations, vous constaterez peut-être de nouveaux problèmes de contraste des couleurs signalés que nous ne pouvions pas détecter auparavant.
Règle du nom du bouton Compose
Dans axe-devtools-android v3.2.0, nous avons combiné le Nom du bouton d'icône Compose et le Nom du bouton de texte Compose en une seule règle appelée nom du bouton de composition. Les analyses existantes conserveront tous les résultats des deux règles obsolètes, et elles peuvent toujours être filtrées à l'aide de la fonctionnalité Jeux de règles personnalisés dans les paramètres du tableau de bord mobile d'axe DevTools.
Fonctionnalités supplémentaires
- Ajout de la possibilité d'ajouter des règles personnalisées et d'analyser les boîtes de dialogue à l'aide du Build d'automatisation optimisé
- La fonctionnalité Ignorer les règles est désormais disponible pour Compose
- Nouvelle API disponible pour réinitialiser les règles ignorées pour XML et Compose
Corrections de bugs
axe DevTools Mobile pour iOS
LoginViewController
a été renommé àDequeLoginViewController
pour éviter les problèmes lorsque les applications ont un contrôleur du même nom [23412]- La règle de titre d'écran signale désormais un problème au lieu d'indiquer un statut incomplet lorsqu'il n'y a pas de titre programmatique et rien de disponible dans la barre de navigation
- L'écran de connexion inclut désormais des descriptions des champs désactivés
- Correction d'un bug concernant la propriété
isVisibleToUser
pour les alertes - Résolution d'un problème dans la règle de contraste des couleurs lié aux résultats dupliqués pour plusieurs lignes de texte
- Mise à jour du formatage du nom du produit dans le service d'utilisation pour qu'il soit cohérent avec les autres produits Deque
- Réduction des faux positifs dans plusieurs règles liées aux sélecteurs de date
axe DevTools Mobile pour Android
- La règle de composition du nom du champ de texte sera désormais validée si le champ de texte inclut une icône avec une description de contenu
- Résolution d'un problème avec Proguard qui empêchait les utilisateurs de résoudre les collisions de dépendances
- Le titre de l'écran sera désormais formaté en un titre compréhensible au lieu du nom de la classe
- Mise à jour du formatage du nom du produit dans le service d'utilisation pour qu'il soit cohérent avec les autres produits Deque
Tableau de bord axe DevTools Mobile
- La règle de focus de vue informative masquée et de focus de vue active masquée d'Android s'affiche désormais correctement comme expérimentale
- Correction d'un problème avec la fonctionnalité de copie du lien vers le problème qui empêchait les nouveaux utilisateurs en lecture seule de visualiser les problèmes
- Correction de plusieurs bugs liés à la fenêtre modale d'édition des balises sur un scan dans le tableau
- Amélioration de la disposition du tableau pour réduire le besoin de défilement horizontal
- La page d'accès refusé est désormais adaptative pour différentes tailles de fenêtre d'affichage
- Création de chargeurs de données séparés pour la table 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 analyses sont sélectionnées dans le tableau
- Améliorations apportées au lecteur d'écran et à la navigation au clavier du tableau
- Ajout d'un lien de saut pour accéder directement au tableau
- Correction d'un problème où la page d'accès refusé ne s'affichait pas correctement dans certains cas
- Le point d'exclamation qui apparaissait à côté du nombre de scans a été supprimé pour réduire la confusion
- Certains styles de police ont été mis à jour
Problèmes connus
- 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.
- Les règles ne s'exécuteront pas dans les vues Web ou les fichiers PDF rendus. Pour tester le contenu HTML, veuillez utiliser axe DevTools pour le Web. axe Monitor prend en charge l'analyse des PDF pour l'accessibilité.
axe DevTools Mobile pour iOS
axeDevToolsUIKit.xcframework
Les vues créées avec SwiftUI ne peuvent pas être testées à l'aide de ce framework
Utilisez le framework axeDevToolsXCUI dans UITesting pour les vues SwiftUI.
La prise en charge des règles personnalisées n'est disponible que dans Swift
L'API de règle personnalisée n'est pas ouverte à Objective-C.
Le filtre « Visible pour l'utilisateur » peut ne pas fonctionner correctement dans les menus latéraux et les alertes.
Nous travaillons activement sur un correctif et l'attendons dans la prochaine version.
Faux positifs : InScrollView, SupportsDynamicType
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.
InScrollView
InScrollView 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
.
SupportsDynamicType
Vous pouvez voir des faux positifs dans les scénarios suivants :
- Si vous utilisez la
UIContentSizeCategoryDidChange
notification, le framework peut signaler à tort que le texte ne répond pas à Dynamic Type dans UITests. - Si vous utilisez
NotificationCenter.default.addObserver(forName:.., object:.., queue:.., using:..)
pour répondre à laUIContentSizeCategoryDidChange
notification. - Si vous utilisez
traitCollectionDidChange
sur la vue parent ou le contrôleur de vue d'un texte pour répondre à Dynamic Type.
AxeDevToolsXCUI.xcframework
Picker SwiftUI et Picker UIKit
Les vues Picker dans SwiftUI et UIKit peuvent entraîner le blocage du framework sur les simulateurs ou les appareils.
Le filtre « Visible pour l'utilisateur » peut ne pas fonctionner correctement dans les menus latéraux et les alertes.
Nous travaillons activement sur un correctif et l'attendons dans la prochaine version.
L'orientation paysagère n'est pas formellement prise en charge à l'heure actuelle
Ceci sera abordé dans une version ultérieure.
Faux-positifs : A11yElementFocusBox, InScrollView
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.
A11yElementFocusBox
Pour les vues hors écran, cette règle peut signaler à tort que la zone de focus VoiceOver n'encapsule pas la vue.
InScrollView
InScrollView 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
.
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.
Erreurs de compilation avec le 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'Après avoir importé la bibliothèque ci-dessus, si vous voyez des erreurs liées à la version minSDK pour la bibliothèque core-ktx, essayez ce qui suit dans le manifeste Android de votre projet :
<uses-sdk tools:overrideLibrary="androidx.core" />
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)
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, deux nœuds racine Compose peuvent exister en même temps.
Tableau de bord axe DevTools Mobile
Le tableau ne peut pas être trié par nombre de problèmes
À partir de 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 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 de l'analyse à partir du tableau de bord ou des frameworks