我正在收到警告 “[辅助功能]图像上缺少contentDescription属性”for imageview。而使用android lint
这是什么意思?
答案 0 :(得分:167)
通过为我的ImageView设置属性android:contentDescription
解决了此警告
android:contentDescription="@string/desc"
ADT 16中的Android Lint支持会抛出此警告,以确保图像小部件提供contentDescription。
这定义了简要描述视图内容的文本。此属性主要用于辅助功能。由于某些视图没有文本表示,因此该属性可用于提供此类属性。
ImageViews和ImageButtons等非文本小部件应使用contentDescription属性指定小部件的文本描述,以便屏幕阅读器和其他辅助功能工具可以充分描述用户界面。
答案 1 :(得分:49)
禁用Lint警告很容易让您以后遇到麻烦。你最好只为所有的ImageView指定contentDescription。如果您不需要描述,那么只需使用:
android:contentDescription="@null"
答案 2 :(得分:37)
另一种选择是单独抑制警告:
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" />
答案 3 :(得分:21)
我建议您添加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。
答案 4 :(得分:12)
因为它只是一个警告你可以抑制它。转到XML的图形布局并执行以下操作:
点击右上角的红色按钮
选择&#34;禁用问题类型&#34; (例如)
答案 5 :(得分:1)
非文本小部件需要以某种方式进行内容描述,以文本方式描述图像,以便屏幕阅读器能够描述用户界面。您可以忽略属性xmlns:tools="http://schemas.android.com/tools"
或定义属性
tools:ignore="contentDescription"android:contentDescription="your description"
答案 6 :(得分:1)
ContentDescription
是Android辅助功能所需的。
特别适用于屏幕阅读器功能。
如果您不支持Android无障碍功能,则可以忽略它
设置为Lint。
因此只需创建lint.xml
。
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="ContentDescription" severity="ignore" />
</lint>
并将其放在app
文件夹中。
答案 7 :(得分:1)
如果您想以优美的方式禁止显示此警告(因为您确定此特定ImageView不需要辅助功能),则可以使用特殊属性:
android:importantForAccessibility="no"
答案 8 :(得分:0)
由于我需要ImageView添加一个仅用于美学的图标,我在我的xml文件中的每个ImageView中添加了tools:ignore="ContentDescription"
。
我不再收到任何错误消息
答案 9 :(得分:0)
对于纯装饰性图形元素,请将其各自的android:contentDescription XML属性设置为“ @null”。
如果您的应用仅支持运行Android 4.1(API级别16)或更高版本的设备,则可以将这些元素的android:importantForAccessibility XML属性设置为“否”
答案 10 :(得分:0)
转到Gradle
文件(模块应用),在下面的代码块中添加
android {
...
lintOptions {
disable 'ContentDescription'
}
...
}
没有更多警告!开心的编码