VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别

Posted 阿曌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别相关的知识,希望对你有一定的参考价值。

NSObject的扩展NSObject(UIAccessibility)中,有两个属性

@property(nonatomic) BOOL isAccessibilityElement

@property(nonatomic) BOOL accessibilityElementsHidden

这两个都可以使“VO元素”不支持“VO”。(VO:VoiceOver简称,VO元素:支持VocieOver的元素,在代码中被写为accessibilityElement

可以设置

    view.isAccessibilityElement = NO;

或者

    view.accessibilityElementsHidden = YES;

这两个的元素区别是:isAccessibilityElement是针对当前“VO元素”的,而accessibilityElementsHidden是针对当前“VO元素”以及其所包含的所有“VO元素”的。

举个isAccessibilityElement的例子。

一个Button里面有个Label,如果这时候设置button.isAccessibilityElement = NO;UIButton的isAccessibilityElement默认为YES),使用VoiceOver时会发现还是可以使用,只不过选中区域由原来的Button区域缩小为Label区域了。

反之,如果只把LabelisAccessibilityElement设为NO,和没设效果是一样的——选中为Button区域。

再举个accessibilityElementsHidden的例子

如果我们需要把一个ViewController根View以及内部所有子View都不支持VoiceOver,只需要在ViewController中这样写就可以了。

    self.view.accessibilityElementsHidden = YES;

所有的“VO元素”就都隐藏“VO”功能了。


分别看下官方文档的解释。

以上是关于VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别的主要内容,如果未能解决你的问题,请参考以下文章

如何让 VoiceOver 在 iOS 中宣布部分标签?

VoiceOver:如何在计算器中实现类似于键的按钮

VoiceOver中isAccessibilityElement和accessibilityElementsHidden的区别

VoiceOver 标题转子中未列出链接的标题

我可以影响 VoiceOver 转子中显示的内容吗?

使用 AppleScript 在 macOS Sierra 中启用 VoiceOver 不起作用