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

Bu rehber, Android TV'de erişilebilirlikle ilgili en iyi uygulamaları sağlamakla birlikte hem yerel hem de yerel olmayan uygulamalar için öneriler sunar.

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

Görme bozuklukları, TV izleyen popülasyonda yaygın olarak görülmez. Dünya Sağlık Örgütü'ne (DSÖ) göre, dünya genelinde tahmini olarak 2,2 milyar insan görme bozukluğu yaşıyor. 2018 Ulusal Sağlık Görüşmesi Anketi'ne göre ABD'de 18 yaş ve üstü 32 milyon Amerikalı önemli ölçüde görme kaybı yaşadı. Avrupa Görme Engelliler Birliği'ne (EBU) göre, Avrupa'da tahminler, görme engelli ve kısmen görme engelli 30 milyon kişiyi gösteriyor.

En önemlisi, görme bozukluğu olan kullanıcılar tam görmeleri olan akranları kadar medya içeriğinden keyif alırlar. Comcast tarafından yaptırılan 2017 anketi, görme engelli veya az gören kullanıcıların% 96'sının düzenli olarak TV izlediğini, %81'inin ise günde bir saatten fazla süre izlediğini gösteriyor. Öte yandan, %65’i TV’de içerik ararken sorun yaşadığını da bildirmiştir. 2020 yılında Birleşik Krallık'ta yapılan bir ankete göre, engelli kişilerin% 80'i seç-izle video akış hizmetlerinde erişilebilirlik sorunları yaşadığını belirtti.

Yardımcı teknolojiler az gören kullanıcılara yardımcı olabilir ve yapabilir ancak TV uygulamalarının içerik keşfetme yolculuklarında erişilebilirliğin desteklenmesi önemlidir. Örneğin, gezinme yardımı sağlamaya ve öğeleri doğru şekilde etiketlemeye daha çok dikkat edin ve TV uygulamalarının TalkBack gibi erişilebilirlik özellikleriyle iyi çalıştığından emin olun. Bu adımlar, görme bozukluğu olan kullanıcıların deneyimlerini önemli ölçüde iyileştirebilir.

Erişilebilirliği iyileştirmeye yönelik ilk adım farkındalıktır. Bu rehber, sizin ve ekibinizin TV uygulamanızdaki erişilebilirlik sorunlarını ortaya çıkarmanıza 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 bakın.

Metin ölçeklendirme

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

Şunlara özellikle dikkat edin:

  • Kullanıcı arayüzü bileşenlerindeki boyutlar için wrap_content kullanın.
  • Boyutları metin ölçeğine bağlı olarak değiştikçe düzenlerin bileşenleri yeniden düzenlediğinden emin olun.
  • Büyük metin ölçeklerinde bileşenlerin ekrana sığdığından emin olun.
  • 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 metin ölçeklendirmeyi cihaz ayarlarından değiştirebilir.

Klavye düzenleri

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

Sesli açıklama

Android 13 (API düzeyi 33) ve sonraki sürümlerde, sistem genelinde yeni bir erişilebilirlik tercihi, kullanıcıların tüm uygulamalarda sesli açıklamaları etkinleştirmesine olanak tanır. 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 uygulaması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);
}