Android TV के लिए सुलभता से जुड़े सबसे सही तरीके

इस गाइड में, Android TV पर ऐक्सेस करने के सबसे सही तरीके बताए गए हैं. साथ ही, इसमें नेटिव और नॉन-नेटिव, दोनों तरह के ऐप्लिकेशन के लिए सुझाव दिए गए हैं.

मेरे टीवी ऐप्लिकेशन के लिए सुलभता की सुविधा क्यों ज़रूरी है?

टीवी देखने वाले लोगों में, देखने की क्षमता में कमी होना आम बात है. विश्व स्वास्थ्य संगठन (डब्ल्यूएचओ) के मुताबिक, दुनिया भर में 2.2 अरब लोगों की आंखों की रोशनी कम है. 2018 के नेशनल हेल्थ इंटरव्यू सर्वे के मुताबिक, अमेरिका में 18 साल और उससे ज़्यादा उम्र के 3.2 करोड़ लोगों की आंखों की रोशनी काफ़ी कम हो गई है. यूरोप में, यूरोपियन ब्लाइंड यूनियन (ईबीयू) के मुताबिक, 3 करोड़ लोग पूरी तरह से या आंशिक रूप से अंधे हैं.

सबसे ज़रूरी बात यह है कि जिन लोगों की आंखों की रोशनी कम है वे भी मीडिया कॉन्टेंट का आनंद उतना ही लेते हैं जितना कि पूरी रोशनी वाले लोग. Comcast के ज़रिए किए गए 2017 के सर्वे से पता चला है कि 96% दृष्टिहीन या कम दृष्टि वाले लोग नियमित तौर पर टीवी देखते हैं. इनमें से 81% लोग हर दिन एक घंटे से ज़्यादा टीवी देखते हैं. हालांकि, 65% लोगों ने यह भी बताया कि उन्हें टीवी पर क्या चल रहा है, यह जानने में समस्याएं आ रही हैं. 2020 में यूनाइटेड किंगडम में किए गए एक सर्वे में, 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);
}