当“双指向下轻拂”手势完成时,是否可以更改iPad中辅助功能的VoiceOver功能读取元素的顺序?
对于附加图像,其中包含3个标签和一个按钮,VoiceOver按以下方式读取元素,
标签1 - >标签2 - >按钮 - >标签3
订单可以更改为,
标签1 - >标签2 - >标签3 - >按钮
答案 0 :(得分:14)
为您的示例实现此目的的最快方法是将三个标签放在透明的UIView
子类中,以用作标签的容器。必须正确设置此子类,以便让VoiceOver知道如何解释它。如果您的部署目标是iOS6
,那么您只需回答此子类中的“should group accessibility children”问题。
-(BOOL)shouldGroupAccessibilityChildren{
return YES;
}
对于下面的iOS6
,除了你的UIView
容器子类只包含UILabels
是可访问性元素之外,它会更复杂。你可以像这样实现它:
-(BOOL)isAccessibilityElement{
return NO;
}
-(NSInteger)accessibilityElementCount{
return self.subviews.count;
}
-(id)accessibilityElementAtIndex:(NSInteger)index{
return [self.subviews objectAtIndex:index];
}
-(NSInteger)indexOfAccessibilityElement:(id)element{
return [self.subviews indexOfObject:element];
}
我已经测试了这个示例代码,它可以满足您的需求,如果您需要任何说明,请添加评论。总是很乐意帮助让事情更容易获得。
答案 1 :(得分:4)
我尝试将shouldGroupAccessibilityChildren
设置为YES
,但它对我没用。
为我工作的是直接设置父视图的辅助功能标签(因为我希望在一个/一个VoiceOver手势中读取所有项目。)
[cell setAccessibilityLabel:[NSString stringWithFormat:@"%@, %@", cityLabel, temperatureLabel]];
以上代码段来自Apple的文档Enhancing the Accessibility of Table View Cells
答案 2 :(得分:0)
我认为你可以在故事板中做到这一点。 VoiceOver顺序由文档大纲中的视图顺序决定。
只需按正确的顺序拖放视图层次结构中的视图。
答案 3 :(得分:0)
在Swift中,将IBOutlet附加到父UIView,然后将shouldGroupAccessibilityChildren设置为true就足够了。
abc.shouldGroupAccessibilityChildren = true
我注意到如果同时设置isAccessibilityElement = true
,分组也不会生效。同样,检查storyboard或xib中的辅助功能复选框也会阻止分组的发生。