描述警告

我收到了警告 “[可访问性]图像上缺少内容描述属性”

那是什么意思?

119448 次浏览

通过为我的 ImageView 设置属性 android:contentDescription来解决此警告

android:contentDescription="@string/desc"

ADT 16中的 Android Lint 支持抛出此警告,以确保图像小部件提供 contentDescription。

这定义了简要描述视图内容的文本。此属性主要用于可访问性。因为有些视图没有文本表示,所以可以使用这个属性来提供。

非文本小部件,如 ImageView 和 ImageButtons,应该使用 contentDescription 属性来指定小部件的文本描述,这样屏幕阅读器和其他辅助工具就可以充分描述用户界面。

因为它只是一个警告,你可以压制它:

  1. 点击右上角的红色按钮

    enter image description here

  2. 选择“禁用问题类型”(例如)

    enter image description here

另一种选择是单独取消警告:

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

禁用 Lint 警告很容易使您在以后陷入麻烦。您最好只是为所有 ImageView 指定 contentDescription。如果您不需要描述,那么只需使用:

android:contentDescription="@null"

我建议您添加 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。

将 contentDescriptionContent 用于包含信息的图像(graph,textAsImage,...)

对所有用户提供的内容使用 contentDescriptionUserContent。

使用 contentDescriptionUuse 来处理其他所有的事情。

非文本小部件在某些方面需要内容描述来描述图像的文本,以便屏幕阅读器能够描述用户界面。可以忽略属性 < code > xmlns: tools = “ http://schemas.android.com/tools”
工具: 忽略 = “ contentDescription” 或定义属性 android:contentDescription="your description"

因为我需要 ImageView 来添加一个图标,只是为了美观,我已经在我的 xml 文件中的每个 ImageView 中添加了 tools:ignore="ContentDescription"

我不再收到任何错误消息

Android 可访问性所需的 ContentDescription。 特别是屏幕阅读器的功能。 如果你不支持 Android 的可访问性,你可以忽略它 与设置 棉线

那就创建 lint.xml

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


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


</lint>

然后放到 app文件夹里。

enter image description here

对于纯装饰性的图形元素,将它们各自的 android: contentDescription XML 属性设置为“@null”。

如果您的应用程序只支持运行 Android 4.1(API 级别16)或更高的设备,那么您可以将这些元素的 Android: impantForAccability XML 属性设置为“ no”

转到 Gradle文件(模块应用程序) ,添加以下代码块

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

没有更多的警告! 快乐编码

如果希望以优雅的方式禁止显示此警告(因为您确信此特定 ImageView 不需要可访问性) ,可以使用特殊属性:

android:importantForAccessibility="no"