Android TV için erişilebilirlikle ilgili en iyi uygulamalar

Bu kılavuzda, Android TV'de erişilebilirlikle ilgili en iyi uygulamalar ve hem yerel hem de yerel olmayan uygulamalar için öneriler sunulmaktadır.

Erişilebilirlik, TV uygulamam için neden önemlidir?

Televizyon izleyen nüfus arasında görme bozuklukları yaygındır. Dünya Sağlık Örgütü'ne (DSÖ) göre, dünya genelinde yaklaşık 2,2 milyar insan görme bozukluğuna sahip. 2018 Ulusal Sağlık Görüşme Anketi'ne göre, ABD'de 18 yaş ve üzeri 32 milyon Amerikalı ciddi görme kaybı yaşadı. Avrupa Körler Birliği'ne (EBU) göre, Avrupa'da 30 milyon kör ve kısmen görme engelli insan olduğu tahmin ediliyor.

En önemlisi, görme engelli kullanıcılar da medya içeriklerinden tam görme yetisine sahip akranları kadar keyif alır. Comcast tarafından yaptırılan 2017 anketine göre, görme engelli veya az gören kullanıcıların% 96'sı düzenli olarak TV izliyor ve bunların% 81'i günde bir saatten fazla TV izliyor. Ancak% 65'i, TV'de hangi programların olduğunu ararken sorun yaşadığını da belirtti. 2020 yılında Birleşik Krallık'ta yapılan bir ankette, engelli kullanıcıların% 80'i seç-izle video akış hizmetlerinde erişilebilirlik sorunları yaşadığını belirtmiştir.

Yardımcı teknolojiler, görme bozukluğu olan kullanıcılara yardımcı olabilir ve yardımcı olur. Bununla birlikte, TV uygulamalarında içerik keşif yolculuklarında erişilebilirliği desteklemek önemlidir. Örneğin, gezinme kılavuzu sağlamaya ve öğeleri doğru şekilde etiketlemeye ekstra özen gösterin ve TV uygulamalarının TalkBack gibi erişilebilirlik özellikleriyle iyi çalıştığından emin olun. Bu adımlar, görme engelli kullanıcıların deneyimini önemli ölçüde iyileştirebilir.

Erişilebilirliği iyileştirmenin ilk adımı farkındalıktır. Bu kılavuz, size ve ekibinize TV uygulamanızdaki erişilebilirlik sorunlarını tespit etme konusunda yardımcı olabilir.

Android erişilebilirlik kaynakları

Android'de erişilebilirlik hakkında daha fazla bilgi edinmek için erişilebilirlik geliştirme kaynaklarımıza göz atın.

Metin ölçekleme

Android TV uygulamaları, farklı piksel yoğunluklarını destekleyerek kullanıcının metin ölçeklendirme tercihine saygı göstermelidir.

Aşağıdakilere özellikle dikkat edin:

  • Kullanıcı arayüzü bileşenlerindeki boyutlar için wrap_content kullanın.
  • Metin ölçeğine bağlı olarak boyutları değiştikçe bileşenlerin yeniden düzenlendiğinden emin olun.
  • Bileşenlerin, daha büyük metin ölçeklerinde ekrana sığmaya devam etmesini sağlayın.
  • Esnek olmayan bileşenler için sp metin boyutu birimleri kullanmayın.
  • Özel görünümlerde ayarlama için FONT_SCALE değerini kontrol edin:

    // Checking font scale with Context
    val scale = resources.configuration.fontScale
    Log.d(TAG, "Text scale is: " + scale)
    

Metin ölçeği aşağıdaki komutla değiştirilebilir:

adb shell settings put system font_scale 1.2f

Android 12 ve sonraki sürümlerde kullanıcılar cihaz ayarlarından metin ölçeklendirmesini değiştirebilir.

Klavye düzenleri

Android 13 (API düzeyi 33) ve sonraki sürümlerde, beklenen anahtar konumlarının anahtar kodlarını aramak için getKeyCodeForKeyLocation() kullanabilirsiniz. Kullanıcı bazı önemli konumların haritasını yeniden oluşturduysa veya tipik bir düzene sahip olmayan bir klavye kullanıyorsa bu işlem gerekli olabilir.

Sesli açıklama

Android 13 (API düzeyi 33) ve sonraki sürümlerde, sistem genelindeki yeni bir erişilebilirlik tercihi sayesinde kullanıcılar tüm uygulamalarda sesli açıklamaları etkinleştirebilir. Android TV uygulamaları, isAudioDescriptionRequested() ile sorgulayarak kullanıcının tercihini kontrol edebilir.

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
}

Android TV uygulamaları, AccessibilityManager kaynağına bir dinleyici ekleyerek kullanıcının tercihinin ne zaman değiştiğini izleyebilir:

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