初始VoiceOver选择



我正在添加VoiceOver支持到我的应用程序。到目前为止,很好,但我真的希望能够指定哪个元素是在uiaccessibilityyscreenchangednotification之后说的第一个。我还没找到办法。将某些内容设置为摘要元素似乎并不能真正做到这一点。我错过什么了吗?

这一直是完全可能做到的。

就这样写:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
                                    self.myFirstElement);
}
@end

这适用于uiaccessibilityyscreenchangednotification和UIAccessibilityLayoutChangedNotification。

现在为Swift 5

override func viewDidAppear(_ animated: Bool) {
    UIAccessibility.post(notification: UIAccessibility.Notification.screenChanged,
                         argument: myFirstElement)
}

我认为除了在启动时使用Summary Element值外,没有API值指定读取顺序-这是设计的。

所以你必须测试UIKit元素或任何自定义控件的顺序和默认值,因为这取决于你的设计。你还可以将项目标记为不可访问元素,这样它们就不会被"读取",可访问元素默认被读取,以及可访问元素的容器,这样你就可以更好地控制预期的交互。我不知道把项目选中是否会有帮助。

我认为你已经在iOS上测试之前使用了可访问性检查器来测试你的应用程序。

如果你需要一些关于这个主题的背景,Rune的《Working With VoiceOver Support》和Gemmell的《Accessibility for Apps》可能值得一读。

如何使用UIAccessibilityAnnouncementNotification?

最新更新