Sprawdzanie ułatwień dostępu

Testowanie ułatwień dostępu pozwala spojrzeć na aplikację z perspektywy wszystkich użytkowników, w tym osób, które potrzebują ułatwień dostępu. Ta forma testowania może ujawnić możliwości rozwijania i ulepszania aplikacji.

Na tej stronie opisujemy, jak dodawać mechanizmy kontroli ułatwień dostępu do istniejących testów Espresso. Więcej informacji o ułatwieniach dostępu znajdziesz w przewodniku po ułatwieniach dostępu.

Włącz sprawdzanie

Możesz włączyć i skonfigurować testowanie ułatwień dostępu za pomocą klasy 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();
    }
}

Domyślnie testy są przeprowadzane podczas wykonywania dowolnego działania związanego z wyświetlaniem zdefiniowanego w ViewActions. Każde sprawdzanie obejmuje widok, w którym wykonywane jest działanie, a także wszystkie widoki podrzędne. Podczas każdego sprawdzania możesz ocenić całą hierarchię widoków ekranu, przekazując true do setRunChecksFromRootView(), jak pokazano w tym fragmencie kodu:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Pomiń podzbiory wyników

Gdy Espresso sprawdzi ułatwienia dostępu w Twojej aplikacji, może pojawić się kilka możliwości poprawy ułatwień dostępu, które nie będą od razu działać. Jeśli chcesz, by testy espresso nie kończyły się ciągłym niepowodzeniem z powodu takich wyników, możesz je tymczasowo zignorować. Test ułatwień dostępu (ATF) udostępnia tę funkcję za pomocą metody setSuppressingResultMatcher(), która powoduje, że Espresso pomija wszystkie wyniki, które pasują do danego wyrażenia dopasowania.

Jeśli wprowadzasz w aplikacji zmiany dotyczące jednego z aspektów ułatwień dostępu, warto, aby aplikacja Espresso wyświetlała wyniki dotyczące jak największej liczby innych aspektów ułatwień dostępu. Z tego powodu najlepiej unikać tylko konkretnych znanych możliwości poprawy.

Gdy tymczasowo pomijasz wyniki z testów ułatwień dostępu, którymi planujesz zająć się później, pamiętaj, aby przypadkowo nie pomijać podobnych wyników. Z tego powodu należy używać dopasowań o wąskim zakresie. Aby to zrobić, wybierz dopasowanie, tak aby Espresso pomijał dany wynik tylko wtedy, gdy spełnia każdy z tych warunków ułatwień dostępu:

  1. Testy ułatwień dostępu określonego typu, np. sprawdzające rozmiar docelowych elementów dotykowych.
  2. Mechanizmy kontroli ułatwień dostępu oceniają określony element interfejsu, np. przycisk.

W części strony widocznej na ekranie definiuje kilka dopasowań pomagających wskazać, które wyniki mają być wyświetlane w teście espresso. Poniższy przykład pomija wyniki sprawdzania kontrastu kolorów pojedynczego elementu TextView. Identyfikator elementu to 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))));