Prüfen der Barrierefreiheit

Das Testen der Barrierefreiheit ermöglicht es Ihnen, Ihre App aus der Perspektive Ihrer gesamten Nutzerbasis zu testen, einschließlich Nutzern mit Anforderungen an die Barrierefreiheit. Mit dieser Form des Tests können Sie herausfinden, wie Sie Ihre App leistungsfähiger und vielseitiger gestalten können.

Auf dieser Seite wird beschrieben, wie Sie vorhandenen Espresso-Tests Bedienungshilfen-Prüfungen hinzufügen. Weitere Informationen zur Barrierefreiheit finden Sie in den Leitfäden zur Barrierefreiheit.

Prüfungen aktivieren

Sie können Bedienungshilfentests mit der Klasse AccessibilityChecks aktivieren und konfigurieren:

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();
    }
}

Standardmäßig werden die Prüfungen ausgeführt, wenn Sie eine in ViewActions definierte Ansichtsaktion ausführen. Jede Prüfung umfasst die Ansicht, in der die Aktion ausgeführt wird, sowie alle untergeordneten Ansichten. Sie können die gesamte Ansichtshierarchie eines Bildschirms bei jeder Prüfung auswerten. Dazu übergeben Sie true wie im folgenden Code-Snippet an setRunChecksFromRootView():

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Teilmengen von Ergebnissen unterdrücken

Nachdem Espresso Barrierefreiheitsprüfungen für Ihre App ausgeführt hat, gibt es möglicherweise mehrere Möglichkeiten, die Barrierefreiheit Ihrer App zu verbessern, die Sie nicht sofort beheben können. Um zu verhindern, dass Espresso-Tests aufgrund dieser Ergebnisse ständig fehlschlagen, können Sie sie vorübergehend ignorieren. Das Accessibility Test Framework (ATF) stellt diese Funktionen mithilfe der Methode setSuppressingResultMatcher() bereit, die Espresso anweist, alle Ergebnisse zu unterdrücken, die den angegebenen Abgleichausdruck erfüllen.

Wenn Sie Änderungen an Ihrer App vornehmen, die einen Aspekt der Barrierefreiheit betreffen, ist es von Espresso von Vorteil, Ergebnisse für so viele andere Aspekte der Barrierefreiheit wie möglich anzuzeigen. Aus diesem Grund ist es am besten, nur bestimmte bekannte Verbesserungsmöglichkeiten zu unterdrücken.

Wenn Sie Ergebnisse von Bedienungshilfentests vorübergehend unterdrücken, die Sie später behandeln möchten, ist es wichtig, dass Sie ähnliche Ergebnisse nicht versehentlich unterdrücken. Verwenden Sie daher eng gefasste Abgleichstools. Wählen Sie dazu einen Matcher aus, sodass Espresso ein bestimmtes Ergebnis nur unterdrückt, wenn es jede der folgenden Prüfung auf Barrierefreiheit erfüllt:

  1. Prüfung der Barrierefreiheit eines bestimmten Typs, z. B. Prüfung auf die Größe des Berührungszielbereichs.
  2. Bedienungshilfenprüfungen, mit denen ein bestimmtes UI-Element bewertet wird, z. B. eine Schaltfläche

Das ATF definiert mehrere Abgleichausdrücke, mit denen Sie festlegen können, welche Ergebnisse in Ihren Espresso-Tests angezeigt werden sollen. Im folgenden Beispiel werden die Ergebnisse von Prüfungen unterdrückt, die sich auf den Farbkontrast eines einzelnen TextView-Elements beziehen. Die ID des Elements lautet 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))));