Z tego przewodnika dowiesz się, jak stosować sprawdzone metody dotyczące ułatwień dostępu w Androidzie TV, oraz poznasz zalecenia dotyczące aplikacji natywnych i nienatywnych.
Dlaczego ułatwienia dostępu są ważne w przypadku mojej aplikacji TV?
Wady wzroku są dość powszechne wśród osób oglądających telewizję. Według Światowej Organizacji Zdrowia (WHO) na całym świecie około 2,2 mld osób ma wadę wzroku, według. W Stanach Zjednoczonych według badania National Health Interview Survey z 2018 r. 32 mln Amerykanów w wieku 18 lat i starszych doświadczyło znacznej utraty wzroku. W Europie według Europejskiej Unii Niewidomych (EBU) szacuje się, że jest 30 mln osób niewidomych i niedowidzących.
Co najważniejsze, użytkownicy z wadami wzroku lubią treści multimedialne tak samo jak osoby w pełni sprawne. Z badania z 2017 r. przeprowadzonego na zlecenie firmy Comcast wynika, że 96% użytkowników niewidomych lub niedowidzących regularnie ogląda telewizję, a 81% z nich robi to przez ponad godzinę dziennie. Jednak 65% z nich zgłosiło też problemy ze znalezieniem interesujących ich programów. Z badania przeprowadzonego w 2020 r. w Wielkiej Brytanii, wynika, że 80% osób z niepełnosprawnością miało problemy z dostępem do usług strumieniowania wideo na żądanie.
Technologie wspomagające mogą pomóc użytkownikom słabowidzącym, ale ważne jest, aby zapewnić ułatwienia dostępu w przypadku aplikacji TV. Zwróć szczególną uwagę na wskazówki dotyczące nawigacji i prawidłowe etykietowanie elementów oraz upewnij się, że aplikacje TV dobrze współpracują z funkcjami ułatwień dostępu, takimi jak TalkBack. Te działania mogą znacznie poprawić komfort korzystania z aplikacji przez użytkowników z wadami wzroku.
Pierwszym krokiem do poprawy dostępności jest świadomość. Ten przewodnik pomoże Tobie i Twojemu zespołowi wykryć problemy z dostępnością w aplikacji TV.
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 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:
- W przypadku wymiarów w komponentach interfejsu używaj
wrap_content. - Upewnij się, że układy zmieniają położenie komponentów, gdy ich wymiary zmieniają się w zależności od skali tekstu.
- Upewnij się, że komponenty nadal mieszczą się na ekranie przy większych skalach tekstu.
- W przypadku komponentów, które nie są elastyczne, nie używaj jednostek rozmiaru tekstu sp.
Sprawdź wartość
FONT_SCALEpod kątem 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
W Androidzie 12 i nowszych wersjach użytkownicy mogą zmieniać skalowanie tekstu w ustawieniach urządzenia.
Układy klawiatury
W Androidzie 13 (API na poziomie 33) i nowszych wersjach możesz użyć
getKeyCodeForKeyLocation()
do
wyszukania kodów klawiszy dla
oczekiwanych lokalizacji klawiszy.
Może to być konieczne, jeśli użytkownik zmienił mapowanie niektórych lokalizacji klawiszy lub używa klawiatury, która nie ma typowego układu.
Audiodeskrypcja
W Androidzie 13 (API na poziomie 33) i nowszych wersjach nowe ustawienie ułatwień dostępu w całym systemie umożliwia użytkownikom włączenie 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 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); }