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:
- 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 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))));