Android Accessibility - TalkBack richtig in Apps umsetzen
In diesem Beitrag behandeln wir, wie TalkBack funktioniert, Unterstützung bei der Implementierung sowie typische Probleme bei der Umsetzung.
Warum ist Accessibility in Apps entscheidend?
Accessibility – auf Deutsch „Barrierefreiheit“ – sorgt dafür, dass deine Android-App für alle Nutzer, insbesondere aber für Menschen mit Sehbeeinträchtigung (gut) bedienbar ist. Deshalb gehen wir heute besonders auf die Unterstützung von TalkBack in Android-Apps ein.
Viele Nutzerinnen und Nutzer sind auf klare Strukturen, eindeutige Beschriftungen sowie korrektes Fokusmanagement angewiesen, um Apps problemlos bedienen zu können. Nutzer:innen mit Sehbeeinträchtigung benötigen beispielsweise verständliche Beschreibungen für Buttons und andere interaktive Elemente, damit diese von TalkBack korrekt vorgelesen werden können. Dabei werden die Elemente nicht nur vorgelesen – gleichzeitig erhalten die Nutzerinnen und Nutzer auch Hinweise, wie sie diese bedienen können.
Eine App, die TalkBack optimal unterstützt, bietet einen barrierefreien Zugang zu sämtlichen Funktionen und Inhalten. Wer von Anfang an Accessibility berücksichtigt, stellt sicher, dass niemand ausgeschlossen wird – und eröffnet sich gleichzeitig eine größere Nutzergruppe sowie eine höhere Nutzerzufriedenheit.
Was ist TalkBack?
TalkBack ist der integrierte Screenreader von Android, der speziell dafür entwickelt wurde, blinden und sehbeeinträchtigten Menschen die Nutzung ihrer Geräte und Apps zu ermöglichen. Sobald TalkBack aktiviert ist, ändert sich die Art, wie Nutzerinnen und Nutzer mit ihrem Smartphone interagieren. Elemente werden fokussiert, vorgelesen und danach kann mit ihnen über spezielle Gesten interagiert werden, z.B. Double-Tap irgendwo auf den Bildschirm ist ein Klick auf das fokussierte Element, wenn TalkBack aktiv ist.
TalkBack aktivieren und deaktivieren
TalkBack lässt sich einfach über die Android-Einstellungen aktivieren:
Öffne die „Einstellungen“ deines Android-Geräts.
Wähle „Bedienungshilfen“ (manchmal auch „Barrierefreiheit“ oder „Accessibility“).
Tippe auf „TalkBack“ und aktiviere bzw. deaktiviere es mit dem Schalter.
TalkBack mit Tastenkombination ein- und ausschalten
Alternativ kann TalkBack auch über eine Tastenkombination aktiviert werden, wenn diese in den Bedienungshilfen-Einstellungen hinterlegt wurde (z. B. beide Lautstärketasten gleichzeitig für 3 Sekunden gedrückt halten).
- Achtung bei der Implementierung: Durch den Shortcut kann TalkBack während der App Nutzung ein- bzw. ausgeschalten werden. Falls auf gewissen Screens die Funktionalität abhängig vom TalkBack Status implementiert wurde, ist es daher sinnvoll, einen Listener oder State auf den aktuellen TalkBack Status zu setzen und bei In-App-Änderungen entsprechend zu reagieren.
Alternative Gestensteuerung: So funktioniert TalkBack
Statt auf Elemente zu klicken, werden die Screen Elemente fokussiert, von TalkBack vorgelesen und man kann über bestimmte Gesten mit ihnen interagieren. Wichtig ist das Verständnis, dass hier mit TalkBack- bzw. Accessibility-Fokus mit dem Screen interagiert wird und nicht über die Standard Klick- und Touchgesten.
Die Gestensteuerung funktioniert also anders als gewohnt. TalkBack-Nutzer:innen navigieren durch Apps mittels Wisch- und Tippgesten, die sich aber von den Standard-Gesten unterscheiden. Hier eine Übersicht der Steuerung, wenn TalkBack aktiv ist:
- Nach rechts oder links wischen: Fokus auf nächstes bzw. vorheriges Element verschieben
- Doppelt tippen (Double-Tap): Aktivieren des aktuell fokussierten Elements (z. B. Button klicken).
- Mit zwei Fingern wischen: Scrollen (z. B. Listen nach oben oder unten scrollen).
- Nach oben und rechts wischen („L“-Geste): Globales Kontextmenü von TalkBack öffnen, um Einstellungen vorzunehmen.
- Nach unten und links wischen (umgekehrte „L“-Geste): Zurück-Navigation auslösen.
Für eine optimale TalkBack-Unterstützung ist es also essenziell, dass Elemente in der App mit klaren und verständlichen Beschreibungen (Content Descriptions) versehen werden und dass das Fokusmanagement zuverlässig funktioniert.
Den Accessibility Fokus verstehen
TalkBack besitzt einen eigenen, sogenannten Accessibility-Fokus, der unabhängig vom Eingabefokus für Tastatur oder Touch funktioniert. Dieser Accessibility-Fokus bestimmt, welches Element gerade vorgelesen wird und auf welche Aktionen reagiert wird.
Typische TalkBack Probleme und wie sie gelöst werden können
Obwohl Accessibility eigentlich Bestandteil jeder Android-App sein sollte, gibt es in der Praxis einige typische Stolpersteine, die die Implementierung erschweren. Die folgenden Herausforderungen treten bei der Entwicklung immer wieder auf – hier behandeln wir, wie diese vermieden oder gelöst werden können.
TalkBack liest Elemente nicht vor oder überspringt sie
Problem
Deine App enthält Buttons, Bilder oder andere interaktive Elemente, aber TalkBack überspringt diese, ohne etwas vorzulesen.
Mögliche Ursache
Das kann mehrere Ursachen haben. Meist fehlen Content Descriptions, es handelt sich um CustomViews, mit denen TalkBack nicht umgehen kann oder Elemente sind als nicht wichtig ( importantForAccessibility bzw. mit JetPack Compose mit dem Aufruf „ clearAndSetSemantics { } „) markiert. Es kann aber auch sein, dass enabled und/oder focusable auf „false“ gesetzt sind.
Lösungsansatz
- Sicherstellen, dass jedes interaktive Element eine klare und verständliche contentDescription gesetzt hat
- enabled und focusable überprüfen
- importantForAccessibility auf „Yes“ setzen
- Bei JetPack Compose semantics überprüfen
Talkback Fokus funktioniert nicht richtig
Problem
Probleme bei der Navigation oder TalkBack sagt zwar ein Element an, aber der tatsächliche Eingabefokus (Touch- oder Tastaturfokus) liegt woanders.
Mögliche Ursache
Häufig verursacht durch ein fehlerhaftes Fokusmanagement oder Views, die von TalkBack fokussiert, aber nicht bedienbar sind (z. B. versteckte oder leere Views). Da Accessibility-Fokus und Eingabefokus technisch getrennt sind, werden sie nicht automatisch synchronisiert bei Events wie dem Erscheinen der Tastatur.
Lösungsansatz
Ein explizites Fokusmanagement kann hier weiterhelfen:
- Den Accessibility-Fokus gezielt auf passende, erreichbare Elemente setzen. Zudem vermeiden, dass unsichtbare oder dekorative Views den Accessibility-Fokus erhalten – über importantForAccessibility, focusable bzw. enabled / clearAndSetSemantics { } bei JetPack Compose.
- Bei den Events, die das Fehlverhalten verursachen, den Accessibility-Fokus und Eingabefokus explizit über entsprechende Methoden (requestFocus() oder Accessibility-Events) setzen, um sicherzustellen, dass Fokuszustände immer synchron sind
CustomView wird von TalkBack nicht erkannt
Problem
CustomViews (z. B. eigene Canvas-Views) werden nicht von TalkBack vorgelesen oder ignoriert.
Mögliche Ursache
CustomViews haben standardmäßig keine Accessibility-Informationen hinterlegt.
Lösungsansatz
Verwende eine Accessibility Delegate, um CustomViews explizit für TalkBack sichtbar und nutzbar zu machen. Dabei ist es wichtig, alle relevanten Informationen für TalkBack zu hinterlegen.
Fokusproblem bei JetPack Compose UI Version < 1.7
Problem
Bei der Verwendung JetPack Compose UI mit Versionen unter 1.7 kommt es zu Problemen, wenn man ein Element fokussiert hat und danach TalkBack über den Shortcut wieder deaktiviert. Hier kommt es anschließend zu Problemen mit der Interaktion von Views. Es ist beispielsweise nun ein DoubleTap notwendig, um Buttons zu klicken.
Lösungsansatz
Jetpack Compose UI Dependency auf Version 1.7 oder höher upgraden.
Sie benötigen Unterstützung bei der Umsetzung?
Wir stehen Ihnen gerne mit unserer Expertise zum Thema Accessibility in Mobile Apps zur Seite und freuen uns auf ein Kennenlernen!