Sprawdzone metody ułatwień dostępu na Androidzie TV

Ten przewodnik zawiera sprawdzone metody dotyczące dostępności na Androidzie TV oraz rekomendacje dotyczące aplikacji natywnych i nienatywnych.

Dlaczego ułatwienia dostępu są ważne w przypadku aplikacji na telewizory?

Wśród osób oglądających telewizję nie brakuje osób z wadami wzroku. Według Światowej Organizacji Zdrowia (WHO) szacunkowo 2, 2 miliarda osób na całym świecie ma problemy ze wzrokiem. Według badania National Health Interview Survey z 2018 roku w Stanach Zjednoczonych 32 miliony Amerykanów w wieku co najmniej 18 lat doświadczyło znacznej utraty wzroku. Według Europejskiej Unii Niewidomych (EBU) w Europie jest około 30 milionów osób niewidomych i słabowidzących.

Co najważniejsze, użytkownicy z wadami wzroku mogą w pełni korzystać z treści multimedialnych. Z przeprowadzonego w 2017 roku badania na zlecenie firmy Comcast wynika, że 96% użytkowników, którzy są niewidomi lub niedowidzący, regularnie ogląda telewizję, a 81% z nich spędza przed telewizorem ponad godzinę dziennie. 65% osób zgłosiło też problemy ze znalezieniem informacji o programach telewizyjnych. W 2020 r. w Wielkiej Brytanii przeprowadzono ankietę, w której 80% osób z niepełnosprawnością przyznało, że miało problemy z dostępnością usług strumieniowania wideo na żądanie.

Technologie wspomagające mogą pomagać użytkownikom z wadami wzroku, ale ważne jest, aby wspierać dostępność w procesie odkrywania treści w aplikacjach telewizyjnych. Zwróć szczególną uwagę na wskazówki dotyczące nawigacji i prawidłowe etykietowanie elementów oraz upewnij się, że aplikacje TV działają prawidłowo z funkcjami ułatwień dostępu, takimi jak TalkBack. Te kroki mogą znacznie poprawić komfort korzystania z usługi przez osoby z wadami wzroku.

Pierwszym krokiem do poprawy dostępności jest świadomość. Ten przewodnik może pomóc Tobie i Twojemu zespołowi w wykrywaniu problemów z dostępnością w aplikacji na telewizor.

Materiały dotyczące ułatwień dostępu na Androidzie

Więcej informacji o ułatwieniach dostępu na Androidzie znajdziesz w naszych materiałach dla programistów.

Skalowanie tekstu

Aplikacje na Androida TV powinny uwzględniać preferencje użytkownika dotyczące skalowania tekstu, obsługując różne gęstości pikseli.

Zwróć szczególną uwagę na te kwestie:

  • W przypadku wymiarów w komponentach interfejsu używaj jednostki wrap_content.
  • Upewnij się, że układy zmieniają rozmieszczenie komponentów w zależności od skali tekstu.
  • Upewnij się, że komponenty nadal mieszczą się na ekranie przy większych skalach tekstu.
  • Nie używaj jednostek rozmiaru tekstu sp w przypadku komponentów, które nie są elastyczne.
  • Sprawdź wartość FONT_SCALE w przypadku dostosowania w widokach niestandardowych:

    // Checking font scale with Context
    val scale = resources.configuration.fontScale
    Log.d(TAG, "Text scale is: " + scale)
    

Skalę tekstu można zmienić za pomocą tego polecenia:

adb shell settings put system font_scale 1.2f

Na Androidzie 12 i nowszych użytkownicy mogą zmieniać skalowanie tekstu w ustawieniach urządzenia.

Układy klawiatury

Na Androidzie 13 (API na poziomie 33) i nowszym możesz użyć getKeyCodeForKeyLocation() do wyszukiwania kodów klawiszy w oczekiwanych lokalizacjach klawiszy. Może to być konieczne, jeśli użytkownik zmienił przypisanie niektórych klawiszy lub korzysta z klawiatury o nietypowym układzie.

Audiodeskrypcja

W Androidzie 13 (API na poziomie 33) i nowszych wersjach dostępna jest nowe ustawienie ułatwień dostępu w całym systemie, które umożliwia użytkownikom włączenie audiodeskrypcji we wszystkich aplikacjach. Aplikacje na Androida TV mogą sprawdzać preferencje użytkownika, wysyłając zapytanie za pomocą isAudioDescriptionRequested().

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
}

Aplikacje na Androida TV mogą monitorować zmiany preferencji użytkownika, dodając odbiornik do AccessibilityManager:

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