Notes de version de Axe DevTools Mobile du 16 août 2023
16 août 2023
Versions des composants
- axeDevToolsXCUI v2.6.0
- axe-devtools-android v4.0.0
Quoi de neuf ?
Présentation de Axe DevTools Mobile Analyzer
Utilisez le nouveau Axe DevTools Mobile Analyzer pour tester des applications iOS ou Android développées avec n'importe quelle technologie sans accéder au code source. Testez aussi bien des applications natives que multiplateformes, telles que SwiftUI et UIKit sur iOS, Jetpack Compose et XML sur Android, React Native, Flutter, Xamarin et Ionic. Axe DevTools Mobile Analyzer remplace le Floating Action Button intégré pour les tests d'accessibilité initiés par l'utilisateur (manuels). Pour effectuer la transition, supprimez le code intégré pour le Floating Action Button de votre application, et suivez la documentation pour commencez avec le nouveau Axe DevTools Mobile Analyzer.
iOS
- Les vues construites avec SwiftUI et les applications multiplateformes peuvent maintenant être testées via des tests initiés par l'utilisateur (manuels) en utilisant le nouveau Axe DevTools Mobile Analyzer pour iOS.
- La règle Prend en charge Dynamic Type est maintenant disponible dans le cadre XCUI. Cette règle redimensionne le texte plusieurs fois et réévalue l'écran après chaque redimensionnement pour détecter des problèmes, ce qui prend quelques secondes. Pour cette raison, nous l'avons publiée en option activée. Pour activer l'option, définissez
optInToSDTcomme vrai dans l'API de configuration Axe.axeDevTools.configuration.optInToSDT = true. - La version minimale prise en charge d'iOS est maintenant iOS 14 (auparavant iOS 13).
Android
- Les applications multiplateformes peuvent maintenant être testées via des tests initiés par l'utilisateur (manuels) en utilisant le nouveau Axe DevTools Mobile Analyzer pour Android.
- Les applications utilisant les vues Jetpack Compose exécuteront maintenant l'ensemble complet de règles via des tests initiés par l'utilisateur (manuels) ou automatisés. (Auparavant, les applications Android utilisant Jetpack Compose avaient un ensemble de règles plus restreint.)
- Nous prenons désormais en charge le framework de test UI Automator pour les tests automatisés.
- Le SDK Android mis à jour permet des analyses d'accessibilité automatisées via Espresso et UI Automator en utilisant le Instrumentation Registry, ce qui ne nécessite pas de spécifier une vue ou activité.
- Changement important : la classe
DashboardServicea été remplacée par la classeResultsDashboard.
Tableau de bord
- Temps de chargement amélioré pour le décompte et le résumé des problèmes à partir de l'écran principal du Tableau de bord.
- Amélioration de l'apparence de la vue hiérarchique lorsqu'elle est consultée dans le navigateur Safari.
Corrections de bugs
Axe DevTools Mobile pour iOS
- Règle de contraste des couleurs - Nous ne lancerons plus de règles de contraste des couleurs sur les boutons désactivés car les règles de contraste des couleurs ne s'appliquent pas aux éléments désactivés.
- Règle des contrôles en collision - Tout contrôle qui n'est pas marqué comme focalisable pour l'accessibilité ou qui n'est pas un élément d'accessibilité ne sera plus pris en compte lors de l'examen des contrôles en collision.
- Résultats enregistrés localement - Le nom de l'analyse est désormais correctement ajouté au fichier JSON lors de l'enregistrement local ou du téléchargement depuis le Tableau de bord. Cela corrige le titre "analyse sans nom" qui s'affichait précédemment dans les rapports HTML générés par le Reporter CLI.
Tableau de bord Axe DevTools Mobile
- Corrections d'accessibilité : ajout du rôle aria manquant="button", amélioration de l'en-tête du modal d'annonce, suppression de l'infobulle dans la vue hiérarchique et ajout de meilleures annonces pour les lecteurs d'écran concernant la pagination.
- Correction du nom de l'analyse dans la capture d'écran qui chevauchait précédemment le bouton 'Inspecter'.
- Correction d'un problème où les utilisateurs en essai gratuit voyaient un spinner infini.
Mises à jour
Cette version marque la dernière de nos mises à jour du framework UIKit pour les tests automatisés sur les applications iOS. Nous continuerons à offrir ce framework pour l'avenir prévisible, mais nous ne ferons plus de corrections de bugs ou mises à jour. Nous vous encourageons à passer au framework XCUI, qui sera mis à jour avec de nouvelles règles et améliorations à l'avenir. Si vous utilisez actuellement le framework UIKit pour les tests unitaires ou UI automatisés et souhaitez de l'aide pour passer au framework XCUI, veuillez nous le faire savoir. Soumettez une demande à support.deque.com, ou envoyez un e-mail à helpdesk@deque.com.
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 dès qu'il sera résolu ou d'une solution de contournement identifiée si aucune n'est listée.
- Les tests automatisés de Axe DevTools Mobile fonctionnent sur les applications native iOS, native Android et React Native. Veuillez contacter votre représentant Deque pour des solutions de test d'accessibilité sur votre pile technologique.
- Pour vous aider à obtenir des résultats précis et des conseils de remédiation applicables, les règles de Axe DevTools Mobile ne s'exécutent pas dans les vues web ou les PDF rendus. Pour tester le contenu HTML, utilisez 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 en utilisant ce framework pour les tests automatisés.
Utilisez le framework axeDevToolsXCUI dans UITesting pour les vues SwiftUI.
Le support des règles personnalisées est disponible uniquement en Swift
L'API des règles personnalisées n'est pas ouverte à Objective-C.
Faux positifs : DansScrollView, PrendEnChargeDynamicType, VuesEnConflit
Nous travaillons activement à corriger les faux positifs suivants et mettrons à jour cette liste au fur et à mesure que les correctifs seront publiés.
InScrollView
DansScrollView peut signaler des problèmes pour le texte au sein des éléments ayant le comportement de bannière. Pour rendre ces éléments accessibles à ceux qui nécessitent un texte plus grand, utilisez UILargeContentViewer.
SupportsDynamicType
Vous pouvez observer des faux positifs dans les scénarios suivants :
- Si vous utilisez la
UIContentSizeCategoryDidChangenotification, le cadre peut signaler à tort que le texte ne répond pas au Dynamic Type dans les UITests. - Si vous utilisez
NotificationCenter.default.addObserver(forName:.., object:.., queue:.., using:..)pour répondre à laUIContentSizeCategoryDidChangenotification. - Si vous utilisez
traitCollectionDidChangesur la vue parent d'un texte ou le contrôleur de vue pour répondre au Dynamic Type.
When a scrollable subview contains text, and that subview does not span to the edge of the screen's bounds, you will see failures for text located within the view's bounds.
axeDevToolsXCUI.xcframework
Sélecteur SwiftUI et Sélecteur UIKit
Les vues de sélecteur dans SwiftUI et UIKit peuvent amener le cadre à se bloquer sur les simulateurs ou les appareils. (#636)
Règles contre les contrôles imbriqués
En examinant une amélioration pour nos règles, nous avons découvert que dans XCTest, les contrôles imbriqués ne sont pas retournés dans l'arborescence d'accessibilité. Un bug a été signalé à Apple. (#1110)
Faux positif : Dans vue de défilement, NomContrôleActif
Nous travaillons activement à corriger les faux positifs suivants et mettrons à jour cette liste au fur et à mesure que les correctifs seront publiés.
In Scroll View
Peut signaler des problèmes pour le texte au sein des éléments ayant le comportement de bannière. Pour rendre ces éléments accessibles à ceux qui nécessitent un texte plus grand, utilisez UILargeContentViewer. (#622)
ActiveControlName
Si une UIImageView a un `accessibilityIdentifier` défini mais n'est pas focalisable par VoiceOver, et qu'elle a des contrôles focalisables imbriqués en son sein, NomContrôleActif peut signaler un faux positif sur l'UIImageView. Supprimer le `accessibilityIdentifier` résout le problème. (#1178)
Faux négatif : Nom de l'ImageView, Texte focalisable dans iOS 13 à iOS 14.8.1
Nous travaillons activement à corriger les faux négatifs suivants et mettrons à jour cette liste au fur et à mesure que les correctifs seront publiés.
Image View Name
Si une UIImageView a un `accessibilityIdentifier` défini mais n'est pas focalisable par VoiceOver, NomImageView peut signaler un faux négatif sur l'UIImageView. Supprimer le `accessibilityIdentifier` résout le problème. (#1188)
Focusable Text
Les éléments marqués comme non-accessibles peuvent signaler des résultats incorrects en raison d'un bug dans le cadre 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 défini sur true
Si vous minifiez votre build, vous verrez un crash avec un journal d'erreurs indiquant 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)
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
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 semblable à :
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 racines Compose existant en même temps.
Tableau de bord mobile Axe DevTools
Certaines noms de scan Android sont mal formatés
Certains noms de scan Android qui sont par défaut le titre de l'écran apparaîtront sous forme de nom complet de la classe comprenant l'identifiant du paquet. Dans une prochaine version, cela sera résolu pour que le titre de l'écran soit formaté dans un nom plus lisible. En attendant, vous pouvez définir le nom du scan depuis le tableau de bord ou les frameworks. (#1643)
