Comprobación de accesibilidad

Las pruebas de accesibilidad te permiten experimentar tu app desde la perspectiva de toda la base de usuarios, incluidos los usuarios con necesidades de accesibilidad. Esta forma de pruebas puede revelar oportunidades para que tu app sea más potente y versátil.

En esta página, se describe cómo agregar verificaciones de accesibilidad a tus pruebas de Espresso existentes. Para obtener más información sobre la accesibilidad, consulta las guías de accesibilidad.

Habilita las comprobaciones

Puedes habilitar y configurar la prueba de accesibilidad con la clase 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();
    }
}

De manera predeterminada, las comprobaciones se ejecutan cuando realizas cualquier acción de vista definida en ViewActions. Cada verificación incluye la vista en la que se realiza la acción, así como todas las vistas descendentes. Puedes evaluar toda la jerarquía de vistas de una pantalla durante cada verificación si pasas true a setRunChecksFromRootView(), como se muestra en el siguiente fragmento de código:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Cómo suprimir subconjuntos de resultados

Después de que Espresso ejecute verificaciones de accesibilidad en tu app, es posible que encuentres varias oportunidades para mejorar la accesibilidad que no puedas abordar de inmediato. Para evitar que las pruebas de Espresso fallen continuamente debido a estos resultados, puedes ignorarlas de manera temporal. El framework de prueba de accesibilidad (ATF) proporciona esta funcionalidad con el método setSuppressingResultMatcher(), que le indica a Espresso que suprima todos los resultados que satisfacen la expresión del comparador dado.

Cuando haces cambios en tu app que abordan un aspecto de la accesibilidad, es conveniente que Espresso muestre resultados para tantos otros aspectos de la accesibilidad como sea posible. Por este motivo, lo mejor es suprimir solo las oportunidades de mejora específicas.

Cuando suprimes temporalmente los resultados de la prueba de accesibilidad que planeas abordar más adelante, es importante no suprimir de manera accidental resultados similares. Por este motivo, usa comparadores que tengan un alcance limitado. Para ello, elige un comparador para que Espresso suprima un resultado determinado solo si cumple con cada una de las siguientes verificaciones de accesibilidad:

  1. Verificaciones de accesibilidad de un tipo determinado, como las que comprueban el tamaño de la orientación táctil
  2. Verificaciones de accesibilidad que evalúan un elemento de la IU en particular, como un botón

El ATF define varios comparadores para ayudarte a definir qué resultados mostrar en tus pruebas de Espresso. En el siguiente ejemplo, se suprimen los resultados de las verificaciones que se relacionan con el contraste de color de un solo elemento TextView. El ID del elemento es 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))));