Las pruebas de accesibilidad te permiten experimentar tu aplicación desde la perspectiva de toda tu base de usuarios, incluidos los usuarios con necesidades de accesibilidad. Esta forma de las pruebas pueden revelar oportunidades para hacer que tu app sea más potente y versátil.
En esta página, se describe cómo agregar verificaciones de accesibilidad a tu Espresso existente. y pruebas. Para obtener más información sobre la accesibilidad, consulta el artículo Accesibilidad guías.
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:
- Verificaciones de accesibilidad de un tipo determinado, como las que comprueban el tamaño de la orientación táctil
- 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))));