133

对于 imageview,我收到警告为“[Accessibility] 图片上缺少 contentDescription 属性”。在使用 android lint 时

这意味着什么?

4

11 回答 11

173

android:contentDescription通过为我的 ImageView设置属性解决了这个警告

android:contentDescription="@string/desc"

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

这定义了简要描述视图内容的文本。此属性主要用于可访问性。由于某些视图没有文本表示,因此此属性可用于提供此类。

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

于 2011-12-14T12:40:47.870 回答
51

禁用 Lint 警告很容易让您以后遇到麻烦。你最好只为所有的 ImageView 指定 contentDescription。如果您不需要描述,则只需使用:

android:contentDescription="@null"
于 2013-07-11T21:12:06.827 回答
40

另一种选择是单独禁止警告:

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" />
于 2013-05-18T23:26:44.453 回答
25

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

其余的使用 contentDescriptionUseless。

于 2014-01-21T08:44:04.847 回答
12

因为它只是一个警告,你可以抑制它。转到 XML 的图形布局并执行以下操作:

  1. 点击右上角红色按钮

    在此处输入图像描述

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

    在此处输入图像描述

于 2012-12-20T22:53:25.240 回答
4

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

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

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

于 2019-04-08T03:26:01.010 回答
4

如果您想以优雅的方式抑制此警告(因为您确定此特定 ImageView 不需要可访问性),您可以使用特殊属性:

android:importantForAccessibility="no"
于 2019-12-26T12:25:25.663 回答
2

ContentDescriptionAndroid 可访问性所需的。特别是对于屏幕阅读器功能。如果您不支持 Android 可访问性,您可以使用设置Lint忽略它。

所以只需创建lint.xml.

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

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

</lint>

并将其放入app文件夹中。

在此处输入图像描述

于 2018-10-16T08:02:25.013 回答
2

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

如果您的应用仅支持运行 Android 4.1(API 级别 16)或更高版本的设备,您可以改为将这些元素的 android:importantForAccessibility XML 属性设置为“no”

于 2018-10-24T08:32:09.477 回答
1

非文本小部件需要以某种方式以文本方式描述图像的内容描述,以便屏幕阅读器能够描述用户界面。您可以忽略该属性或定义该属性xmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"
android:contentDescription="your description"

于 2018-03-30T14:40:33.973 回答
0

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

我不再收到任何错误消息

于 2018-06-01T18:45:56.217 回答