In diesem Leitfaden finden Sie Best Practices für die Barrierefreiheit auf Android TV sowie Empfehlungen für native und nicht native Apps.
Warum ist Barrierefreiheit für meine TV-App wichtig?
Sehbehinderungen sind bei Fernsehzuschauern keine Seltenheit. Laut der Weltgesundheitsorganisation (WHO) haben weltweit etwa 2, 2 Milliarden Menschen eine Sehbehinderung. Laut der National Health Interview Survey 2018 leiden in den USA 32 Millionen Menschen ab 18 Jahren an einem erheblichen Sehverlust. In Europa gibt es nach Schätzungen der European Blind Union (EBU) 30 Millionen blinde und sehbehinderte Menschen.
Am wichtigsten ist, dass Nutzer mit Sehbehinderung Medieninhalte genauso genießen können wie Personen mit normalem Sehvermögen. Eine Umfrage von 2017, die von Comcast in Auftrag gegeben wurde, ergab, dass 96% der Nutzer, die blind oder sehbehindert sind, regelmäßig fernsehen, wobei 81% mehr als eine Stunde pro Tag fernsehen. 65% gaben jedoch an, Probleme beim Suchen nach dem Fernsehprogramm zu haben. Und in einer Umfrage von 2020 im Vereinigten Königreich gaben 80% der Menschen mit Behinderung an, dass sie Probleme mit der Barrierefreiheit bei Video-on-Demand-Streamingdiensten hatten.
Hilfstechnologien können und helfen Nutzern mit eingeschränktem Sehvermögen. Es ist jedoch wichtig, die Barrierefreiheit bei der Suche nach Inhalten in TV-Apps zu unterstützen. Achten Sie beispielsweise besonders darauf, eine Navigationshilfe bereitzustellen und Elemente korrekt zu beschriften. Außerdem sollten TV-Apps gut mit Bedienungshilfen 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, Probleme mit der Barrierefreiheit Ihrer TV-App zu erkennen.
Ressourcen zu Bedienungshilfen für Android
Weitere Informationen zur Barrierefreiheit auf Android-Geräten finden Sie in unseren Ressourcen zur Entwicklung barrierefreier Apps.
Text-Skalierung
Android TV-Apps sollten die Einstellungen der Nutzer für die Textskalierung berücksichtigen, indem verschiedene Pixeldichten unterstützt werden.
Achten Sie dabei besonders auf Folgendes:
- Verwenden Sie
wrap_content
für Dimensionen in UI-Komponenten. - Achten Sie darauf, dass Layouts Komponenten neu anordnen, wenn sich ihre Abmessungen je nach Textskala ändern.
- Achten Sie darauf, dass die Komponenten auch bei einer größeren Textgröße auf dem Bildschirm Platz finden.
- Verwenden Sie keine Textgrößeneinheiten in sp für Komponenten, die nicht flexibel sind.
Prüfen Sie den Wert von
FONT_SCALE
in benutzerdefinierten Datenansichten:// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
Die Textskala 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
Unter Android 13 (API-Level 33) und höher können Sie mit getKeyCodeForKeyLocation()
die Schlüsselcodes für die erwarteten Schlüsselpositionen abrufen.
Das kann erforderlich sein, wenn der Nutzer einige Tasten neu belegt hat oder eine Tastatur verwendet, die kein typisches Layout hat.
Audiodeskription
Unter Android 13 (API-Level 33) und höher können Nutzer über eine neue systemweite Einstellung für die Barrierefreiheit Audiobeschreibungen für alle Apps aktivieren. Android TV-Apps können die Einstellung des Nutzers prüfen, indem sie ihn mit isAudioDescriptionRequested()
abfragen.
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 überwachen, wenn sich die Einstellungen eines Nutzers ändern, indem ein Listener zu AccessibilityManager
hinzugefügt wird:
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); }