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 przypadku mojej aplikacji na telewizor?

Wśród osób oglądających telewizję nie brakuje osób z wadami wzroku. Według Światowej Organizacji Zdrowia (WHO) szacunkowo 2, 2 miliarda osób na całym świecie ma wadę wzroku. Według badania National Health Interview Survey z 2018 roku w Stanach Zjednoczonych 32 miliony Amerykanów w wieku co najmniej 18 lat doświadczyło znacznej utraty wzroku. Według Europejskiej Unii Niewidomych (EBU) w Europie jest 30 milionów osób niewidomych i niedowidzących.

Co najważniejsze, użytkownicy z wadami wzroku mogą korzystać z treści multimedialnych w takim samym stopniu jak osoby w pełni sprawne. Z badania z 2017 r. przeprowadzonego na zlecenie firmy Comcast wynika, że 96% użytkowników, którzy są niewidomi lub niedowidzący, regularnie ogląda telewizję, a 81% z nich spędza przed telewizorem ponad godzinę dziennie. 65% osób zgłosiło też problemy ze znalezieniem informacji o programach telewizyjnych. W 2020 r. w Wielkiej Brytanii przeprowadzono ankietę, w której 80% osób z niepełnosprawnością stwierdziło, że napotkało problemy z dostępnością w przypadku usług strumieniowania wideo na żądanie.

Technologie wspomagające mogą pomagać użytkownikom z wadami wzroku, ale ważne jest, aby obsługiwać ułatwienia dostępu w przypadku aplikacji telewizyjnych. Zwróć szczególną uwagę na wskazówki dotyczące nawigacji i prawidłowe etykietowanie elementów oraz upewnij się, że aplikacje TV działają prawidłowo z funkcjami ułatwień dostępu, takimi jak TalkBack. Te kroki mogą znacznie poprawić komfort korzystania z usługi przez osoby niedowidzące.

Pierwszym krokiem do poprawy dostępności jest świadomość. Ten przewodnik może pomóc Tobie i Twojemu zespołowi w wykrywaniu problemów z dostępnością w aplikacji na telewizor.

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.

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 jednostki wrap_content.
  • Upewnij się, że układy zmieniają rozmieszczenie komponentów w zależności od skali tekstu.
  • Upewnij się, że komponenty nadal mieszczą 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 w przypadku 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 nowszym użytkownicy mogą zmieniać skalowanie tekstu w ustawieniach urządzenia.

Układy klawiatury

Na Androidzie 13 (API na poziomie 33) i nowszym możesz użyć getKeyCodeForKeyLocation() do wyszukiwania kodów klawiszy w oczekiwanych lokalizacjach klawiszy. Może to być konieczne, jeśli użytkownik zmienił przypisanie niektórych klawiszy lub używa klawiatury o nietypowym układzie.

Audiodeskrypcja

W Androidzie 13 (API na poziomie 33) i nowszych wersjach systemu wprowadziliśmy nowe ustawienie ułatwień dostępu, które pozwala użytkownikom włączyć audiodeskrypcję we wszystkich aplikacjach. Aplikacje na Androida TV mogą sprawdzać 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ą śledzić 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);
}