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

Ten przewodnik zawiera sprawdzone metody związane z ułatwieniami dostępu na Androidzie TV oraz rekomendacje dotyczące zarówno aplikacji natywnych, jak 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 niedowidzący dostęp. Jak wynika z badania National Health Interview Survey z 2018 roku, 32 miliony Amerykanów, którzy ukończyli 18 lat, doświadczyło znacznej utraty wzroku. Według danych Europejskiej Unii Niewidomych (EBU) w Europie szacunkowe dane wskazują na 30 milionów osób niewidomych i niewidomych.

Co najważniejsze, osoby z wadą wzroku cieszą się taką samą popularnością, jak ich w pełni widzący rówieśnik. Ankieta z 2017 r. przeprowadzona przez Comcast wykazała, że 96% niewidomych lub niedowidzących osób regularnie ogląda telewizję, a 81% ogląda ją dłużej niż 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.

Technologie wspomagające osoby z niepełnosprawnością mogą i pomagać użytkownikom niedowidzącym, jednak ważne jest, aby ułatwiać im odkrywanie treści w aplikacjach telewizyjnych. Na przykład zwróć szczególną uwagę na wskazówki nawigacyjne i odpowiednie oznaczanie elementów oraz upewnij się, ż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 niedowidzących.

Pierwszym krokiem na drodze do poprawy ułatwień dostępu jest świadomość. Ten przewodnik może pomóc 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 na temat 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 pasowały do ekranu 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 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

W Androidzie 13 (poziom interfejsu API 33) i nowszych możesz używać narzędzia getKeyCodeForKeyLocation() do wyszukiwania kodów kluczy w przypadku oczekiwanych lokalizacji kluczy. Może to być konieczne, jeśli użytkownik ponownie mapuje niektóre kluczowe lokalizacje lub używa klawiatury o nietypowym układzie.

Audiodeskrypcja

W Androidzie 13 (poziom interfejsu API 33) i nowszych wersjach nowe ustawienia ułatwień dostępu obejmujące cały system umożliwiają użytkownikom włączanie audiodeskrypcji we wszystkich aplikacjach. Aplikacje na Androida TV mogą sprawdzić preferencje użytkownika, wysyłając do nich zapytanie za pomocą narzędzia 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);
}