2011-12-14 13 views
120

Recibo una advertencia como "[Accesibilidad] Falta contenidoDescripción atributo en la imagen" para la vista de imagen. durante el uso de Android pelusaAndroid Lint contentDescripción advertencia

¿Qué significa eso?

+5

esto es una advertencia tan molesto - especialmente para imágenes que son solo para estilo –

+6

Lo definí en strings.xml: '' y luego usé 'android: contentDescription =" @ string/none "' –

Respuesta

159

resuelto este aviso activando atributo android:contentDescription para mi ImageView

android:contentDescription="@string/desc" 

apoyo pelusa Android en ADT 16 lanza esta advertencia para asegurar que los widgets de imagen proporcionan un contentDescription.

Define texto que describe brevemente el contenido de la vista. Esta propiedad se usa principalmente para accesibilidad. Como algunas vistas no tienen representación textual, este atributo se puede usar para proporcionarlas.

Los widgets no textuales como ImageViews y ImageButtons deben usar el atributo contentDescription para especificar una descripción textual del widget de modo que los lectores de pantalla y otras herramientas de accesibilidad puedan describir adecuadamente la interfaz de usuario.

+3

Puede leer más sobre esto y probarlo usted mismo visitando: http://android-developers.blogspot.com/2012/04/accessibility-are-you-serving-all-your. html y http://developer.android.com/guide/topics/ui/accessibility/apps.html#test –

12

Dado que es solo una advertencia, puede suprimirlo. Ir a la gráfica de la disposición de su XML y hacer esto:

  1. Haga clic en la esquina superior botón derecho del rojo

    enter image description here

  2. Seleccione "Desactivar Tipo de problema" (por ejemplo)

    enter image description here

+4

Es cierto que puede suprimirlo, pero probablemente deba seguir el consejo de la respuesta seleccionada, por el bien de la usuarios que confían en las herramientas de accesibilidad que proporciona Android. –

+0

Esto es todo! eso es lo que estaba buscando. Esta respuesta y la respuesta de @Gunnar Bernstein me atraparon. – IronBlossom

33

Otra op ción es suprimir la advertencia individual:

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

Ejemplo:

<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" /> 
+0

Incorrecto: agregar herramientas: ignorar = "contentDescription" en RelativeLayout llevado a compilar el error "Atributo no tiene el prefijo del espacio de nombre de Android" –

+1

Este es un problema de eclipse. Solo limpia tu proyecto. Y asegúrese de que: xmlns: tools = "http://schemas.android.com/tools" también esté incluido. –

40

Desactivación de advertencias pelusa para poder llegar fácilmente en problemas más adelante. Es mejor que solo especifiques contentDescription para todas tus ImageViews. Si usted no necesita una descripción, a continuación, sólo tiene que utilizar:

android:contentDescription="@null" 
18

os recomiendan para añadir el contentDescription.

android:contentDescription="@string/contentDescriptionXxxx" 

pero, seamos realistas. La mayoría de las personas no mantienen el literal de accesibilidad. Aún así, con poco esfuerzo, puede implementar algo para ayudar a las personas con discapacidad.

<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> 

.

Lo más importante, el usuario tendrá que saber es ciega "¿Dónde está el botón que tengo que hacer clic para continuar"

Uso contentDescriptionAction para nada se puede hacer clic.

uso contentDescriptionContent para una imagen con la información (gráfica, textAsImage, ...)

uso contentDescriptionUserContent de todo el contenido proporcionado por el usuario.

use contentDescriptionUseless para el resto.

+1

¡Gracias! Siempre es una mejor opción para proporcionar esta descripción en lugar de suprimir la advertencia. –

Cuestiones relacionadas