Un modo essenziale per testare l'accessibilità è una forma di test manuale: attivando i servizi di accessibilità, come TalkBack o Switch Access, e verificando se tutto funziona come previsto. In questo modo, puoi farti un'idea diretta di come gli utenti con esigenze di accessibilità potrebbero utilizzare la tua applicazione.
Oltre alla verifica manuale, devi utilizzare anche i test automatici per segnalare eventuali problemi che potrebbero influire sull'esperienza utente quando apporti modifiche continue alla tua app.
Le API di test di Compose esistenti ti consentono di scrivere test automatici che interagiscono con gli elementi semantici e di verificare le proprietà definite nella tua UI.
Controlli di accessibilità
Per i test di accessibilità automatici, puoi anche utilizzare il framework di test di accessibilità, lo stesso framework di base che supporta Accessibility Scanner e i controlli di accessibilità in Espresso, per eseguire alcuni controlli relativi all'accessibilità in modo automatico, a partire da Compose 1.8.0.
Per attivare i controlli, aggiungi la dipendenza ui-test-junit4-accessibility,
chiama enableAccessibilityChecks() in AndroidComposeTestRule
e attiva un'azione o 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() }
Questo test specifico non va a buon fine con un'eccezione e un messaggio che indica che l'elemento potrebbe non avere un'etichetta leggibile dai servizi di accessibilità.
Altri controlli disponibili rilevano problemi di accessibilità relativi al contrasto di colore, alle dimensioni ridotte dei touch target o all'ordine di attraversamento degli elementi.
Se stai combinando le visualizzazioni con Compose e utilizzi già un AccessibilityValidator o devi configurarne uno, puoi impostarlo nella regola:
@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() }
In combinazione con i test manuali, i test automatici che utilizzano sia le API Compose sia l'Accessibility Test Framework possono aiutarti a rilevare potenziali problemi nelle prime fasi del processo di sviluppo.
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Accessibilità in Compose
- [Material Design 2 in Compose][19]
- Test del layout di Compose