移动辅助功能配音移动光标焦点到特定元素

时间:2014-01-06 21:34:58

标签: ios objective-c accessibility voiceover uiaccessibility

我在将配音光标移动到viewDidAppear上的特定元素时出现问题。我跟着Apple's guidelines关注特定元素,在这种情况下是一个消除按钮,但光标最终在其他地方

这是我的代码:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
                                self.dismissButton);
}

任何帮助,想法,一定会受到赞赏!非常感谢你。

3 个答案:

答案 0 :(得分:9)

如果我没记错的话,我无法可靠地关注视图的第一个元素,因为VO通常会关注视图的顶部。

您正在执行的代码是正确的,但此时系统将触发它自己的事件并覆盖您的代码。

您可以尝试做的是延迟发布通知。但这会导致焦点在打开视图时跳跃一点点。

这不是一个答案,但那是我现在所处的位置。如果我想出办法,我会更新你。

答案 1 :(得分:2)

This answer可能有所帮助。

基本上,如果元素不在一个容器视图中,则需要将它们包装在容器视图中,然后覆盖指定的方法。

通过为所需元素提供一个低于其他元素的标记,您可以让视图对数组进行排序,以确保它是VoiceOver使用的accessibilityElements数组中的第一个元素。或者您可以调整排序方法以另一种方式进行排序。

答案 2 :(得分:2)

仅供参考:从iOS 11开始,UIAccessibilityLayoutChangedNotification和{{1}}都可以为我提供可靠的语音功能。