Notes de version d'Axe DevTools Mobile du 9 juillet 2025

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

9 juillet 2025

Not for use with personal data

Quoi de neuf ?

L'expérience utilisateur de navigation sur le tableau de bord Axe DevTools Mobile a été mise à jour, vous permettant de naviguer plus facilement entre les différentes zones de la plateforme Axe. Cliquez sur le logo Axe dans le coin supérieur gauche du tableau de bord pour naviguer vers d'autres produits Axe, tels que Axe Reports.

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 lorsque le problème sera résolu ou vous informer d'une solution de contournement identifiée si aucune n'est listée.

important
  • Les tests automatisés d'Axe DevTools Mobile fonctionnent sur des applications natives iOS, Android natives et React Native. Veuillez contacter votre représentant Deque pour des solutions de test d'accessibilité adaptées à votre pile technologique.
  • Bien que vous puissiez obtenir des résultats à partir de vues web ou de PDF rendus, nous recommandons fortement d'utiliser Axe DevTools pour le Web ou Axe Monitor pour des tests d'accessibilité web plus complets.

iOS

Color Contrast rule does not run when text and background colors are the same

Our Color Contrast rule depends on Machine Learning to detect text, which ensures that the text being scanned is visible to users of your application. In cases where the text contained in a view is the same color as the background, our Machine Learning algorithm is unable to detect if any text is present, so the Color Contrast rule does not run on this view.

Impossible d'exécuter des scans sur des appareils physiques avec iOS Analyzer 1.4.7

Un paramètre de configuration dans iOS Analyzer 1.4.7 empêche l'exécution des scans, renvoyant le message "Test Failed". Pour exécuter des scans sur un appareil physique, mettez à jour le projet iOS Analyzer vers la dernière version.

Erreur dans le projet Analyzer et test par ID de bundle dans la version 2.8.1

La fonctionnalité de test d'une application par identifiant de bundle était défaillante dans la version 2.8.1, ce qui a entraîné une erreur intitulée "No target application path specified via test configuration: ...". 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 du projet iOS Analyzer.

Erreur "Impossible de sérialiser AxeResult" dans le projet Analyzer v1.2.0 et SDK v2.12.3

L'analyse de certaines applications avec cette version de l'analyzer et du SDK entraîne une erreur "Impossible de sérialiser AxeResult". Mettez à jour vers la dernière version pour résoudre l'erreur. Mettez à jour vers la dernière version du projet iOS Analyzer.Mettez à jour vers la dernière version du SDK iOS.

Faux positif : LabelInName et LabelAtFront dans SwiftUI et applications multiplateformes

Certaines écrans peuvent signaler des faux positifs avec LabelInName et LabelAtFront en raison d'une propriété associatedText incorrecte trouvée (#1622)

La règle Prise en charge de Dynamic Type ne fonctionne pas avec le simulateur iOS 15 Pro

Il y a un problème affectant le simulateur iPhone 15 Pro qui empêche la règle Prise en charge de Dynamic Type de s'exécuter. Si vous êtes inscrit à la règle Prise en charge de Dynamic Type, 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

En cherchant 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'arbre d'accessibilité. Un bug a été signalé à Apple. (#1110)

Règle du nom ImageView nécessitant un examen des résultats pour les applications UIKit

Dans les applications UIKit, une image sans `accessibilityLabel` n'est pas focalisable avec les technologies d'assistance par défaut.
Les propriétés que nous utilisons pour vérifier la focalisabilité d'Apple peuvent être inexactes lorsqu'un `accessibilityIdentifier` est défini sur l'image. En raison de ce comportement inattendu, les résultats pour les problèmes de nom ImageView dans les applications UIKit seront signalés comme nécessitant un examen. Un rapport de bug a été déposé auprès d'Apple. (#1633)

Faux positif : Dans la vue déroulante, Label In Name, Label at Front, et nom de la vue d'image v2.11.0 & ActiveControlName

Nous travaillons activement sur des correctifs pour 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 d'é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)

v2.11.0 Image View Name & Active Control Name
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 en son sein, ActiveControlName peut signaler un faux positif sur l'UIImageView. Supprimer le `accessibilityIdentifier` résout le problème. Un bug a été déposé auprès d'Apple. (#1633)

Label In Name and Label At Front
Ces deux règles cherchent le label visible d'un contrôle parmi les éléments à proximité pour aider à déterminer le statut de la règle. Dans certaines hiérarchies de vues, le texte incorrect à proximité peut être détecté, causant l'échec de ces règles. (#1622)

Android

La règle de contraste des couleurs ne s'exécute pas lorsque les couleurs du texte et de l'arrière-plan sont identiques

Notre règle de contraste des couleurs dépend de l'apprentissage automatique pour détecter le texte, ce qui garantit que le texte scanné est visible pour les utilisateurs de votre application. Dans les cas où le texte contenu dans une vue est de la même couleur que l'arrière-plan, notre algorithme d'apprentissage automatique est incapable de détecter la présence de texte, et la règle de contraste des couleurs ne s'exécute donc pas sur cette vue.

EditTextName sur Android 7 (SDK 24-25)

Les applications écrites en XML qui utilisent la fonction de texte d'indice peuvent voir des faux positifs avec la EditTextName règle. Le texte d'indice n'a été introduit qu'à partir d'Android 8 (SDK 26). Utiliser cet élément dans votre application XML assignera le texte d'indice à la valeur du champ de saisie de texte. Les versions plus récentes d'Android sont mieux équipées pour rendre cette expérience accessible.

Pour surmonter ce problème, notre première recommandation est d'effectuer vos tests sur des versions plus récentes d'Android. Si l'accessibilité de l'application sur des versions antérieures d'Android est importante, vous pouvez envisager d'éviter d'utiliser la hintText fonctionnalité, car elle n'est pas officiellement prise en charge.

Vues Android cachées renvoyant des résultats

Vous pouvez voir des résultats pour des vues qui sont cachées derrière d'autres vues sur l'écran. Ces vues cachées ne sont pas accessibles aux technologies d'assistance, mais Axe DevTools Mobile les signale toujours comme des problèmes.

Nous travaillons sur un correctif pour ce problème complexe. En attendant, si TalkBack ne peut pas atteindre ces vues, vous pouvez ignorer les problèmes correspondants. Il n'est pas nécessaire de les corriger pour garantir l'accessibilité.

Erreur lors de l'exécution de la détection de texte ML Kit

La détection de texte avec ML Kit est requise dans de nombreuses règles d'Axe DevTools Mobile pour garantir l'exactitude des résultats. La bibliothèque ML Kit devrait être automatiquement importée lorsque vous référencez Axe DevTools Mobile dans vos tests automatisés Espresso ou UIAutomator. Cependant, dans certains cas, l'importation automatique ne se produit pas et vous verrez l'erreur suivante dans le logcat :

Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.

Pour surmonter ce problème, vous devez importer manuellement la bibliothèque ML Kit dans votre projet. Dans le fichier build.gradle de votre application, ajoutez ce qui suit sous les dépendances :

implementation 'com.google.mlkit:text-recognition:16.0.1'

Espacement de la cible tactile et Jetpack Compose

La règle d'espacement de la cible tactile ne s'applique actuellement à aucun composant de curseur écrit en Jetpack Compose. Aucune action ne peut être entreprise pour le moment. Cependant, une solution arrive bientôt !

Erreur lors de la sauvegarde des résultats localement sur API 30

Sur Android API 30, l'un des emplacements où nous essayons de sauvegarder les résultats localement rencontre une erreur de permissions. Le résultat sera néanmoins sauvegardé sous forme de fichier JSON malgré l'affichage de cette erreur. L'erreur peut être supprimée en commentant le code dans le bloc suivant :

def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
    executable "${android.getAdbExecutable().toString()}"
    args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
//    finalizedBy {
//        fetchAndroidFolderAxeReportsTask
//    }
}

Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.

Détection de défilement sur les applications hybrides et multiplateformes

Dans certaines applications hybrides et multiplateformes, nous pourrions obtenir des résultats inattendus lorsque les éléments dans une vue défilante sont partiellement hors écran. Pour tester l'accessibilité d'un élément, assurez-vous qu'il est entièrement visible avant d'effectuer le scan.

App Analyzer : le bouton d'action flottant disparaît

Introduite avec l'API 31 (Android 12), la capacité de masquer les superpositions non-système est disponible. Pour utiliser l'application Axe Analyzer, veuillez vous assurer que ce paramètre n'est pas activé. Si vous avez choisi d'utiliser cette fonctionnalité pour ses améliorations de sécurité, nous recommandons de la désactiver pour les versions de test internes où vous pouvez utiliser en toute sécurité des données de test et ainsi éliminer les préoccupations de sécurité. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.

Pour utiliser l'application Axe Accessibility Analyzer, mettez à jour tous les appels à la méthode setHideOverlayWindows(true) vers setHideOverlayWindows(false) sur les fenêtres d'activité concernées.

Capture d'écran manquante (boîte noire) dans le tableau de bord

Pour débloquer la pleine fonctionnalité d'Axe DevTools pour Mobile, assurez-vous que les captures d'écran sont activées. Nous recommandons d'activer les captures d'écran sur une version de débogage ou de test de votre application qui utilise des données simulées pour éviter les problèmes de sécurité. Consultez notre guide pour activer les captures d'écran dans les applications Android.

Crash lorsque `minifiedEnabled` est défini sur true

Si vous minimisez votre build, vous verrez un crash avec un journal d'erreurs indiquant qu'un adaptateur n'a pas été 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 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)
ou : No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?

Les API Compose sont obsolètes, veuillez utiliser les API indépendantes de la mise en page pour continuer à recevoir des mises à jour. Si vous continuez à utiliser les API Compose et que 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 à l'API Compose setTestTag.

Message du journal :MlKitContext has not been initialized

Si vous recevez ce message, certains résultats de règles peuvent ne pas être retournés comme prévu lorsque cette règle utilise l'intelligence artificielle. Les règles affectées incluent le Contraste de Couleur, le Texte Concentrable et le Nom d'Élément Imbriqué. (#841)

MAUI : Règle de nom d'édition de texte

En raison des limites de l'architecture d'application MAUI sur le rendu dans l'écosystème Android, la règle de nom d'édition de texte apparaîtra comme nécessitant une révision dans le tableau de bord lorsqu'un échec est suspecté pour la version SDK 5.5.0 et plus. Veuillez confirmer manuellement le comportement correct pour ce cas.

Android natif : Dialogues/Modales personnalisés

Lorsque vous implémentez des dialogues ou modales personnalisés qui n'étendent pas les contrôles natifs, vous pouvez obtenir des résultats pour des vues situées derrière le modal. Dans ce cas, nous recommandons de ne pas exécuter notre outil contre ces modales ou dialogues personnalisés et de vérifier manuellement qu'ils se comportent comme souhaité avec la technologie d'assistance.

Tableau de bord Web

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 les captures d'écran d'être prises. Souvent, cela s'explique par des raisons de sécurité dans votre application de production. Envisagez de supprimer cette exigence pour votre version de test afin de permettre une pleine fonctionnalité dans le tableau de bord mobile Axe DevTools.

Certains noms d'analyse Android sont non formatés

Certains noms d'analyse Android par défaut du titre de l'écran apparaîtront comme le nom complet de la classe, y compris l'identifiant du bundle. Dans une future version, cela sera corrigé 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)