Ten przewodnik przedstawia sprawdzone metody korzystania z ułatwień dostępu na Androidzie TV oraz zalecenia dotyczące zarówno aplikacji natywnych, jak i innych niż natywne.
Dlaczego ułatwienia dostępu są ważne w mojej aplikacji na telewizor?
Wada wzroku nie jest rzadkością wśród osób oglądających telewizję. Według Światowej Organizacji Zdrowia (WHO) 2, 2 mld ludzi na świecie ma problemy ze wzrokiem. Jak wynika z badania National Health Interview Survey z 2018 r., w Stanach Zjednoczonych 32 miliony Amerykanów w wieku 18 lat i starsze doświadczyły znaczną utratę wzroku. Według szacunków Europejskiego Obszaru Gospodarczego w Europie 30 milionów osób niewidomych i niedowidzących.
Co najważniejsze, użytkownicy z wadami wzroku korzystają z treści multimedialnych tak samo jak ich w pełni widzący rówieśnicy. Ankieta z 2017 r. przeprowadzona przez Comcast wykazała, że 96% użytkowników niewidomych lub niedowidzących regularnie ogląda telewizję, a 81% ogląda telewizję przez ponad godzinę dziennie. Jednak 65% osób zgłosiło problemy z wyszukiwaniem programów telewizyjnych. W ankiecie przeprowadzonej w 2020 r. w Wielkiej Brytanii 80% osób niepełnosprawnych stwierdziło, że miały problemy z ułatwieniami dostępu w usługach strumieniowania filmów na żądanie.
Chociaż technologie wspomagające osoby z niepełnosprawnością mogą być przydatne dla użytkowników niedowidzących, ważne jest, aby w aplikacjach na telewizory były dostępne ułatwienia dostępu do treści podczas odkrywania treści. Zwróć na przykład szczególną uwagę na podawanie wskazówek nawigacyjnych i prawidłowe oznaczanie elementów. Zadbaj też o to, by aplikacje na telewizory dobrze współpracowały z funkcjami ułatwień dostępu takimi jak TalkBack. Te czynności mogą znacznie ułatwić użytkownikom z wadą wzroku.
Pierwszym krokiem w poprawie dostępności jest zwiększanie świadomości marki. Ten przewodnik może pomóc Tobie i Twojemu zespołowi odkryć problemy z ułatwieniami dostępu w aplikacji TV.
Materiały na temat ułatwień dostępu w Androidzie
Aby dowiedzieć się więcej o ułatwieniach dostępu na Androidzie, zapoznaj się z naszymi zasobami dla deweloperów dotyczącymi ułatwień dostępu.
Skalowanie tekstu
Aplikacje na Androida TV powinny uwzględniać preferencje użytkownika dotyczące skalowania tekstu, obsługując różną gęstość pikseli.
Zwróć szczególną uwagę na:
- Użyj operatora
wrap_content
w przypadku wymiarów w komponentach interfejsu. - Dopilnuj, aby układy zmieniały kolejność komponentów, ponieważ ich wymiary zmieniają się w zależności od skali tekstu.
- Upewnij się, że komponenty nadal mieszczą się na ekranie w większych skalach tekstu.
- Nie używaj jednostek rozmiaru tekstu w komponentach, które nie są elastyczne.
Sprawdź wartość
FONT_SCALE
w celu 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ą zmienić skalowanie tekstu w ustawieniach urządzenia.
Układy klawiatury
Na Androidzie 13 (poziom interfejsu API 33) i nowszych możesz użyć getKeyCodeForKeyLocation()
, aby wyszukać kody kluczy pod kątem oczekiwanych lokalizacji kluczy.
Może to być konieczne, jeśli ponownie zmapowano niektóre lokalizacje klawiszy lub jeśli korzysta on z klawiatury o nietypowym układzie.
Audiodeskrypcja
W Androidzie 13 (poziom interfejsu API 33) i nowszych nowe systemowe ustawienia ułatwień dostępu umożliwiają użytkownikom włączanie audiodeskrypcji we wszystkich aplikacjach. Aplikacje na Androida TV mogą sprawdzać preferencje użytkownika, wysyłając do nich 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 detektor 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); }