इस गाइड में, Android TV पर ऐक्सेसिबिलिटी के सबसे सही तरीके बताए गए हैं. साथ ही, इसमें नेटिव और नॉन-नेटिव, दोनों तरह के ऐप्लिकेशन के लिए सुझाव दिए गए हैं.
मेरे टीवी ऐप्लिकेशन के लिए सुलभता क्यों ज़रूरी है?
टीवी देखने वाले लोगों में, देखने से जुड़ी समस्याएं आम हैं. डब्ल्यूएचओ के अनुमान के मुताबिक, दुनिया भर में 220 करोड़ लोगों को देखने में परेशानी होती है. वहीं, अमेरिका में 3.2 करोड़ वयस्कों को देखने में काफ़ी परेशानी होती है (2018 का नेशनल हेल्थ इंटरव्यू सर्वे). यूरोप में, EBU का अनुमान है कि तीन करोड़ लोग इससे प्रभावित हैं.
दृष्टिबाधित लोग भी मीडिया का उतना ही आनंद लेते हैं जितना कि सामान्य लोग. Comcast के 2017 के सर्वे के मुताबिक, 96% लोग टीवी देखते हैं. इनमें से 81% लोग हर दिन एक घंटे से ज़्यादा टीवी देखते हैं. हालांकि, 65% लोगों को कॉन्टेंट ढूंढने में समस्याएं आती हैं. इसके अलावा, यूके में हुए एक सर्वे में 80% दिव्यांग लोगों ने स्ट्रीमिंग से जुड़ी समस्याओं के बारे में बताया.
सहायक टेक्नोलॉजी से मदद मिलती है. हालांकि, टीवी ऐप्लिकेशन में कॉन्टेंट ढूंढने के लिए, सुलभता की सुविधा काम करनी चाहिए. नेविगेशन के लिए दिए गए निर्देशों और एलिमेंट के लेबल पर खास ध्यान दें. पक्का करें कि TalkBack जैसी सुविधाओं के साथ काम करने की सुविधा उपलब्ध हो, ताकि दृष्टिबाधित लोगों को बेहतर अनुभव मिल सके.
सुलभता को बेहतर बनाने के लिए, सबसे पहले इसके बारे में जागरूकता बढ़ाना ज़रूरी है. इस गाइड की मदद से, आपको और आपकी टीम को टीवी ऐप्लिकेशन में सुलभता से जुड़ी समस्याओं का पता लगाने में मदद मिल सकती है.
Android की सुलभता सुविधाओं से जुड़े संसाधन
Android पर सुलभता के बारे में ज़्यादा जानने के लिए, सुलभता से जुड़े डेवलपमेंट के संसाधन देखें.
टेक्स्ट स्केलिंग
Android TV ऐप्लिकेशन को, टेक्स्ट स्केलिंग के लिए उपयोगकर्ता की पसंद का ध्यान रखना चाहिए. इसके लिए, अलग-अलग पिक्सल डेंसिटी के साथ काम करना ज़रूरी है.
इन बातों का खास ध्यान रखें:
- यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट में डाइमेंशन के लिए,
wrap_contentका इस्तेमाल करें. - पक्का करें कि टेक्स्ट के स्केल के हिसाब से, कॉम्पोनेंट के डाइमेंशन में बदलाव होने पर लेआउट में कॉम्पोनेंट फिर से व्यवस्थित हो जाएं.
- पक्का करें कि टेक्स्ट के बड़े होने पर भी कॉम्पोनेंट स्क्रीन पर फ़िट हो रहे हों.
- जिन कॉम्पोनेंट का साइज़ बदला नहीं जा सकता उनके लिए, sp टेक्स्ट साइज़ यूनिट का इस्तेमाल न करें.
कस्टम व्यू में अडजस्टमेंट के लिए,
FONT_SCALEकी वैल्यू देखें:// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
टेक्स्ट के साइज़ को इस कमांड से बदला जा सकता है:
adb shell settings put system font_scale 1.2f
Android 12 और इसके बाद के वर्शन पर, उपयोगकर्ता डिवाइस की सेटिंग में जाकर टेक्स्ट के साइज़ को बदल सकते हैं.
कीबोर्ड लेआउट
Android 13 (एपीआई लेवल 33) और इसके बाद के वर्शन में, getKeyCodeForKeyLocation() का इस्तेमाल करके, कीबोर्ड पर मौजूद कुंजियों की जगह के हिसाब से कीकोड देखे जा सकते हैं.
अगर उपयोगकर्ता ने कुछ मुख्य जगहों को फिर से मैप किया है या वह ऐसे कीबोर्ड का इस्तेमाल कर रहा है जिसका लेआउट सामान्य नहीं है, तो यह ज़रूरी हो सकता है.
ऑडियो फ़ॉर्मैट में जानकारी पाने का बटन
Android 13 (एपीआई लेवल 33) और इसके बाद के वर्शन में, सिस्टम-वाइड ऐक्सेसिबिलिटी की नई सेटिंग उपलब्ध है. इसकी मदद से, लोग सभी ऐप्लिकेशन में ऑडियो फ़ॉर्मैट में जानकारी पाने की सुविधा चालू कर सकते हैं. Android TV ऐप्लिकेशन, 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 ऐप्लिकेशन, उपयोगकर्ता की प्राथमिकता में बदलाव होने पर इसकी निगरानी कर सकते हैं. इसके लिए, उन्हें 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);
}