Sprawdzone metody ułatwień dostępu na Androidzie TV

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