Lint 提示设置了一个 contentDescription。因此,为了避免创建字符串,我将其设置为 null。
android:contentDescription="@null"
这似乎平息了 lint 的提示。我有点迷惑为什么我需要设置对 contentDescription 的字符串引用。这样做的目的是什么?为什么我需要这个?并将其设置为 null,这是个好主意吗?
最佳答案
我知道不久前有人问过这个问题,但为了可能遇到这个问题的新读者的利益:
Brian 关于 contentDescription 的用途完全正确。但是,有时将其设置为@null 不仅合适而且首选。 如果图像纯粹是装饰性的,不可点击或与内容无关,则应将 contentDescription 设置为@null。否则,将其设置为有意义的内容。
请记住,当使用屏幕阅读器时,设备会大声朗读任何设置为 contentDescription 的内容。在您的脑海中想象一个简单的弹出对话框。现在,在脑海中聆听同一对话的这两种不同的内容描述:
“信息图标。你想继续吗?花哨的水平线。按钮。按钮。”
-对比-
“你想继续吗?提交。取消。”
未经深思熟虑的内容描述最终听起来很愚蠢。诸如只是重复旁边文本的标注图标或无助于页面含义的花哨边框等项目应使用@null 进行抑制。相反,所有可点击的东西不仅必须有描述,还需要有一个有意义的描述。如果您尝试在可点击的内容上设置@null,设备将改为说“按钮”。将描述更改为“绿色按钮”没有帮助。不要让您的用户猜测“绿色按钮”是什么!
如果您不确定,请不要忘记您可以在手机上启用 TalkBack。它已预装在大多数设备上,您也可以从 Play 商店获取它。您将需要在旧设备上使用方向键,或者在 ICS 及更高版本设备上通过触摸进行探索。
关于android - contentDescription ="@null"是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197661/