Barrierefreiheit: Stolpersteine bei mobilen Anwendungen überwinden, Teil 2

Probieren geht über Studieren

Am anschaulichsten können Entwickler eine App auf Barrierefreiheit testen, indem sie sie mit unterschiedlichen Bedienungshilfen benutzen. Es empfiehlt sich daher für Entwickler, den mittlerweile zur Android Accessibility Suite gehörenden Screenreader TalkBack (oder Voice Assisant bei neueren Samsung-Geräten) über die Systemeinstellungen Bedienungshilfen zu aktivieren. Die Übungslektionen, die beim ersten Aktivieren erscheinen und auch danach noch zur Verfügung stehen, helfen dabei, ein Gefühl für die Benutzung eines mobilen Screenreader zu bekommen. Nach einem kurzen Moment der Gewöhnung an die Bedienung mittels Screenreader steht dem Test der eigenen App auf Herz und Nieren nichts mehr im Wege. Weiterhin sollten Entwickler und Tester verifizieren, ob ihre App auch mit veränderter Schrift- und Anzeigegröße noch hinreichend gut bedienbar ist.

Selbstverständlich liefern nicht zuletzt Benutzertests wertvolle Einblicke und damit nicht zu unterschätzendes Feedback zu Hürden in der zugänglichen Benutzerführung. Neben dem manuellen Testen gibt es automatisierte Tools, die eine App auf Barrierefreiheit überprüfen.

Analyse mit Lint

Mit Lint bietet der Android-Werkzeugkasten eine Anwendung, um frühzeitig Programmierfehler und Unzulänglichkeiten aller Art im Projekt mit statischer Code-Analyse zu identifizieren. Dazu zählen einige Mängel bei der Barrierefreiheit: Layoutelemente zu finden, bei denen das contentDescription-Attribut fehlt, ist beispielsweise für Lint ein Leichtes.

Die Analyse lässt sich in Android Studio über den Menüpunkt Analyze | Inspect Code ausführen. Die Ergebnisse zeigt die IDE anschließend im Bereich Inspection Results unter Android | Lint | Accessibility an.

Alternativ lässt sich die Analyse über die Kommandozeile mit dem Gradle-Wrapper im Projekt-Wurzelverzeichnis starten:

./gradlew lint

Android Studio generiert anschließend einen Lint-Bericht und gibt die Pfade zu der XML- und der HTML-Version aus.

Accessibility Scanner

Die Google-App Accessibility Scanner gibt durch den Scan von Benutzeroberflächen Empfehlungen zur Verbesserung der Barrierefreiheit. Sie ist als Bedienungshilfe implementiert und wie der Screenreader über eine passende Systemeinstellung zu aktivieren. Konkret analysiert die App folgende Punkte:

  • Inhaltsbeschriftungen (Labels)
  • Größe von Touch-Zielen
  • anklickbare Elemente
  • Text- und Bild-Kontraste

Weitere Details zur Benutzung und zur Auswertung der Ergebnisse sind auf der Hilfsseite des Tools zu finden.

Node Tree Debugging

Werkzeuge für Barrierefreiheit wie Screenreader haben eine eigene Sicht auf die Benutzeroberfläche einer App. Das in TalkBack enthaltene Node Tree Debugging bietet eine Ansicht auf die Hierarchie und die Attribute von Bedienelementen aus der Perspektive der Werkzeuge. Es ermöglicht, die Baumstruktur eines App-Screens als Log auszugeben. Wie das genau funktioniert und wie die Ergebnisse zu interpretieren sind, ist in der Anleitung detailliert beschrieben.

Espresso

Das Framework Espresso ermöglicht das Schreiben automatisierter Benutzeroberflächentests. Bestehende Tests lassen sich ohne viel Aufwand um eine Überprüfung auf Mängel in der Barrierefreiheit erweitern. Folgender Code – mit aktualisierter import-Anweisung – in der Initialisierungsmethode eines Espresso-Tests konfiguriert ihn auf das Überprüfen der Barrierefreiheit einer View bei jeder Interaktion über ViewAction.

import 
androidx.test.espresso.accessibility.AccessibilityChecks

@RunWith(AndroidJUnit4::class)
@LargeTest
class AccessibilityChecksIntegrationTest {
companion object {
@BeforeClass @JvmStatic
fun enableAccessibilityChecks() {
// aktiviert die zusätzlichen Checks zur Barriefreiheit
AccessibilityChecks.enable()
}
}
}