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

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?

Wśród osób oglądających telewizję nierzadko występują problemy ze wzrokiem. Według Światowej Organizacji Zdrowia (WHO) 2, 2 miliarda ludzi na całym świecie ma niedowidzenie. 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 jest niewidomych lub słabowidzących.

Co najważniejsze, użytkownicy z wadą wzroku mogą korzystać z treści multimedialnych w takim samym stopniu jak ich pełnosprawni rówieśnicy. Badanie przeprowadzone w 2017 r. na zlecenie Comcast wykazało, że 96% niewidomych i niedowidzących użytkowników regularnie ogląda telewizję, a 81% z nich spędza przed nią ponad godzinę dziennie. 65% stwierdziło jednak, że również mieliśmy problemy z wyszukiwaniem tego, co leci w telewizji. W badaniu przeprowadzonym w 2020 r. w Wielkiej Brytanii 80% osób z niepełnosprawnościami stwierdziło, że ma problemy z ułatwieniami dostępu w usługach strumieniowania wideo na żądanie.

Chociaż technologie wspomagające mogą pomagać niedowidzącym użytkownikom, ważne jest, aby w aplikacji na telewizor uwzględnić ułatwienia dostępu w procesie odkrywania treści. Na przykład zwróć szczególną uwagę na wskazówki nawigacyjne i odpowiednie oznaczanie elementów etykietami. Upewnij się też, że aplikacje na telewizory dobrze współgrają z funkcjami ułatwień dostępu takimi jak TalkBack. Te czynności mogą znacznie poprawić wrażenia użytkowników z wadami wzroku.

Pierwszym krokiem na drodze do poprawy ułatwień dostępu jest uświadomienie. Ten przewodnik może pomóc Ci i Twojemu zespołowi w odkrywaniu problemów z dostępem w aplikacji na telewizor.

Materiały na temat 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 te kwestie:

  • Używaj wymiarów wrap_content w komponentach interfejsu użytkownika.
  • Upewnij się, że układy przestawiają komponenty, gdy ich wymiary zmieniają się w zależności od skali tekstu.
  • Upewnij się, że komponenty nadal mieszczą się na ekranie przy większych rozmiarach tekstu.
  • Nie używaj jednostek rozmiaru tekstu sp w przypadku komponentów, które nie są elastyczne.
  • Sprawdź wartość parametru FONT_SCALE 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 użytkownicy mogą zmieniać skalowanie tekstu w ustawieniach urządzenia.

Układy klawiatury

W Androidzie 13 (poziom interfejsu API 33) lub nowszym możesz użyć elementu getKeyCodeForKeyLocation(), aby wyszukiwać kody kluczy w przypadku oczekiwanych lokalizacji kluczy. 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 (API na poziomie 33) i nowszych nowe ustawienie dostępności w całym systemie umożliwia użytkownikom włączanie audiodeskrypcji we wszystkich aplikacjach. Aplikacje na Androida TV mogą sprawdzić preferencje użytkownika, wysyłając zapytanie za pomocą parametru 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 listenera 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);
}