Best Practices für Bedienungshilfen bei Android TV

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

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

Sehbeeinträchtigungen sind bei der Bevölkerung des Fernsehens nicht ungewöhnlich. Laut der Weltgesundheitsorganisation (WHO) haben schätzungsweise 2, 2 Milliarden Menschen weltweit eine Sehbeeinträchtigung. In den USA erlebten 32 Millionen Amerikaner ab 18 Jahren einen erheblichen Verlust der Sehkraft, wie die 2018 National Health Interview Survey erlebt. In Europa liegen laut der Europäischen Blinden Union (EBU) 30 Millionen blinde und sehbehinderte Personen vor.

Vor allem aber mögen Nutzer mit Sehbehinderung sich Medieninhalte genauso gut wie ihre voll sehenden Gleichaltrigen ansehen. 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% von ihnen berichteten jedoch auch von Problemen bei der Suche nach TV-Sendungen. In einer Umfrage von 2020 im Vereinigten Königreich gaben 80% der Menschen mit Behinderung an, dass sie bei Video-on-Demand-Streamingdiensten Probleme mit der Barrierefreiheit hatten.

Hilfstechnologien können zwar Nutzern mit eingeschränktem Sehvermögen helfen und helfen, es ist jedoch wichtig, die Barrierefreiheit bei der Inhaltssuche 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 Nutzende mit Sehbeeinträchtigung erheblich verbessern.

Der erste Schritt zur Verbesserung der Barrierefreiheit ist das Bewusstsein. Dieser Leitfaden kann dir und deinem Team dabei helfen, Probleme mit der Barrierefreiheit deiner TV-App zu erkennen.

Bedienungshilfen für Android

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

Textskalierung

Android TV-Apps sollten die vom Nutzer bevorzugte Textskalierung berücksichtigen, indem unterschiedliche Pixeldichten unterstützt werden.

Achten Sie besonders auf Folgendes:

  • Verwenden Sie wrap_content für Dimensionen in UI-Komponenten.
  • Stellen Sie sicher, dass Layouts Komponenten neu anordnen, wenn sich ihre Abmessungen je nach Textskala ändern.
  • Achten Sie darauf, dass die Komponenten auch bei größerem Text auf den Bildschirm passen.
  • Verwenden Sie keine sp-Textgrößeneinheiten für Komponenten, die nicht flexibel sind.
  • Überprüfen Sie den Wert von FONT_SCALE für eine 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

Unter Android 13 (API-Level 33) und höher können Sie getKeyCodeForKeyLocation() verwenden, um die Schlüsselcodes nach erwarteten Schlüsselstandorten zu suchen. 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) können Nutzer mit einer neuen systemweiten Einstellung für Bedienungshilfen Audiobeschreibungen in allen Apps aktivieren. Android TV-Apps können die Einstellungen 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 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);
}