Une forme de test manuel est essentielle pour tester l'accessibilité: en activant les services d'accessibilité, tels que TalkBack ou Switch Access, et en vérifiant si tout fonctionne comme prévu. Vous obtenez ainsi un aperçu direct de l'expérience que les utilisateurs ayant des besoins d'accessibilité peuvent avoir avec votre application.
En plus de la vérification manuelle, vous devez également utiliser des tests automatisés pour signaler tout problème potentiel pouvant affecter l'expérience utilisateur lorsque vous apportez des modifications continues à votre application.
Les API de test Compose existantes vous permettent d'écrire des tests automatisés qui interagissent avec des éléments sémantiques et d'affirmer les propriétés définies dans votre UI.
Vérifications de l'accessibilité.
Pour les tests d'accessibilité automatisés, vous pouvez également utiliser le framework de test d'accessibilité (même framework sous-jacent qui alimente Accessibility Scanner et les vérifications d'accessibilité dans Espresso) pour effectuer automatiquement certaines vérifications liées à l'accessibilité, à partir de Compose 1.8.0.
Pour activer les vérifications, ajoutez ui-test-junit4-accessibility dependency
, appelez enableAccessibilityChecks()
dans AndroidComposeTestRule
et déclenchez une action ou tryPerformAccessibilityChecks
:
@Rule @JvmField val composeTestRule = createAndroidComposeRule<ComponentActivity>() @Test fun noAccessibilityLabel() { composeTestRule.setContent { Box( modifier = Modifier .size(50.dp, 50.dp) .background(color = Color.Gray) .clickable { } .semantics { contentDescription = "" } ) } composeTestRule.enableAccessibilityChecks() // Any action (such as performClick) will perform accessibility checks too: composeTestRule.onRoot().tryPerformAccessibilityChecks() }
Ce test spécifique échoue avec une exception et un message indiquant que l'élément n'a peut-être pas de libellé lisible par les services d'accessibilité.
Les autres vérifications disponibles recherchent des problèmes d'accessibilité liés au contraste des couleurs, à la petite taille des cibles tactiles ou à l'ordre de parcours des éléments.
Si vous mélangez des vues avec Compose et que vous utilisez déjà un AccessibilityValidator
ou que vous devez en configurer un, vous pouvez le définir dans la règle:
@Test fun lowContrastScreen() { composeTestRule.setContent { Box( modifier = Modifier .fillMaxSize() .background(color = Color(0xFFFAFBFC)), contentAlignment = Alignment.Center ) { Text(text = "Hello", color = Color(0xFFB0B1B2)) } } // Optionally, set AccessibilityValidator manually val accessibilityValidator = AccessibilityValidator() .setThrowExceptionFor( AccessibilityCheckResult.AccessibilityCheckResultType.WARNING ) composeTestRule.enableAccessibilityChecks(accessibilityValidator) composeTestRule.onRoot().tryPerformAccessibilityChecks() }
En plus des tests manuels, les tests automatisés utilisant à la fois les API Compose et le framework de test d'accessibilité peuvent vous aider à détecter les problèmes potentiels dès le début du processus de développement.
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé
- Accessibilité dans Compose
- [Material Design 2 dans Compose][19]
- Tester votre mise en page Compose