Best Practices für Bedienungshilfen bei Android TV

Dieser Leitfaden enthält Best Practices für Bedienungshilfen bei Android TV und Empfehlungen für native und nicht native Apps.

Warum ist Bedienungshilfen für meine TV-App wichtig?

Sehbehinderungen sind keine Seltenheit unter den Fernsehzuschauern. Laut Weltgesundheitsorganisation (WHO) haben 2, 2 Milliarden Menschen weltweit eine Sehbeeinträchtigung. In den USA haben 32 Millionen Amerikaner im Alter von 18 Jahren und älter einen erheblichen Sehverlust erlebt, wie in der National Health Interview Survey 2018 angegeben. In Europa gehen diese Schätzungen nach der Europäischen Blindenunion (European Blind Union, EBU) auf 30 Millionen blinde und sehbehinderte Personen zurück.

Vor allem aber genießen Nutzer mit Sehbeeinträchtigungen Medieninhalte genauso gut wie sehbehinderte Menschen. Eine von Comcast in Auftrag gegebene Umfrage aus dem Jahr 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% berichteten jedoch auch, dass sie Probleme bei der Suche nach TV-Sendungen hatten. In einer Umfrage aus dem Jahr 2020 im Vereinigten Königreich gaben 80% der Menschen mit Behinderung an, dass sie Probleme mit der Barrierefreiheit von Video-on-Demand-Streamingdiensten hatten.

Unterstützende Technologien können und unterstützen Nutzer mit eingeschränktem Sehvermögen. Dennoch ist es wichtig, die Barrierefreiheit bei der Entdeckung von Inhalten für TV-Apps zu unterstützen. Achten Sie beispielsweise besonders darauf, Navigationshilfen bereitzustellen und Elemente korrekt zu beschriften, und sorgen Sie dafür, dass TV-Apps gut mit Bedienungshilfen wie TalkBack funktionieren. Diese Schritte können die User Experience für Nutzende mit Sehbeeinträchtigungen erheblich verbessern.

Der erste Schritt zur Verbesserung der Barrierefreiheit ist das Bewusstsein. Dieser Leitfaden kann Ihnen und Ihrem Team dabei helfen, Probleme mit der Barrierefreiheit Ihrer TV-App zu ermitteln.

Ressourcen für Android-Bedienungshilfen

Weitere Informationen zu den Bedienungshilfen unter Android finden Sie in unseren Ressourcen zur Entwicklung von Bedienungshilfen.

Textskalierung

Android TV-Apps sollten die vom Nutzer bevorzugte Textskalierung berücksichtigen und dabei verschiedene Pixeldichten unterstützen.

Achten Sie dabei besonders auf Folgendes:

  • Verwenden Sie wrap_content für Dimensionen in UI-Komponenten.
  • Achten Sie darauf, dass Layouts die Komponenten neu anordnen, wenn sich ihre Abmessungen je nach Textskala ändern.
  • Stellen Sie sicher, dass die Komponenten auch bei größeren Textgrößen auf den Bildschirm passen.
  • Verwenden Sie sp-Textgrößeneinheiten nicht 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 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

Ab Android 13 (API-Level 33) und höher kannst du getKeyCodeForKeyLocation() verwenden, um die Schlüsselcodes für erwartete Schlüsselpositionen abzurufen. Das kann erforderlich sein, wenn der Nutzer einige Tastenpositionen neu zugeordnet hat oder eine Tastatur verwendet, die kein typisches Layout hat.

Audiobeschreibung

Ab Android 13 (API-Level 33) und höher können Nutzer dank einer neuen systemweiten Einstellung für Bedienungshilfen Audiobeschreibungen in allen Apps aktivieren. Android TV-Apps können die Präferenz des Nutzers prüfen, indem sie sie 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 AccessibilityManager einen Listener hinzufügen, um zu überwachen, wann sich Nutzereinstellungen ändern:

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);
}