Uma forma essencial de testar a acessibilidade é uma forma de teste manual: ativando os serviços de acessibilidade, como o TalkBack ou o acesso com interruptor, e verificando se tudo funciona conforme o esperado. Isso fornece insights diretos sobre como os usuários com necessidades de acessibilidade podem usar seu aplicativo.
Além da verificação manual, também é necessário usar testes automatizados para sinalizar possíveis problemas que possam afetar a experiência do usuário à medida que você faz mudanças contínuas no app.
As APIs de teste do Compose permitem criar testes automatizados que interagem com elementos semânticos e afirmam as propriedades definidas na sua interface.
Verificações de acessibilidade
Para testes de acessibilidade automatizados, você também pode usar o Framework de testes de acessibilidade, o mesmo framework que oferece suporte ao Scanner de acessibilidade e às verificações de acessibilidade no Espresso, para realizar algumas verificações relacionadas à acessibilidade automaticamente, começando com o Compose 1.8.0.
Para ativar as verificações, adicione o ui-test-junit4-accessibility dependency
,
chame enableAccessibilityChecks()
no AndroidComposeTestRule
e acione uma ação 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() }
Esse teste específico falha com uma exceção e uma mensagem informando que o item pode não ter um rótulo legível pelos serviços de acessibilidade.
Outras verificações disponíveis procuram problemas de acessibilidade com contraste de cores, tamanho da área de toque pequena ou ordem de passagem de elementos.
Se você estiver misturando visualizações com o Compose e já estiver usando um
AccessibilityValidator
ou precisar configurar um, defina-o na
regra:
@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() }
Em combinação com o teste manual, os testes automatizados que usam as APIs do Compose e o Framework de teste de acessibilidade podem ajudar a detectar possíveis problemas no início do processo de desenvolvimento.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Acessibilidade no Compose
- [Material Design 2 no Compose][19]
- Como testar o layout do Compose