Un modo essenziale per testare l'accessibilità è una forma di test manuale: attivando i servizi di accessibilità, come TalkBack o Switch Access, e controllando se tutto funziona come previsto. In questo modo puoi capire direttamente in che modo gli utenti con esigenze di accessibilità potrebbero utilizzare la tua applicazione.
Insieme alla verifica manuale, devi utilizzare anche i test automatici per segnalare eventuali potenziali problemi che potrebbero influire sull'esperienza utente man mano che apporti modifiche continue alla tua app.
Le API di test di Compose esistenti ti consentono di scrivere test automatici che interagiscono con elementi semantici e di verificare le proprietà definite nella tua UI.
Controlli di accessibilità
Per i test di accessibilità automatici, puoi anche utilizzare il Accessibility Test Framework, lo stesso framework di base alla base di Accessibility Scanner e dei controlli di accessibilità in Espresso, per eseguire automaticamente alcuni controlli relativi all'accessibilità, a partire da Compose 1.8.0.
Per attivare i controlli, aggiungi ui-test-junit4-accessibility dependency
, 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 cercano problemi di accessibilità relativi al contrasto di colore, alle dimensioni ridotte del target tocco o all'ordine di attraversamento degli elementi.
Se combini 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 il framework di test di accessibilità possono aiutarti a rilevare possibili problemi all'inizio del processo di sviluppo.
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Accessibilità in Componi
- [Material Design 2 in Compose][19]
- Testare il layout di Componi