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

Bu rehber, Android TV'de erişilebilirlikle ilgili en iyi uygulamaları sağlamak ve .

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

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

Daha da önemlisi, görme bozukluğu olan kullanıcılar medya içeriğinden keyif alıyor. tam gören akranları kadar iyi. Comcast tarafından yaptırılan 2017 anketi kör veya az gören kullanıcıların% 96'sının videoyu düzenli olarak izlediğini %81'i günde bir saatten fazla içerik izliyor. Ancak aynı zamanda% 65'i TV'de içerik ararken sorunlarla karşılaşıyorum. 2020'de yapılan bir ankette, Birleşik Krallık, Engellilerin% 80'i videolarla ilgili erişilebilirlik sorunları yaşadığını belirtti isteğe bağlı akış hizmetleri.

Yardımcı teknolojiler az gören kullanıcılara yardımcı olabilse de TV uygulamalarının içerik keşfetme yolculuklarında erişilebilirliğin desteklenmesi açısından önemlidir. Örneğin, navigasyonu kullanırken yol gösterici bilgiler vermeye ve öğeleri düzgün şekilde etiketlemeli ve TV uygulamalarının erişilebilirlikle iyi çalışmasını sağlamalısınız. başka özellikler de var. Bu adımlar, uygulama deneyiminizi önemli ölçüde veya görme bozukluğu olan kullanıcılar için geçerlidir.

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çekleme

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çeklendirme ayarını cihazdan değiştirebilir. Ayarlar'da devre dışı bırakabilirsiniz.

Klavye düzenleri

Android 13 (API düzeyi 33) ve sonraki sürümlerde getKeyCodeForKeyLocation() - öğrenmek için anahtar kodlarını beklenen önemli konumlar. Bu, kullanıcı bazı önemli konumları yeniden eşlediyse veya tipik bir düzeni olmayan bir klavye kullanıyor.

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ı şunları yapabilir: kullanıcının tercihini kontrol etmek için 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
}

Android TV uygulamaları, kullanıcının tercihinin bir işleyici ekleme 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);
}