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 mojej aplikacji na telewizory?
Wady wzroku nierzadko zdarzają się wśród osób oglądających telewizję. 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.
Najważniejsze jest to, że osoby z wadą wzroku lubią korzystać z treści multimedialnych. tak jak ich w pełni widzący podobni. Ankieta z 2017 roku zlecona przez Comcast pokazało, że 96% użytkowników niewidomych lub niedowidzących regularnie ogląda filmy. TV, gdzie 81% widzów ogląda 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ć użytkownikom niedowidzącym, jest ważne w obsłudze ułatwień dostępu w ścieżkach odkrywania treści w aplikacjach telewizyjnych. Na przykład zadbaj szczególnie o wskazówki nawigacyjne poprawne oznaczanie elementów etykietami i zapewnienie, że aplikacje na telewizory dobrze współpracują z ułatwieniami dostępu. takich jak TalkBack. Dzięki temu użytkownicy z niepełnosprawnością wzroku będą mogli znacznie lepiej korzystać z usługi.
Pierwszym krokiem w kierunku poprawy ułatwień dostępu jest zwiększanie świadomości. Z tego przewodnika dowiesz się, pomogą Tobie i Twojemu zespołowi wykrywać problemy z ułatwieniami dostępu w aplikacji TV.
Materiały dotyczące 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:
- Wymiary w komponentach interfejsu użytkownika to
wrap_content
. - Upewnij się, że układy zmieniają kolejność komponentów, ponieważ ich wymiary zmieniają się w zależności od skali tekstu.
- Zadbaj o to, aby komponenty nadal mieściły 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
pod kątem korekty 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 na urządzeniu ustawieniach.
Układy klawiatury
W Androidzie 13 (poziom API 33) i nowszym możesz używać tych funkcji:
getKeyCodeForKeyLocation()
do
wyszukaj kody klawiszy
kluczowych lokalizacji.
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 (poziom API 33) i nowszych: nowe systemowe preferencje ułatwień dostępu
umożliwia użytkownikom włączenie audiodeskrypcji we wszystkich aplikacjach. Aplikacje na Androida TV mogą
możesz sprawdzić preferencje użytkownika, wysyłając do niego zapytanie
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 przez
dodaję detektora 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); }