In diesem Leitfaden finden Sie Best Practices für die Barrierefreiheit auf Android TV sowie Empfehlungen für systemeigene und nicht systemeigene Apps.
Warum ist Barrierefreiheit für meine TV-App wichtig?
Sehbehinderungen sind unter TV-Zuschauern nicht ungewöhnlich. Schätzungen der Weltgesundheitsorganisation (WHO) zufolge haben weltweit 2, 2 Milliarden Menschen eine Sehbehinderung. Laut der National Health Interview Survey von 2018 haben 32 Millionen Amerikaner ab 18 Jahren einen erheblichen Sehverlust. In Europa gibt es Schätzungen zufolge 30 Millionen blinde und sehbehinderte Menschen, so die European Blind Union (EBU).
Vor allem aber können Nutzer mit eingeschränkter Sehfähigkeit Medieninhalte genauso genießen wie Nutzer ohne Sehbeeinträchtigung. Eine 2017 von Comcast in Auftrag gegebene Umfrage ergab, dass 96% der blinden oder sehbehinderten Nutzer regelmäßig fernsehen und 81% mehr als eine Stunde pro Tag. 65% gaben jedoch auch an, Probleme bei der Suche nach TV-Inhalten zu haben. Und in einer Umfrage von 2020 in Großbritannien gaben 80% der Menschen mit Behinderung an, dass sie bei Video-on-Demand-Streamingdiensten auf Barrierefreiheitsprobleme gestoßen sind.
Hilfstechnologien können und helfen Nutzern mit eingeschränktem Sehvermögen. Es ist jedoch wichtig, die Barrierefreiheit bei der Suche nach Inhalten für TV-Apps zu unterstützen. Achten Sie beispielsweise besonders auf die Bereitstellung von Navigationsanleitungen und die korrekte Kennzeichnung von Elementen. Außerdem sollten TV-Apps gut mit Barrierefreiheitsfunktionen wie TalkBack funktionieren. Diese Schritte können die Nutzung für Nutzer mit Sehbehinderung erheblich verbessern.
Der erste Schritt zur Verbesserung der Barrierefreiheit ist das Bewusstsein. Dieser Leitfaden kann Ihnen und Ihrem Team helfen, Barrierefreiheitsprobleme in Ihrer TV-App zu erkennen.
Ressourcen zu Android-Bedienungshilfen
Weitere Informationen zu Bedienungshilfen unter Android
Text-Skalierung
Android TV-Apps sollten die Einstellung des Nutzers für die Textskalierung berücksichtigen, indem sie verschiedene Pixeldichten unterstützen.
Achten Sie besonders auf Folgendes:
- Verwenden Sie
wrap_content
für Dimensionen in UI-Komponenten. - Achten Sie darauf, dass Komponenten in Layouts neu angeordnet werden, wenn sich ihre Abmessungen je nach Textskalierung ändern.
- Achten Sie darauf, dass Komponenten auch bei größeren Textskalierungen auf den Bildschirm passen.
- Verwenden Sie keine sp-Einheiten für die Textgröße für Komponenten, die nicht flexibel sind.
Prüfen Sie den Wert von
FONT_SCALE
für die Anpassung in benutzerdefinierten Ansichten:// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
Die Textskalierung kann mit dem folgenden Befehl geändert werden:
adb shell settings put system font_scale 1.2f
Unter Android 12 und höher können Nutzer die Textskalierung in den Geräteeinstellungen ändern.
Tastaturlayouts
In Android 13 (API‑Level 33) und höher können Sie getKeyCodeForKeyLocation()
verwenden, um die Tastencodes für erwartete Tastenpositionen abzurufen.
Das kann erforderlich sein, wenn der Nutzer einige Tasten neu belegt hat oder eine Tastatur mit einem ungewöhnlichen Layout verwendet.
Audiodeskription
In Android 13 (API‑Level 33) und höher können Nutzer mit einer neuen systemweiten Einstellung für Barrierefreiheit Audiodeskriptionen für alle Apps aktivieren. Android TV-Apps können die Einstellung des Nutzers abrufen, indem sie isAudioDescriptionRequested()
aufrufen.
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (am.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
Android TV-Apps können Änderungen an den Nutzereinstellungen erkennen, indem sie einen Listener zu AccessibilityManager
hinzufügen:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }