Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Cómo comprobar la 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 prueba puede revelar oportunidades para que tu app sea más poderosa y versátil.

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

Cómo habilitar las comprobaciones

Puedes habilitar y configurar la prueba de accesibilidad con la clase AccessibilityChecks:

Kotlin

    import androidx.test.espresso.contrib.AccessibilityChecks

    @RunWith(AndroidJUnit4::class)
    @LargeTest
    class MyWelcomeWorkflowIntegrationTest {
        companion object {
            @Before @JvmStatic
            fun enableAccessibilityChecks() {
                AccessibilityChecks.enable()
            }
        }
    }
    

Java

    import androidx.test.espresso.contrib.AccessibilityChecks;

    @RunWith(AndroidJUnit4.class)
    @LargeTest
    public class MyWelcomeWorkflowIntegrationTest {
        @Before
        public static 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 temporalmente. 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 beneficioso que Espresso muestre resultados para tantos otros aspectos de la accesibilidad como sea posible. Por este motivo, es mejor 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 accidentalmente resultados similares. Por este motivo, usa comparadores que tengan un alcance limitado. Para ello, elige un comparador a fin de 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 eliminan 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(
                        matchesCheckNames(`is`("TextContrastViewCheck")),
                        matchesViews(withId(R.id.countTV))
                    )
            )
    }
    

Java

    AccessibilityValidator myChecksValidator = AccessibilityChecks.enable();
    Matcher<? super AccessibilityViewCheckResult> myChecksMatcher =
            Matchers.allOf(matchesCheckNames(is("TextContrastViewCheck")),
                           matchesViews(withId(R.id.countTV)));
    myChecksValidator.setSuppressingResultMatcher(myChecksMatcher);