Una forma esencial de probar la accesibilidad es un tipo de prueba manual: activar los servicios de accesibilidad, como TalkBack o la Accesibilidad con interruptores, y verificar si todo funciona como se espera. Esto proporciona información directa sobre cómo los usuarios con necesidades de accesibilidad podrían experimentar tu aplicación.
Además de la verificación manual, también debes usar pruebas automatizadas para marcar cualquier problema potencial que pueda afectar la experiencia del usuario a medida que realizas cambios continuos en tu app.
Las APIs de pruebas de Compose existentes te permiten escribir pruebas automatizadas que interactúan con elementos semánticos y confirmar las propiedades definidas en tu IU.
Comprobaciones de accesibilidad
Para realizar pruebas de accesibilidad automatizadas, también puedes usar el framework de pruebas de accesibilidad, el mismo framework subyacente que potencia la Prueba de accesibilidad y las verificaciones de accesibilidad en Espresso, para realizar algunas verificaciones relacionadas con la accesibilidad de forma automática, a partir de Compose 1.8.0.
Para habilitar las verificaciones, agrega la dependencia ui-test-junit4-accessibility, llama a enableAccessibilityChecks() en AndroidComposeTestRule y activa una acción 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() }
Esta prueba específica falla con una excepción y un mensaje que indica que es posible que el elemento no tenga una etiqueta legible para los servicios de accesibilidad.
Otras verificaciones disponibles buscan problemas de accesibilidad relacionados con el contraste de color, el tamaño pequeño del objetivo táctil o el orden de recorrido de los elementos.
Si mezclas Views con Compose y ya usas un AccessibilityValidator, o necesitas configurar uno, puedes establecerlo en la regla:
@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 combinación con las pruebas manuales, las pruebas automatizadas que usan las APIs de Compose y el framework de pruebas de accesibilidad pueden ayudarte a detectar posibles problemas al principio del proceso de desarrollo.
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Accesibilidad en Compose
- [Material Design 2 en Compose][19]
- Cómo probar tu diseño de Compose