I test di accessibilità ti consentono di provare la tua app dal punto di vista dell'intera base utenti, inclusi gli utenti con esigenze di accessibilità. Questo tipo di test può rivelare opportunità per rendere la tua app più potente e versatile.
Questa pagina descrive come aggiungere controlli di accessibilità ai test Espresso esistenti. Per ulteriori informazioni sull'accessibilità, consulta le guide all'accessibilità.
Abilita controlli
Puoi attivare e configurare i test di accessibilità utilizzando la 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();
}
}
Per impostazione predefinita, i controlli vengono eseguiti quando esegui qualsiasi azione di visualizzazione definita in
ViewActions. Ogni
controllo include la visualizzazione su cui viene eseguita l'azione, nonché tutte le
visualizzazioni discendenti. Puoi valutare l'intera gerarchia di oggetti View di una schermata durante
ogni controllo passando true in
setRunChecksFromRootView(),
come mostrato nello snippet di codice seguente:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
Eliminare sottoinsiemi di risultati
Dopo che Espresso esegue i controlli di accessibilità sulla tua app, potresti trovare diversi
opportunità per migliorare l'accessibilità della tua app che non puoi risolvere
immediatamente. Per evitare che i test Espresso continuino a non riuscire a causa di questi risultati, puoi ignorarli temporaneamente. L'Accessibility Test Framework (ATF) fornisce questa funzionalità utilizzando il metodo setSuppressingResultMatcher(), che indica a Espresso di eliminare tutti i risultati che soddisfano l'espressione del matcher specificata.
Quando apporti modifiche alla tua app che riguardano un aspetto dell'accessibilità, è utile che Espresso mostri i risultati per il maggior numero possibile di altri aspetti dell'accessibilità. Per questo motivo, è meglio eliminare solo opportunità di miglioramento specifiche e note.
Quando sopprimi temporaneamente i risultati del test di accessibilità che prevedi di risolvere in un secondo momento, è importante non sopprimere accidentalmente risultati simili. Per questo motivo, utilizza i selettori con un ambito ristretto. Per farlo, scegli un matcher in modo che Espresso sopprima un determinato risultato solo se soddisfa ciascuno dei seguenti controlli di accessibilità:
- Controlli di accessibilità di un determinato tipo, ad esempio quelli che verificano le dimensioni del target di tocco.
- Controlli di accessibilità che valutano un particolare elemento UI, ad esempio un pulsante.
L'ATF definisce diversi matcher
per aiutarti a definire quali risultati mostrare nei test Espresso. L'esempio
seguente sopprime i risultati dei controlli relativi al contrasto di colore di un singolo elemento TextView. L'ID dell'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))));