contentDescription ="@ null"一个坏主意?

Jon*_*ona 14 android android-layout

Lint抱怨他们设置了一个内容描述.因此,为了避免创建字符串,我将其设置为null.

android:contentDescription="@null"
Run Code Online (Sandbox Code Playgroud)

这似乎安抚了棉绒的抱怨.我有点迷失为什么我需要设置一个对contentDescription的字符串引用.这样做的目的是什么?为什么我需要这个?并且基本上将其设置为null,这是一个好主意吗?

Bri*_*uis 27

这是盲人的可访问性.对于可访问性,使用contentDescription帮助盲人的应用程序使用Android的文本转语音功能进行导航.因此,如果有人ImageButton通过触控板或其他东西选择,TTS可以说出来,contentDescription以便他们可以轻松导航应用程序.有关更多信息,请参阅

回答你的问题:它可能会使棉绒输出静音,但它没有做任何坏事好事.

  • 非常感谢您的回答!这正是我需要知道的才能理解这一点:) (2认同)
  • 非常感谢!这也正是我所寻找的信息.我将改进我的应用程序中的contentdescriptions! (2认同)

lis*_*isa 20

我知道这个问题是在前一段时间被问到的,但是为了新读者的利益可能会遇到这样的问题:

Brian对于使用的contentDescription绝对正确.但是,有时候将它设置为@null 不仅合适而且受欢迎.如果图像纯粹是装饰性的而不是可点击的或与内容相关的,则应将contentDescription设置为@null.否则,将其设置为有意义的内容.

请记住设置为contentDescription的任何内容在使用屏幕阅读器时设备会大声读出.想象一下简单的弹出对话框.现在,在心理上听同一个对话框的这两个不同的内容描述:

  • "Information icon. Do you want to continue? Fancy horizontal rule. Button. Button."

    航班吗

  • "Do you want to continue? Submit. Cancel."

没有经过深思熟虑的内容描述最终听起来很愚蠢.应该使用@null来抑制诸如标注图标之类的项目,这些图标只是重复它们旁边的文本或者不会影响页面含义的花哨边框.相反,所有可点击的内容不仅必须有描述,还需要有一个有意义的描述.如果您尝试在可点击的东西上设置@null,设备将改为说"按钮".将描述更改为"绿色按钮"没有帮助.不要让用户猜测"绿色按钮"是什么!

如果您不确定,请不要忘记您可以在手机上启用TalkBack.它已预先安装在大多数设备上,或者您可以从Play商店获取.您需要在旧设备上使用d-pad,或通过触摸ICS及更高版本进行探索.

  • 这应该是公认的答案. (2认同)