Uma forma essencial de testar a acessibilidade é o teste manual: ativar os serviços de acessibilidade, como o TalkBack ou o acesso com interruptor, e verificar se tudo funciona como esperado. Isso fornece insights diretos sobre como os usuários com necessidades de acessibilidade podem usar seu aplicativo.
Além da verificação manual, use testes automatizados para sinalizar possíveis problemas que possam afetar a experiência do usuário ao fazer mudanças contínuas no app.
As APIs de teste do Compose permitem que você escreva testes automatizados que interagem com elementos semânticos e declaram as propriedades definidas na 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 alimenta o Scanner de acessibilidade e as 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 a dependência ui-test-junit4-accessibility,
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 de que o item pode não ter um rótulo legível para os serviços de acessibilidade.
Outras verificações disponíveis procuram problemas de acessibilidade com contraste de cores, tamanho pequeno da área de toque ou ordem de apresentação dos 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 testes manuais, 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