我可以看到importantForA11y
是为了minSdk=6+
但是,如果他们可以使用,为什么还要使用它setConentDescription=@null
呢?
importantForA11y=false
vs. setConentDescription=@null
vs.之间有什么区别focusable=false
我可以看到importantForA11y
是为了minSdk=6+
但是,如果他们可以使用,为什么还要使用它setConentDescription=@null
呢?
importantForA11y=false
vs. setConentDescription=@null
vs.之间有什么区别focusable=false
ImportantForAccessibility=false
用于隐藏可访问性树中的任何元素,包括按钮、内容等。
contentDescription=null
仅对您想要隐藏的图像(可能还有其他我想不到的项目)有用,否则辅助功能树将尽力为项目找到合适的名称。
一个典型的例子是ImageButton
- 如果您使用contentDescription=null
它,它将宣布“按钮”和目标/按钮文本。如果您使用ImportantForAccessibility=false
它,它将完全从可访问性树中隐藏该项目。
我能想到的最好的类比(如果您熟悉 Web 标准)contentDescription
就像一个alt
属性或aria-labelledby
属性,ImportantForAccessibility=false
类似于aria-hidden="true"
.
关于focusable=false
,这应该用于ImageView
s 之类的东西,它应该始终与importantForAccessibility=false
(或importantForAccessibility="no"
) 一起使用,以确保将纯装饰性的项目从可访问性树中完全删除。
可能有一些我无法想到的极端情况,请使用TalkBack
或类似的屏幕阅读器对其进行测试。