Recibo una advertencia como "[Accesibilidad] Falta el atributo contentDescription en la imagen" para imageview. mientras usa pelusa de Android
Qué significa eso?
<string name="none"></string>
y luego uséandroid:contentDescription="@string/none"
Recibo una advertencia como "[Accesibilidad] Falta el atributo contentDescription en la imagen" para imageview. mientras usa pelusa de Android
Qué significa eso?
<string name="none"></string>
y luego uséandroid:contentDescription="@string/none"
Respuestas:
Resolvió esta advertencia estableciendo el atributo android:contentDescription
para mi ImageView
android:contentDescription="@string/desc"
La compatibilidad con Android Lint en ADT 16 arroja esta advertencia para garantizar que los widgets de imágenes proporcionen una descripción de contenido.
Esto define el texto que describe brevemente el contenido de la vista. Esta propiedad se usa principalmente para accesibilidad. Dado que algunas vistas no tienen representación textual, este atributo se puede utilizar para proporcionarlo.
Los widgets no textuales como ImageViews e 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.
Deshabilitar las advertencias de Lint fácilmente te meterá en problemas más adelante. Es mejor que solo especifique contentDescription para todas sus ImageViews. Si no necesita una descripción, simplemente use:
android:contentDescription="@null"
Otra opción es suprimir la advertencia individualmente:
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" />
Te recomiendo que agregues el contenido Descripción.
android:contentDescription="@string/contentDescriptionXxxx"
Pero, seamos realistas. La mayoría de las personas no mantienen literalmente la 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 que el usuario ciego necesitará saber es "¿Dónde está el botón en el que debo hacer clic para continuar?"
Use contentDescriptionAction para cualquier cosa en la que se pueda hacer clic.
use contentDescriptionContent para la imagen con información (gráfico, textAsImage, ...)
use contentDescriptionUserContent para todo el contenido proporcionado por el usuario.
use contentDescription Inútil para todo lo demás.
Como solo es una advertencia, puede suprimirla. Vaya al diseño gráfico de su XML y haga esto:
Haga clic en el botón rojo de la esquina superior derecha
Seleccione "Deshabilitar tipo de problema" (por ejemplo)
Si desea suprimir esta advertencia de manera elegante (porque está seguro de que no se necesita accesibilidad para este ImageView en particular), puede usar un atributo especial:
android:importantForAccessibility="no"
Ir al Gradle
archivo (aplicación de módulo), agregar debajo del bloque de código
android {
...
lintOptions {
disable 'ContentDescription'
}
...
}
¡No más advertencias! codificación feliz
Los widgets no textuales necesitan una descripción de contenido de alguna manera para describir textualmente la imagen para que los lectores de pantalla puedan describir la interfaz de usuario. Puede ignorar la propiedad o definir la propiedadxmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"android:contentDescription="your description"
ContentDescription
necesario para la accesibilidad de Android. Particularmente para la función de lector de pantalla. Si no admite la accesibilidad de Android, puede ignorarlo con la configuración de Lint .
Así que solo crea lint.xml
.
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="ContentDescription" severity="ignore" />
</lint>
Y ponerlo en la app
carpeta.
Para los elementos gráficos que son puramente decorativos, configure sus respectivos atributos Android: contentDescription XML en "@null".
Si su aplicación solo es compatible con dispositivos que ejecutan Android 4.1 (nivel 16 de API) o superior, en su lugar, puede establecer los atributos XML de android: importantForAccessibility de estos elementos en "no"