VoiceOver控件可在隐藏时选择



我有一个UIView,它包含一些控件(例如按钮、标签等)。我将此视图覆盖到另一个视图上(使用addSubview)。如果用户打开VoiceOver,他可以向左和向右滑动以选择控件。但是,如果我隐藏视图,使控件不再可见,用户仍然可以滑动并选择它们(尽管它们实际上不起作用)。由于这对盲人用户来说非常困惑,我希望避免这种情况发生。我甚至尝试删除包含控件的视图(使用removeFromSuperview),但用户仍然可以滑动选择控件(尽管突出显示控件的小框不再位于正确位置)。就像VoiceOver已经记住了这些控件曾经存在过,并且将永远记住。

我还发现了属性"accessibilityElementsHidden",并尝试在包含隐藏控件的视图中将其设置为YES,但这似乎也不起作用。

这是VoiceOver中的错误,还是我遗漏了什么?有变通办法吗?

谢谢。

"记住的"部分让我觉得在删除子视图后,你没有做类似UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil)的事情。

"accessibilityElementsHidden"的文档状态:

一个布尔值,指示辅助功能元素包含在此可访问性元素中的被隐藏。。。。。这个此属性的默认值为NO。您可以使用此属性隐藏新视图到达时覆盖的视图。在这个在这种情况下,隐藏的视图可能在屏幕上仍然可见,但它们不是用户动作的焦点。

您也可以使用此属性来隐藏一个临时视图VoiceOver用户无需注意。例如,VoiceOver没有需要描述用户调整时显示的半透明视图他们设备上的音量,因为这个动作的听觉反馈就足够了。

因此,基于此,为了让VoiceOver忽略这些子视图,您实际上需要在父视图中将其设置为"是"。

最新更新