我正在添加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?