Prüfen der Barrierefreiheit

Wenn Sie Ihre App auf Barrierefreiheit testen, können Sie sie aus der Perspektive aller Nutzer, auch derer mit besonderen Anforderungen, erleben. Diese Art von Tests kann Möglichkeiten aufzeigen, Ihre App leistungsfähiger und vielseitiger zu machen.

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

Prüfungen aktivieren

Sie können Barrierefreiheitstests 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 Hierarchie anzeigen eines Bildschirms bei jedem Check auswerten, indem Sie true an setRunChecksFromRootView() übergeben, wie im folgenden (das) Code-Snippet gezeigt:

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, stellen Sie möglicherweise mehrere Möglichkeiten zur Verbesserung der Barrierefreiheit Ihrer App fest, die Sie nicht sofort beheben können. Damit Espresso-Tests aufgrund dieser Ergebnisse nicht ständig fehlschlagen, können Sie sie vorübergehend ignorieren. Das Accessibility Test Framework (ATF) bietet diese Funktion mit der Methode setSuppressingResultMatcher(). Damit wird Espresso angewiesen, alle Ergebnisse zu unterdrücken, die dem angegebenen Matcher-Ausdruck entsprechen.

Wenn Sie Änderungen an Ihrer App vornehmen, um einen Aspekt der Barrierefreiheit zu verbessern, ist es von Vorteil, wenn Espresso Ergebnisse für möglichst viele andere Aspekte der Barrierefreiheit anzeigt. Aus diesem Grund sollten Sie nur bestimmte bekannte Verbesserungsmöglichkeiten unterdrücken.

Wenn Sie Ergebnisse von Bedienungshilfentests, die Sie später beheben möchten, vorübergehend unterdrücken, ist es wichtig, dass Sie nicht versehentlich ähnliche Ergebnisse unterdrücken. Verwenden Sie daher Matcher mit einem engen Geltungsbereich. Wählen Sie dazu einen Matcher aus, damit Espresso ein bestimmtes Ergebnis nur unterdrückt, wenn es alle der folgenden Barrierefreiheitsprüfungen erfüllt:

  1. Bedienungshilfen-Prüfungen eines bestimmten Typs, z. B. Prüfungen der Größe von Berührungszielen.
  2. Barrierefreiheitsprüfungen, bei denen ein bestimmtes UI-Element wie eine Schaltfläche bewertet wird.

Das ATF definiert mehrere Matcher, 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))));