Il test di accessibilità ti consente di provare la tua app dal punto di vista di tutta la tua base di utenti, inclusi quelli con esigenze di accessibilità. Questa forma di test può rivelare opportunità per rendere la tua app più potente e versatile.
In questa pagina viene descritto come aggiungere controlli di accessibilità ai test Espresso esistenti. Per ulteriori informazioni sull'accessibilità, consulta le guide sull'accessibilità.
Attivare i controlli
Puoi attivare e configurare i test di accessibilità utilizzando la
AccessibilityChecks
classe:
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 a
setRunChecksFromRootView(),
come mostrato nel seguente snippet di codice:
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 risultati 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. Accessibility Test
Framework (ATF) fornisce questa funzionalità utilizzando il
setSuppressingResultMatcher()
metodo, 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, è consigliabile eliminare solo opportunità di miglioramento specifiche e note.
Quando elimini temporaneamente i risultati dei test di accessibilità che prevedi di risolvere in un secondo momento, è importante non eliminare accidentalmente risultati simili. Per questo motivo, utilizza matcher con un ambito ristretto. Per farlo, scegli un matcher in modo che Espresso elimini un determinato risultato solo se soddisfa ciascuno dei seguenti controlli di accessibilità:
- Controlli di accessibilità di un determinato tipo, ad esempio quelli che controllano le dimensioni del target di tocco.
- Controlli di accessibilità che valutano un particolare elemento dell'interfaccia utente, ad esempio un pulsante.
Il ATF definisce diversi matcher
per aiutarti a definire quali risultati mostrare nei test Espresso. Il seguente esempio elimina i risultati dei controlli relativi al contrasto cromatico 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))));