我正在为我的应用添加VoiceOver支持。到目前为止,这么好,但我真的希望能够指定哪个元素是UIAccessibilityScreenChangedNotification之后的第一个元素。我还没有看到这样做的方法。制作一些摘要元素似乎并没有真正做到这一点。我错过了什么吗?
答案 0 :(得分:17)
这一直是完全可能的。
只需写下以下内容:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
self.myFirstElement);
}
@end
这适用于UIAccessibilityScreenChangedNotification和UIAccessibilityLayoutChangedNotification。 更多信息:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIAccessibility_Protocol/Introduction/Introduction.html#//apple_ref/c/data/UIAccessibilityLayoutChangedNotification 和这里: http://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/Accessibility/AccessibilityfromtheViewControllersPerspective.html#//apple_ref/doc/uid/TP40007457-CH2-SW1
答案 1 :(得分:2)
我不认为有一个API值指定了读取顺序,除了在启动时使用摘要元素值 - 它是设计的。
因此,您必须测试UIKit元素或任何自定义控件的顺序和默认值,因为它取决于您的设计。您还可以将项目标记为不可访问的元素,以便它们不会被“读取”,默认情况下读取可访问的元素,以及可访问元素的容器,以便您更好地控制预期的交互。我不知道选择该项目是否有帮助。
我认为你已经在使用Accessibility Inspector测试应用程序,然后再在iOS上进行测试。
如果您需要关于此主题的一些背景知识,Rune's Working With VoiceOver Support和Gemmell's Accessibility for Apps可能值得一读。
答案 2 :(得分:0)
如何使用UIAccessibilityAnnouncementNotification?
答案 3 :(得分:0)
This technique为我工作。
VoiceOver将宣布accessibleElements数组中第一个元素的值。这可以根据您的需要进行分类。