risposta-alla-domanda-sullo-sviluppo-web-bd.com

"Attributo contentDescription mancante sull'immagine" in XML

Viene visualizzato un avviso su [Accessibilità] Attributo contentDescription mancante su image in Eclipse. Questo avviso mostra alla riga 5 (dichiarare ImageView) nel codice XML di seguito.

Questo non crea alcun errore durante la compilazione e l'esecuzione della mia applicazione. Ma voglio davvero sapere perché ricevo questo avvertimento.

Questo è il mio file XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
              Android:layout_width="fill_parent"
              Android:layout_height="wrap_content">
    <ImageView
        Android:id="@+id/contact_entry_image"
        Android:src="@drawable/ic_launcher"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        />
    <TextView
        Android:id="@+id/contact_entry_text"
        Android:text=""
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:textSize="30sp"
        />

</LinearLayout>

Per favore aiutami riguardo a questo e grazie per la tua lettura.

192
PhatHV

Segui questo link per la soluzione:Android Lint contentDescription warning

Risolto questo avviso impostando l'attributo Android: contentDescription per il mio ImageView

Android: contentDescription = "@ string/disc"

Il supporto per Android Lint in ADT 16 genera questo avviso per garantire che i widget immagine forniscono una descrizione del contenuto

Questo definisce il testo che descrive brevemente il contenuto della vista. Questo la proprietà viene utilizzata principalmente per l'accessibilità. Poiché alcuni punti di vista non lo fanno avere una rappresentazione testuale questo attributo può essere usato per fornire come.

I widget non testuali come ImageViews e ImageButtons devono utilizzare il attributo contentDescription per specificare una descrizione testuale di widget in modo che gli screen reader e altri strumenti di accessibilità possano descrivere adeguatamente l'interfaccia utente.

Questo link per la spiegazione:Accessibilità, risorse di impatto e di sviluppo

Molti utenti Android hanno disabilità che richiedono loro di interagire con i loro dispositivi Android in modi diversi. Questi includono utenti che avere disabilità visive, fisiche o legate all'età che li impediscono dal vedere o utilizzare completamente un touchscreen.

Android offre funzionalità e servizi di accessibilità per aiutare questi gli utenti navigano i loro dispositivi più facilmente, incluso il text-to-speech, feedback tattile, trackball e navigazione D-pad che aumentano il loro Esperienza. Gli sviluppatori di applicazioni Android possono trarre vantaggio da questi servizi per rendere le loro applicazioni più accessibili e anche costruire i propri servizi di accessibilità.

Questa guida è per rendere accessibile la tua app:Rendere le app più accessibili

Assicurati che la tua applicazione sia accessibile a tutti gli utenti è relativamente facile, in particolare quando si utilizza l'interfaccia utente fornita dal framework componenti. Se usi solo questi componenti standard per il tuo applicazione, bastano pochi passaggi per garantire il tuo l'applicazione è accessibile:

  1. Contrassegna il tuo ImageButton, ImageView, EditText, CheckBox e altro utente controlli dell'interfaccia usando l'attributo Android: contentDescription.

  2. Rendi accessibili tutti gli elementi dell'interfaccia utente con un carattere controller, ad esempio una trackball o un D-pad.

  3. Metti alla prova la tua applicazione attivando servizi di accessibilità come TalkBack ed Esplora a tocco, e prova a usare la tua applicazione usando solo i controlli direzionali.

252
PhatHV

Aggiungi Android:contentDescription="@string/description" (statico o dinamico) al tuo ImageView. Si prega di non ignorare né filtrare il messaggio, perché è utile per le persone che utilizzano metodi di input alternativi a causa della loro disabilità (come TalkBack, Tecla Access Shield ecc. Ecc.).

64
Jeroen

Aggiornato:

Come indicato nei commenti, l'impostazione della descrizione su null indica che l'immagine è puramente decorativa ed è interpretata dai lettori di schermo come TalkBack.

Vecchia risposta, non supporto più questa risposta:

Per tutte le persone che cercano come evitare l'avvertimento:

Non credo che Android:contentDescription="@null" sia la soluzione migliore.

Sto usando tools:ignore="ContentDescription" che è ciò che dovrebbe essere. 

Assicurati di includere xmlns:tools="http://schemas.Android.com/tools" nel tuo layout di root.

31
Sotti

L'avviso è davvero fastidioso e in molti (la maggior parte!) Casi non è necessaria la descrizione del contenuto per varie immagini decorative ImageViews. Il modo più radicale per risolvere il problema è solo per dire ai Lint di ignorare questo controllo. In Eclipse, vai su "Android/Lint Error Checking" in Preferenze, trova "contentDescription" (è nel gruppo "Accessibilità") e cambia "Severity:" in Ignora.

9
AlexR

Se non ti interessa, fai questo:

    Android:contentDescription="@null"

Anche se consiglierei le soluzioni accettate, questo è un trucco: D

9
alap

Inserisci 

tools:ignore="ContentDescription"

alla tua immagine. Assicurati di avere xmlns:tools="http://schemas.Android.com/tools" . nel tuo layout di root.

7
Mwongera

Andando avanti, per gli elementi grafici che sono puramente decorativi, la soluzione migliore è usare:

Android:importantForAccessibility="no"

Questo ha senso se la versione minima dell'SDK è almeno 16, poiché i dispositivi con versioni inferiori ignoreranno questo attributo.

Se sei bloccato a supportare versioni precedenti, dovresti usare (come già sottolineato da altri):

Android:contentDescription="@null"

Fonte: https://developer.Android.com/guide/topics/ui/accessibility/apps#label-elements

0
arekolek