我在将配音光标移动到viewDidAppear上的特定元素时出现问题。我跟着Apple's guidelines关注特定元素,在这种情况下是一个消除按钮,但光标最终在其他地方
这是我的代码:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
self.dismissButton);
}
任何帮助,想法,一定会受到赞赏!非常感谢你。
答案 0 :(得分:9)
如果我没记错的话,我无法可靠地关注视图的第一个元素,因为VO通常会关注视图的顶部。
您正在执行的代码是正确的,但此时系统将触发它自己的事件并覆盖您的代码。
您可以尝试做的是延迟发布通知。但这会导致焦点在打开视图时跳跃一点点。
这不是一个答案,但那是我现在所处的位置。如果我想出办法,我会更新你。
答案 1 :(得分:2)
This answer可能有所帮助。
基本上,如果元素不在一个容器视图中,则需要将它们包装在容器视图中,然后覆盖指定的方法。
通过为所需元素提供一个低于其他元素的标记,您可以让视图对数组进行排序,以确保它是VoiceOver使用的accessibilityElements数组中的第一个元素。或者您可以调整排序方法以另一种方式进行排序。
答案 2 :(得分:2)
仅供参考:从iOS 11开始,UIAccessibilityLayoutChangedNotification
和{{1}}都可以为我提供可靠的语音功能。