7

在此处输入图像描述

当“双指向下滑动”手势完成时,是否可以更改 iPad 中用于辅助功能的 VoiceOver 功能读出元素的顺序?

对于包含 3 个标签和一个按钮的附加图像,VoiceOver 按以下方式读取元素,

标签 1 -> 标签 2 -> 按钮 -> 标签 3

订单可以改成,

标签 1 -> 标签 2 -> 标签 3 -> 按钮

4

4 回答 4

15

对于您的示例,实现此目的的最快方法是将三个标签放在一个透明的UIView子类中,作为标签的容器。必须正确设置此子类以让 VoiceOver 知道如何解释它。如果您的部署目标是,iOS6那么您可以简单地回答这个子类中的“应该对可访问性子类进行分组”问题。

-(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];
}

我已经测试了这个示例代码,它可以满足您的需求,如果您需要任何说明,请添加评论。总是乐于帮助使事情更容易获得。

于 2012-10-30T06:15:21.593 回答
4

I tried setting the shouldGroupAccessibilityChildren to YES but it didn't work for me.

What did work for me was setting the accessibility label of the parent view directly (because I wanted all the items to be read in one go/one VoiceOver gesture).

[cell setAccessibilityLabel:[NSString stringWithFormat:@"%@, %@", cityLabel, temperatureLabel]];

The above snippet of codes is from Apple's documentation Enhancing the Accessibility of Table View Cells

于 2015-12-22T18:48:14.053 回答
1

在 Swift 中,将 IBOutlet 附加到父 UIView,然后将 shouldGroupAccessibilityChildren 设置为 true 就足够了。

abc.shouldGroupAccessibilityChildren = true

我确实注意到如果还设置isAccessibilityElement = true分组将不会生效。同样,选中故事板或 xib 中的可访问性复选框也将阻止分组发生。

于 2017-10-31T16:52:34.827 回答
0

我认为你可以在故事板中做到这一点。VoiceOver 顺序由文档大纲中视图的顺序决定。

只需以正确的顺序拖放视图层次结构中的视图即可。

于 2015-02-16T13:20:29.580 回答