Sprawdzanie ułatwień dostępu

Testowanie pod kątem ułatwień dostępu pozwala sprawdzić aplikację z perspektywy wszystkich użytkowników, w tym tych, którzy mają specjalne potrzeby. Ta forma testowania może ujawnić możliwości zwiększenia funkcjonalności i wszechstronności aplikacji.

Na tej stronie dowiesz się, jak dodać sprawdzanie ułatwień dostępu do istniejących testów Espresso. Więcej informacji o ułatwieniach dostępu znajdziesz w przewodnikach dotyczących ułatwień dostępu.

Włączanie sprawdzania

Testowanie ułatwień dostępu możesz włączyć i skonfigurować 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 sprawdzanie jest przeprowadzane, gdy wykonujesz dowolną czynność związaną z widokiem zdefiniowaną w ViewActions. Każde sprawdzenie obejmuje widok, w którym wykonywana jest czynność, oraz wszystkie widoki podrzędne. Podczas każdego sprawdzania możesz ocenić całą hierarchię widoków ekranu, przekazując wartość true do setRunChecksFromRootView(), jak pokazano w tym fragmencie kodu:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Pomijanie podzbiorów wyników

Gdy Espresso przeprowadzi sprawdzanie ułatwień dostępu w Twojej aplikacji, możesz znaleźć kilka możliwości poprawy ułatwień dostępu, których nie możesz od razu wprowadzić. Aby testy Espresso nie kończyły się niepowodzeniem z powodu tych wyników, możesz je tymczasowo zignorować. Accessibility Test Framework (ATF) udostępnia tę funkcję za pomocą setSuppressingResultMatcher() metody, która instruuje Espresso, aby pomijało wszystkie wyniki spełniające podane wyrażenie dopasowujące.

Gdy wprowadzisz w aplikacji zmiany, które dotyczą jednego aspektu ułatwień dostępu, warto, aby Espresso pokazywało wyniki dotyczące jak największej liczby innych aspektów ułatwień dostępu. Z tego powodu najlepiej jest pomijać tylko konkretne znane możliwości poprawy.

Gdy tymczasowo pomijasz wyniki testów ułatwień dostępu, które planujesz rozwiązać później, ważne jest, aby nie pominąć przypadkowo podobnych wyników. Z tego powodu używaj dopasowań o wąskim zakresie. Aby to zrobić, wybierz dopasowanie tak, aby Espresso pomijało dany wynik tylko wtedy, gdy spełnia on każde z tych sprawdzeń ułatwień dostępu:

  1. Sprawdzanie ułatwień dostępu określonego typu, np. sprawdzanie rozmiaru obszaru dotyku.
  2. Sprawdzanie ułatwień dostępu, które oceniają konkretny element interfejsu, np. przycisk.

ATF definiuje kilka dopasowań które pomagają określić, które wyniki mają być wyświetlane w testach Espresso. Poniższy przykład pomija wyniki sprawdzeń, które dotyczą 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))));