【发布时间】:2012-11-07 22:39:05
【问题描述】:
我在屏幕上有一堆按钮,它们在视觉上直观地定位,但 VoiceOver 并没有以直观的顺序阅读。这是因为某些按钮(例如向上和向下)位于彼此上方和下方。然而,画外音似乎开始从左到右,从上到下阅读。
这会导致画外音在“Up”之后朗读“Up”右侧的按钮,而不是紧接着朗读“Down”。
如何强制画外音朗读我想朗读的按钮?我应该提一下,我在画外音中使用了滑动到循环元素功能。
我所有的按钮都是 UIView 和 UIButton 的子类版本。这是我使用的按钮启动器的示例。忽略像素数 - 我知道这是不好的形式,但我现在处于紧要关头:
UIButton* createSpecialButton(CGRect frame,
NSString* imageName,
NSString* activeImageName,
id target,
SEL obClickHandler)
{
UIButton* b = [UIButton buttonWithType:UIButtonTypeCustom];
[b setImage:[GlobalHelper nonCachedImage:imageName ofType:@"png"]
forState:UIControlStateNormal];
[b setImage:[GlobalHelper nonCachedImage:activeImageName ofType:@"png"]
forState:UIControlStateHighlighted];
[b addTarget:target action:obClickHandler forControlEvents:UIControlEventTouchUpInside];
b.frame= frame;
return b;
}
- (UIButton *) createSendButton {
CGFloat yMarker = 295;
UIButton* b = createSpecialButton(CGRectMake(160, yMarker, 70, 45),
@"Share_Btn",
@"Share_Selected_Btn",
self,
@selector(sendAction));
b.accessibilityHint = @"Send it!";
b.accessibilityLabel = @"Stuff for voiceover to be added";
[self.view addSubview:b];
return b;
}
【问题讨论】:
-
添加一些代码会有所帮助。
-
会吗?因为我基本上只有一堆函数来初始化按钮并将它们作为子视图添加到主视图中。它们是可访问的,并具有可访问性提示和标签。关于代码你需要知道什么?
-
这将有助于您启动按钮的方式和顺序
-
我添加了一些代码。这就是我添加几个按钮的方式。我调用 createSpecialButton,将其返回并添加到视图中。
标签: ios accessibility voiceover