Bu kılavuzda, Android TV'de erişilebilirlikle ilgili en iyi uygulamalar ve hem yerel hem de yerel olmayan uygulamalar için öneriler yer almaktadır.
Erişilebilirlik, TV uygulamam için neden önemlidir?
Görme bozuklukları, TV izleyen nüfus arasında yaygın bir durumdur. Dünya Sağlık Örgütü'ne (DSÖ) göre, dünya genelinde yaklaşık 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 üzeri 32 milyon Amerikalı önemli ölçüde görme kaybı yaşadı. Avrupa Körler Birliği'ne (EBU) göre Avrupa'da 30 milyon görme engelli ve kısmen görme engelli kişi yaşıyor.
En önemlisi, görme engelli kullanıcılar medya içeriklerinden, görme yetisi tam olan arkadaşları kadar keyif alabilir. Comcast tarafından yaptırılan bir 2017 anketine göre, görme engelli veya gözleri az gören kullanıcıların% 96'sı düzenli olarak TV izliyor ve% 81'i günde bir saatten fazla TV izliyor. Ancak% 65'i de TV'de ne olduğunu ararken sorun yaşadığını bildiriyor. 2020'de Birleşik Krallık'ta yapılan bir ankette, engelli kullanıcıların% 80'i talep üzerine video akışı hizmetlerinde erişilebilirlik sorunları yaşadığını belirtti.
Yardımcı teknolojiler, görme bozukluğu olan kullanıcılara yardımcı olabilir ve yardımcı olur ancak TV uygulamaları için içerik keşfetme yolculuklarında erişilebilirliği desteklemek önemlidir. Örneğin, gezinme talimatları vermeye ve öğeleri düzgün şekilde etiketlemeye özellikle dikkat edin. Ayrıca, 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, TV uygulamanızdaki erişilebilirlik sorunlarını belirlemenize ve ekibinizin bu sorunları gidermesine 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.
Şunlara özellikle dikkat edin:
- Kullanıcı arayüzü bileşenlerindeki boyutlar için
wrap_content
kullanın. - Düzenlerin, metin ölçeğine bağlı olarak boyutları değiştiğinde bileşenleri yeniden düzenlediğinden emin olun.
- Bileşenlerin daha büyük metin ölçeklerinde ekrana sığdığından emin olun.
- Esnek olmayan bileşenler için sp metin boyutu birimlerini 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 tuş konumlarının getKeyCodeForKeyLocation()
tuş kodlarını aramak için kullanabilirsiniz.
Kullanıcı bazı tuş konumlarını yeniden eşlediyse veya standart 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 genelinde 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ı, kullanıcının tercihi değiştiğinde bunu AccessibilityManager
öğesine bir dinleyici ekleyerek 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); }