android - ImportantForAccessibility=false 与 ContentDescription=null
问题描述
在从屏幕上读出时,我希望 TalkBack 跳过一个元素。
我可以将其设置contentDescription
为null
.
我还阅读了有关ImportantForAccessibility:
指示元素是否对 Accessibility API 可见的信息。
还有哪些其他 API?
ImportantForAccessibility=false
用完会更干净contentDescription=null
吗?
解决方案
ImportantForAccessibility=false
用于隐藏可访问性树中的任何元素,包括按钮、内容等。
contentDescription=null
仅对您想要隐藏的图像(可能还有其他我想不到的项目)有用,否则辅助功能树将尽力为项目找到合适的名称。
一个典型的例子是ImageButton
- 如果您使用contentDescription=null
它,它将宣布“按钮”和目标/按钮文本。如果您使用ImportantForAccessibility=false
它,它将完全从可访问性树中隐藏该项目。
我能想到的最好的类比(如果您熟悉 Web 标准)contentDescription
就像一个alt
属性或aria-labelledby
属性,ImportantForAccessibility=false
类似于aria-hidden="true"
.
我要提醒你的一件事- 除了装饰项目之外,你不应该真正从可访问性树中隐藏项目,只是要小心你没有给屏幕阅读器用户提供不同的体验(你没有指定你的用例,只是想把这一点锤回家)。
最后一件事 - 尝试一下TalkBack
,在设备上进行测试是了解您是否正确的最快方法!
推荐阅读
- javascript - UTF-8 使用 Ajax 将数据从 Javascript 传递到 PHP
- c# - 从 autofac 和 microsoft 依赖注入之间扫描程序集注册类型
- spring-boot - 由于不允许同一端点的多个消费者,无法启动路由 [A]:[E]
- laravel - 在单个控制器中使用 2 个不同的 FormRequest
- json - 当我试图在颤动的小部件上的文本上打印 json 时,我收到此错误“无效参数”
- python - Python:条件满足时if/else语句不起作用
- python - 为什么建议在 Ubuntu 的文本编辑器中使用 4 个空格而不是制表符?
- c# - 如何使用 Blazor 获取网页标题?
- go - 理解 go 复合字面量
- python - 如何每次从 python 或 pyspark 中的 csv 读取 10 条记录?