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