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ę nierzadko występują problemy ze wzrokiem. Według Światowej Organizacji Zdrowia (WHO) 2, 2 miliarda ludzi na świecie ma problemy ze wzrokiem. Według Narodowego Ankietowego Badania Zdrowia z 2018 r. w Stanach Zjednoczonych 32 miliony Amerykanów w wieku co najmniej 18 lat doświadczyło znacznego pogorszenia wzroku. Według Europejskiego Związku Niewidomych (EBU) w Europie 30 milionów osób niewidzących i słabowidzących.
Co najważniejsze, użytkownicy z wadą wzroku mogą korzystać z treści multimedialnych w takim samym stopniu jak ich pełnosprawni rówieśnicy. Badanie przeprowadzone w 2017 r. na zlecenie Comcast wykazało, że 96% niewidomych i niedowidzących użytkowników regularnie ogląda telewizję, a 81% z nich spędza przed telewizorem ponad godzinę dziennie. 65% respondentów zgłasza jednak, że ma problemy z wyszukiwaniem informacji o programach telewizyjnych. W badaniu przeprowadzonym w 2020 r. w Wielkiej Brytanii 80% osób niepełnosprawnych stwierdziło, że w przypadku usług strumieniowania wideo na żądanie napotykają problemy z dostępnością.
Chociaż technologie wspomagające mogą pomagać niedowidzącym użytkownikom, ważne jest, aby w aplikacji na telewizor uwzględnić ułatwienia dostępu w procesie odkrywania treści. Zwróć na przykład szczególną uwagę na wskazówki dotyczące nawigacji i prawidłowe oznaczanie elementów oraz upewnij się, że aplikacje na telewizory dobrze współpracują z funkcjami ułatwień dostępu, takimi jak TalkBack. Dzięki temu użytkownicy z niepełnosprawnością wzroku będą mogli znacznie lepiej korzystać z usługi.
Pierwszym krokiem na drodze do poprawy ułatwień dostępu jest uświadomienie. Ten przewodnik może pomóc Ci i Twojemu zespołowi w odkrywaniu problemów z dostępem w aplikacji na telewizor.
Materiały na temat ułatwień dostępu w Androidzie
Więcej informacji o ułatwieniach dostępu na Androidzie znajdziesz w materiałach dla programistów dotyczących ułatwień dostępu.
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:
- Używaj wymiarów
wrap_content
w komponentach interfejsu użytkownika. - Upewnij się, że układy przestawiają komponenty, gdy ich wymiary zmieniają się w zależności od skali tekstu.
- Upewnij się, że komponenty nadal mieszczą się na ekranie przy większych rozmiarach tekstu.
- Nie używaj jednostek rozmiaru tekstu sp w przypadku komponentów, które nie są elastyczne.
Sprawdź wartość parametru
FONT_SCALE
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
W Androidzie 12 i nowszych użytkownicy mogą zmieniać skalowanie tekstu w ustawieniach urządzenia.
Układy klawiatury
W Androidzie 13 (poziom API 33) lub nowszym możesz użyć getKeyCodeForKeyLocation()
, aby odczytać kody kluczy w przypadku oczekiwanych lokalizacji kluczy.
Może być to konieczne, jeśli użytkownik zmienił mapowanie niektórych klawiszy lub używa klawiatury o nietypowym układzie.
Audiodeskrypcja
W Androidzie 13 (API na poziomie 33) i nowszych nowe ustawienie dostępności w całym systemie umożliwia użytkownikom włączanie audiodeskrypcji we wszystkich aplikacjach. Aplikacje na Androida TV mogą sprawdzić 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 listenera 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); }