कॉन्टेंट लेबल

स्क्रीन रीडर जैसी सुलभता सेवाओं का इस्तेमाल करने वाले लोग, किसी यूज़र इंटरफ़ेस के एलिमेंट का मतलब समझने के लिए, कॉन्टेंट लेबल पर निर्भर होते हैं.

यही वजह है कि इंटरफ़ेस के बारे में जानकारी देने के लिए, ग्राफ़िक वाले एलिमेंट का इस्तेमाल करते समय, उस एलिमेंट में कॉन्टेंट लेबल जोड़ने चाहिए. इससे टेक्स्ट की मदद से एलिमेंट का मतलब समझाने या उससे जुड़ी कार्रवाई के बारे में जानकारी देने में मदद मिलती है.

अगर किसी यूज़र इंटरफ़ेस के एलिमेंट में कॉन्टेंट लेबल नहीं जोड़े जाते, तो कुछ लोगों को एलिमेंट में दी गई जानकारी को समझने या इंटरफ़ेस पर कार्रवाइयां करने में परेशानी होती है.

लागू करने का तरीका

View

किसी इंटरफ़ेस में कुछ टाइप के Views का इस्तेमाल करते समय, उनमें कॉन्टेंट लेबल जोड़ने चाहिए. इनकी मदद से, उस View को जोड़ने के मकसद या उससे जुड़ी कार्रवाई के बारे में जानकारी दी जा सकती है.

कॉन्टेंट लेबल जोड़ने का तरीका

android:contentDescription

अगर इंटरफ़ेस में जानकारी देने के लिए ग्राफ़िक वाला एलिमेंट, जैसे कि ImageView, ImageButton, CheckBox या कोई अन्य View शामिल करना है, तो उस View में कॉन्टेंट लेबल जोड़ें. इसके लिए, android:contentDescription एट्रिब्यूट का इस्तेमाल करें.

कभी-कभी एलिमेंट का कॉन्टेंट लेबल, रनटाइम के दौरान दिखने वाली जानकारी पर निर्भर करता है. इसी तरह, View के लिए जोड़े गए कॉन्टेंट लेबल का मतलब, समय के साथ अपडेट हो सकता है. उदाहरण के लिए, जब संगीत चल रहा होता है, तो 'चलाएं' बटन 'रोकें' बटन में अपडेट हो जाता है. इन मामलों में, कॉन्टेंट लेबल को सही समय पर अपडेट करने के लिए, View#setContentDescription(CharSequence contentDescription) का इस्तेमाल करें.

आम तौर पर, जब कोई सुलभता सेवा किसी ViewGroup के बारे में बताती है, तो वह अपने ब्यौरे में उस व्यू ग्रुप के चाइल्ड Views के कॉन्टेंट लेबल को भी शामिल कर लेती है. इस व्यवहार को बदला जा सकता है. साथ ही, उस व्यू ग्रुप और उसके फ़ोकस नहीं किए जा सकने वाले चाइल्ड Views के लिए भी ब्यौरा जोड़ा जा सकता है. इसके लिए, ViewGroup पर contentDescription सेट करें. अगर किसी ViewGroup पर contentDescription सेट हो, तो आपको चाइल्ड Views के कॉन्टेंट लेबल शामिल करने पड़ सकते हैं.

android:hint

EditTexts या बदलाव किए जा सकने वाले TextViews के लिए, android:hint का इस्तेमाल करें. इसकी मदद से, टेक्स्ट फ़ील्ड शामिल करने का मकसद बताया जा सकता है. बदले जा सकने वाले Views के कॉन्टेंट लेबल के तौर पर, android:contentDescription का इस्तेमाल नहीं करना चाहिए.

android:labelFor

android:labelFor एट्रिब्यूट की मदद से बताएं कि किसी एक View को किसी दूसरे View के कॉन्टेंट लेबल के तौर पर इस्तेमाल किया जा सकता है.

ऐसे एलिमेंट जिनके लिए कॉन्टेंट लेबल की ज़रूरत नहीं होती

इनके लिए कॉन्टेंट लेबल नहीं जोड़ने चाहिए:

  • TextView (या उसके सब-क्लास) में रेंडर किया जाने वाला टेक्स्ट एलिमेंट. सुलभता सेवाओं को इस एलिमेंट के लिए लेबल अपने-आप मिल जाता है. यही वजह है कि अतिरिक्त कॉन्टेंट लेबल जोड़ने की ज़रूरत नहीं होती.
  • सजावटी इमेज या जिन इमेज का इस्तेमाल ज़रूरी जानकारी देने के लिए नहीं किया जाता उनमें, कॉन्टेंट लेबल जोड़ने की ज़रूरत नहीं होती. इन मामलों में, android:contentDescription एट्रिब्यूट को "@null" या android:importantForAccessibility एट्रिब्यूट को "no" पर सेट करें.

कॉन्टेंट लेबल जोड़ने के बारे में ज़्यादा जानकारी पाने के लिए, Android Developer की ट्रेनिंग से जुड़ा दस्तावेज़ और एपीआई गाइड पढ़ें.

Compose

किसी इंटरफ़ेस में कुछ टाइप के कंपोज़ेबल का इस्तेमाल करते समय, उनमें कॉन्टेंट लेबल जोड़ने चाहिए. इनकी मदद से, उन कंपोज़ेबल को शामिल करने के मकसद और उनसे जुड़ी कार्रवाई के बारे में जानकारी दी जा सकती है.

कॉन्टेंट लेबल जोड़ने का तरीका

कॉन्टेंट का ब्यौरा

किसी Image, Icon या ग्राफ़िक की मदद से जानकारी देने वाले लो-लेवल कंपोज़ेबल में कॉन्टेंट लेबल जोड़ने के लिए, कॉन्टेंट का ब्यौरा सेट करें.

  • कंपोज़ेबल का कॉन्टेंट लेबल, रनटाइम के दौरान दिखने वाली जानकारी पर निर्भर करता है और इसका मतलब समय के साथ अपडेट भी हो सकता है. उदाहरण के लिए, जब संगीत चल रहा होता है, तो 'चलाएं' बटन 'रोकें' बटन में अपडेट हो जाता है.
  • कुछ मामलों में, कई एलिमेंट को मर्ज करके फ़ोकस करने लायक सिंगल एलिमेंट बनाया जा सकता है. इसमें डिसेंडेंट एलिमेंट के कॉन्टेंट लेबल जोड़े जा सकते हैं. एलिमेंट मर्ज करने का तरीका जानें.

लेबल पैरामीटर

TextField जैसे कंपोज़ेबल में label पैरामीटर जोड़ा जा सकता है. लेबल सेट होने पर एलिमेंट, label पर पास किया गया कंपोज़ेबल दिखाता है. कंपोज़ेबल का ब्यौरा देने के लिए, सुलभता सेवाओं का इस्तेमाल किया जा सकता है.

ऐसे एलिमेंट जिनके लिए कॉन्टेंट लेबल की ज़रूरत नहीं होती

इनके लिए कॉन्टेंट लेबल नहीं जोड़ने चाहिए:

  • Text में रेंडर किया जाने वाला टेक्स्ट एलिमेंट या Text वाले अन्य कंपोज़ेबल. सुलभता सेवाओं को इन एलिमेंट के लिए लेबल अपने-आप मिल जाते हैं.
  • सजावटी इमेज या जिन इमेज का इस्तेमाल ज़रूरी जानकारी देने के लिए नहीं किया जाता.
    • इन मामलों में, contentDescription पैरामीटर या Modifier.semantics#contentDescription प्रॉपर्टी को null पर सेट करें या Modifier#clearAndSetSemantics का इस्तेमाल करें.

डिज़ाइन

यूज़र इंटरफ़ेस डिज़ाइन करते समय, सुलभता सेवाओं का इस्तेमाल करने वाले लोगों को ध्यान में रखते हुए ग्राफ़िक वाले एलिमेंट का इस्तेमाल करें. साथ ही, उसमें कॉन्टेंट लेवल जोड़ते समय सावधानी बरतें. कॉन्टेंट लेबल जोड़ते समय, इन बातों का ध्यान रखें:

  • लेबल को छोटा रखें. साथ ही, उसमें एलिमेंट का मतलब या उससे जुड़ी कार्रवाई के बारे में सही तरीके से बताएं.
  • एलिमेंट के कॉन्टेंट लेबल में उसका टाइप या स्टेट शामिल न करें.
  • अगर एलिमेंट से कोई कार्रवाई जुड़ी है, तो उस कार्रवाई का ब्यौरा दें, न कि एलिमेंट के ग्राफ़िक का.
  • ऐप्लिकेशन का इस्तेमाल करने वाले व्यक्ति को एलिमेंट के साथ इंटरैक्ट करने का तरीका न बताएं.

इस बारे में ज़्यादा जानने के लिए, सुलभता के हिसाब से मटीरियल डिज़ाइन करने से जुड़े दिशा-निर्देश पढ़ें.

टेस्ट करना

मैन्युअल तरीके से इस बात की जांच की सकती है कि ऐप्लिकेशन के यूज़र इंटरफ़ेस में कॉन्टेंट लेबल जोड़ा गया है या नहीं. इसके लिए:

  1. TalkBack चालू करें.
  2. ऐप्लिकेशन खोलें.
  3. सुलभता के फ़ोकस को स्क्रीन पर मौजूद हर एलिमेंट पर ले जाने के लिए, लीनियर नेविगेशन जेस्चर का इस्तेमाल करें.
  4. अगर TalkBack, फ़ोकस को किसी एलिमेंट पर ले जाता है, लेकिन वह एलिमेंट के बारे में सही जानकारी नहीं देता या "लेबल नहीं किया गया" मैसेज बोलता है, तो हो सकता है कि उस एलिमेंट में कॉन्टेंट लेबल न जोड़ा गया हो.

Android के ऑटोमेटेड टेस्टिंग टूल, यह पता लगा लेते हैं कि एलिमेंट में कॉन्टेंट लेबल मौजूद हैं या नहीं. डिवाइस पर अपने ऐप्लिकेशन को मैन्युअल तौर पर टेस्ट करने के लिए, Android के Accessibility Scanner का इस्तेमाल करें. ऑटोमेटेड टेस्ट के लिए, Espresso और Robolectric में सुलभता चेक इन चालू करें.

खोजें
खोज हटाएं
खोज बंद करें
मुख्य मेन्यू
3111124207916263010
true
खोज मदद केंद्र
true
true
true
true
true
717068
false
false