Vérification de l'accessibilité

Les tests d'accessibilité vous permettent de tester votre application du point de vue de l'ensemble de votre base d'utilisateurs, y compris ceux ayant des besoins en termes d'accessibilité. Cette forme de test peut révéler des opportunités pour rendre votre application plus performante et polyvalente.

Cette page explique comment ajouter des vérifications d'accessibilité à vos tests Espresso existants. Pour en savoir plus sur l'accessibilité, consultez les guides d'accessibilité.

Activer les vérifications

Vous pouvez activer et configurer les tests d'accessibilité à l'aide de 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();
    }
}

Par défaut, les vérifications s'exécutent lorsque vous effectuez une action de vue définie dans ViewActions. Chaque vérification inclut la vue sur laquelle l'action est effectuée, ainsi que toutes les vues descendantes. Vous pouvez évaluer la hiérarchie complète des vues d'un écran lors de chaque vérification en transmettant true à setRunChecksFromRootView(), comme indiqué dans l'extrait de code suivant :

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Supprimer les sous-ensembles de résultats

Une fois qu'Espresso a effectué des vérifications d'accessibilité sur votre application, vous verrez peut-être des options d'amélioration de l'accessibilité dont vous ne pourrez pas vous occuper immédiatement. Pour éviter que les tests Espresso échouent continuellement en raison de ces résultats, vous pouvez les ignorer temporairement. Le framework de test d'accessibilité (ATF) fournit cette fonctionnalité à l'aide de la méthode setSuppressingResultMatcher(), qui indique à Espresso de supprimer tous les résultats qui correspondent à l'expression de mise en correspondance donnée.

Lorsque vous modifiez votre application pour améliorer un aspect de l'accessibilité, il est utile qu'Espresso affiche des résultats pour le plus grand nombre possible d'autres aspects de l'accessibilité. Pour cette raison, il est préférable de ne supprimer que des opportunités d'amélioration connues spécifiques.

Lorsque vous supprimez temporairement les résultats des tests d'accessibilité que vous prévoyez de traiter plus tard, il est important de ne pas supprimer accidentellement des résultats similaires. Pour cette raison, utilisez des expressions de correspondance restreintes. Pour ce faire, choisissez un outil de mise en correspondance afin qu'Espresso ne supprime un résultat donné que s'il satisfait à chacune des vérifications d'accessibilité suivantes:

  1. Les vérifications d'accessibilité d'un certain type, telles que celles qui vérifient la taille des cibles tactiles.
  2. Les vérifications de l'accessibilité d'un élément d'interface particulier, comme un bouton.

L'ATF définit plusieurs outils de mise en correspondance pour vous aider à définir les résultats à afficher dans vos tests Espresso. L'exemple suivant supprime les résultats des vérifications liées au contraste des couleurs d'un seul élément TextView. L'ID de l'élément est 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))));