एंड्रॉइड लिंट कंटेंटडेसक्रिप्शन चेतावनी


130

मुझे इमेजव्यू के लिए "[एक्सेसिबिलिटी] मिसिंग कंटेंटडेसक्रिप्शन एट्रीब्यूट" के रूप में चेतावनी मिल रही है। एंड्रॉइड लिंट का उपयोग करते समय

इसका क्या मतलब है?


5
यह इस तरह की कष्टप्रद चेतावनी है - विशेष रूप से उन छवियों के लिए जो सिर्फ स्वभाव के लिए हैं
कोई व्यक्ति

6
मैंने इसे स्ट्रिंग्स.एक्सएमएल में परिभाषित किया: <string name="none"></string> और फिर मैंने इस्तेमाल कियाandroid:contentDescription="@string/none"
किसी ने

जवाबों:


170

android:contentDescriptionमेरे ImageView के लिए विशेषता सेट करके इस चेतावनी को हल किया

android:contentDescription="@string/desc"

ADT 16 में एंड्रॉइड लिंट का समर्थन इस चेतावनी को फेंकता है ताकि यह सुनिश्चित किया जा सके कि छवि विजेट एक सामग्री प्रदान करते हैं।

यह पाठ को परिभाषित करता है जो संक्षेप में दृश्य की सामग्री का वर्णन करता है। यह संपत्ति मुख्य रूप से पहुंच के लिए उपयोग की जाती है। चूँकि कुछ विचारों में पाठात्मक निरूपण नहीं होता है, इसलिए इस विशेषता का उपयोग इस प्रकार प्रदान करने के लिए किया जा सकता है।

ImageViews और ImageButtons जैसे गैर-टेक्स्टुअल विगेट्स को विजेट के एक टेक्स्ट विवरण को निर्दिष्ट करने के लिए सामग्रीडेसक्रिप्शन विशेषता का उपयोग करना चाहिए, जैसे कि स्क्रीन रीडर और अन्य एक्सेसिबिलिटी टूल उपयोगकर्ता इंटरफ़ेस का पर्याप्त वर्णन कर सकते हैं।


4
आप इसके बारे में और पढ़ सकते हैं और इसे अपने आप से परीक्षण कर सकते हैं: android-developers.blogspot.com/2012/04/… और developer.android.com/guide/topics/ui/accessibility/…
Android डेवलपर

49

लिंट चेतावनी को अक्षम करना आपको बाद में आसानी से परेशानी में डाल देगा। आप अपने सभी ImageViews के लिए सामग्री को निर्दिष्ट करने से बेहतर हैं। यदि आपको विवरण की आवश्यकता नहीं है, तो बस उपयोग करें:

android:contentDescription="@null"

38

एक और विकल्प व्यक्तिगत रूप से चेतावनी को दबाने के लिए है:

xmlns:tools="http://schemas.android.com/tools"  (usually inserted automatically)
tools:ignore="contentDescription"

उदाहरण:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    tools:ignore="contentDescription" >

       <ImageView
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:padding="5dp"
            android:src="@drawable/icon" />

गलत - जोड़ने वाले उपकरण: अनदेखा करें = RelativeLayout में "contentDescription" संकलन त्रुटि का कारण बना "गुण Android के नाम स्थान उपसर्ग को याद कर रहा है"
जी। ख।

3
यह एक ग्रहण मुद्दा है। बस अपने प्रोजेक्ट को साफ करें। और सुनिश्चित करें: xmlns: tools = " schemas.android.com/tools " भी शामिल है!
गुन्नार बर्नस्टीन

24

मैं आपको contentDescription जोड़ने की सलाह देता हूं।

android:contentDescription="@string/contentDescriptionXxxx"

लेकिन, चलो यथार्थवादी हो। अधिकांश लोग पहुंच के लिए शाब्दिक रखरखाव नहीं करते हैं। फिर भी, थोड़े प्रयास से, आप विकलांगता वाले लोगों की मदद करने के लिए कुछ लागू कर सकते हैं।

<string name="contentDescriptionUseless">deco</string>
<string name="contentDescriptionAction">button de action</string>
<string name="contentDescriptionContent">image with data</string>
<string name="contentDescriptionUserContent">image from an other user</string>

नेत्रहीन उपयोगकर्ता को जानने के लिए सबसे महत्वपूर्ण बात यह है कि "बटन कहां है जिसे जारी रखने के लिए मुझे क्लिक करने की आवश्यकता है"

कुछ भी क्लिक करने योग्य के लिए contentDescriptionAction का उपयोग करें।

जानकारी के साथ छवि के लिए कंटेंटडेसक्रिप्शन का उपयोग करें (ग्राफ, textAsImage, ...)

सभी उपयोगकर्ता प्रदान की गई सामग्री के लिए contentDescriptionUserContent का उपयोग करें।

बाकी सभी के लिए contentDescriptionUseless का उपयोग करें।


1
धन्यवाद! चेतावनी को दबाने के बजाय इस विवरण को प्रदान करने के लिए हमेशा सबसे अच्छा विकल्प है।
विनिकियस पाल्ड्स

12

चूंकि यह केवल एक चेतावनी है आप इसे दबा सकते हैं। अपने XML के ग्राफिकल लेआउट पर जाएं और यह करें:

  1. राइट टॉप कॉर्नर रेड बटन पर क्लिक करें

    यहाँ छवि विवरण दर्ज करें

  2. "समस्या का प्रकार अक्षम करें" चुनें (उदाहरण के लिए)

    यहाँ छवि विवरण दर्ज करें


4
सच है, आप इसे दबा सकते हैं, लेकिन आपको संभवतः उन चुनिंदा जवाबों की सलाह का पालन करना चाहिए, जो उपयोगकर्ताओं के लिए एक्सेसिबिलिटी टूल एंड्रॉइड प्रदान करता है।
काइल फाल्कनर

यह बात है!!! कि मैं क्या देख रहा था। यह जवाब और @ गुन्नार बर्नस्टीन का जवाब मुझे मिला।
आयरनब्लॉसम

3

यदि आप इस चेतावनी को सुरुचिपूर्ण तरीके से दबाना चाहते हैं (क्योंकि आपको यकीन है कि इस विशेष चित्र के लिए पहुंच की आवश्यकता नहीं है), तो आप विशेष विशेषता का उपयोग कर सकते हैं:

android:importantForAccessibility="no"

2

पर जाएं Gradleफ़ाइल (मॉड्यूल ऐप नहीं) कोड ब्लॉक नीचे जोड़ने

android {
    ... 
    lintOptions {
        disable 'ContentDescription'
    }
    ...
}

कोई और अधिक चेतावनी! खुश कोडिंग


खुश कोडिंग, लेकिन ध्यान दें कि यह उन लोगों के लिए पहुंच को नुकसान पहुंचाएगा जो वास्तव में इस पर भरोसा करते हैं
मैं एक मेंढक अजगर हूं

1

गैर-पाठ विजेट्स को टेक्स्ट इमेज का वर्णन करने के लिए कुछ तरीकों से कंटेंट डिस्क्रिप्शन की जरूरत होती है ताकि स्क्रीन रीडर यूजर इंटरफेस का वर्णन करने में सक्षम हो। आप संपत्ति को अनदेखा कर सकते हैं या संपत्ति को परिभाषित कर सकते हैंxmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"
android:contentDescription="your description"


1

ContentDescriptionAndroid पहुंच के लिए आवश्यक है। विशेष रूप से स्क्रीन रीडर सुविधा के लिए। यदि आप एंड्रॉइड एक्सेसिबिलिटी का समर्थन नहीं करते हैं तो आप इसे सेटअप लिंट के साथ अनदेखा कर सकते हैं ।

तो बस बनाएं lint.xml

<?xml version="1.0" encoding="UTF-8"?>
<lint>

    <issue id="ContentDescription" severity="ignore" />

</lint>

और इसे appफोल्डर में डाल दें ।

यहाँ छवि विवरण दर्ज करें


1

विशुद्ध रूप से सजावटी हैं कि ग्राफिकल तत्वों के लिए, उनके संबंधित Android: contentDescription XML विशेषताओं को "@null" पर सेट करें।

यदि आपका ऐप केवल एंड्रॉइड 4.1 (एपीआई स्तर 16) या उच्चतर पर चलने वाले उपकरणों का समर्थन करता है, तो आप इन तत्वों के एंड्रॉइड को सेट कर सकते हैं: महत्वपूर्णफोरएबिलिटी एक्सएमएल विशेषताएँ "नहीं" के लिए


Android: importantForAccessibilty वास्तव में वही था जिसकी मुझे तलाश थी। धन्यवाद!
हर्टन

यह वास्तव में सही उत्तर है और सबसे ऊपर होना चाहिए।
lsrom

0

चूँकि मुझे अपने द्वारा जोड़े गए सौंदर्यशास्त्र के लिए एक आइकन जोड़ने के लिए ImageView की आवश्यकता है tools:ignore="ContentDescription" अपने xml फ़ाइल में मेरे द्वारा देखे गए प्रत्येक ImageView में ।

मुझे अब कोई त्रुटि संदेश नहीं मिल रहा है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.