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?
Sehbeeinträchtigungen 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 liegen laut der Europäischen Blinden Union (EBU) 30 Millionen blinde und sehbehinderte Menschen vor.
Am wichtigsten ist, dass Nutzer mit Sehbehinderung Medieninhalte genauso genießen können wie Personen mit normalem Sehvermögen. Eine von Comcast in Auftrag gegebene Umfrage von 2017 ergab, dass 96% der Nutzer mit Sehbehinderung oder eingeschränktem Sehvermögen regelmäßig fernsehen, 81% sehen sich mehr als eine Stunde pro Tag an. 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 zwar Nutzern mit eingeschränktem Sehvermögen helfen und helfen, es ist jedoch wichtig, die Barrierefreiheit beim Entdecken von Inhalten für TV-Apps zu unterstützen. Achte beispielsweise besonders darauf, Navigationshinweise bereitzustellen und Elemente richtig zu kennzeichnen, und achte darauf, dass 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 zu Bedienungshilfen unter Android finden Sie in unseren Ressourcen zur Entwicklung von Bedienungshilfen.
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 sich die Layouts neu anordnen, wenn sich die 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 wichtige Positionen neu zugeordnet 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 beobachten, wenn sich die Einstellungen eines Nutzers ändern, indem sie AccessibilityManager
einen Listener 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); }