Verificação de acessibilidade

O teste de acessibilidade permite testar o app da perspectiva do toda a base de usuários, incluindo usuários com necessidades de acessibilidade. Essa forma de os testes podem revelar oportunidades para tornar seu app mais poderoso e versátil.

Esta página descreve como adicionar verificações de acessibilidade ao Espresso provas. Para mais informações sobre acessibilidade, consulte a documentação guias.

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 teste de acessibilidade O Framework (ATF) oferece essa funcionalidade usando o setSuppressingResultMatcher() , que instrui o Espresso a suprimir todos os resultados que satisfaçam a determinada uma expressão correspondente.

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 isso, escolha um correspondente para que o Espresso suprima determinado resultado somente se ele satisfizer cada um dos seguintes verificações de acessibilidade:

  1. Verificações de acessibilidade de um determinado tipo, como aquelas que verificam o tamanho da área de toque.
  2. Verificações de acessibilidade que avaliam um determinado elemento da interface, como um botão.

O ATF define vários matchers para ajudar a definir quais resultados serão exibidos 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))));