O teste de acessibilidade permite que você experimente seu app da perspectiva de toda sua base de usuários, incluindo usuários com necessidades de acessibilidade. Essa forma de teste pode mostrar oportunidades para tornar seu app mais poderoso e versátil.
Esta página descreve como adicionar verificações de acessibilidade aos testes do Espresso. Para saber mais sobre acessibilidade, consulte os guias de acessibilidade.
Ativar verificações
Você pode ativar e configurar o teste de acessibilidade usando a
classe
AccessibilityChecks:
Kotlin
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
Java
import androidx.test.espresso.accessibility.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
@BeforeClass
public void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
Por padrão, as verificações são executadas quando você realiza qualquer ação de visualização definida em
ViewActions. Cada
verificação inclui a visualização em que a ação é realizada, bem como
todas as visualizações descendentes. É possível avaliar toda a hierarquia de visualização de uma tela durante
cada verificação passando true para setRunChecksFromRootView(),
conforme mostrado no snippet de código a seguir:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
Suprimir subconjuntos de resultados
Depois que o Espresso executa verificações de acessibilidade, você pode encontrar várias
oportunidades de melhorar a acessibilidade do seu app que não podem ser solucionadas
imediatamente. Para evitar que os testes do Espresso falhem continuamente devido
a esses resultados, ignore-os temporariamente. O Framework de testes
de acessibilidade (ATF, na sigla em inglês) fornece essa funcionalidade usando o
método setSuppressingResultMatcher()
que instrui o Espresso a suprimir todos os resultados que satisfazem a expressão
matcher escolhida.
Quando você faz modificações no app que contemplam um aspecto da acessibilidade, o Espresso pode mostrar resultados para o máximo possível de outros aspectos da acessibilidade. Por esse motivo, é recomendável suprimir apenas oportunidades conhecidas específicas de melhoria.
Quando você suprimir temporariamente os resultados do teste de acessibilidade que planeja resolver posteriormente, é importante não suprimir acidentalmente as descobertas parecidas. Por esse motivo, use matchers com escopo limitado. Para fazer isso, escolha um matcher para que o Espresso suprima determinado resultado somente se ele atender a cada uma das seguintes verificações de acessibilidade:
- Verificações de acessibilidade de um determinado tipo, como aquelas que verificam o tamanho da área de toque.
- Verificações de acessibilidade que avaliam um determinado elemento da interface, como um botão.
O ATF define vários matchers
para ajudar você a definir quais resultados serão mostrados nos testes do Espresso. O exemplo
a seguir suprime os resultados de verificações relacionadas ao contraste de cor de
um único elemento TextView. O ID do elemento é countTV.
Kotlin
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck::class.java),
matchesViews(withId(R.id.countTV))
)
)
}
Java
AccessibilityValidator myChecksValidator =
AccessibilityChecks.enable()
.setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck.class),
matchesViews(withId(R.id.countTV))));