考虑将KIF添加到我们的应用以进行集成测试。我希望能够从UIActionSheet中选择一个按钮,但似乎没有一种有效的方法来设置操作表中每个按钮上的辅助功能标签。在UIActionSheets上设置辅助功能标签的首选方式
我正在查看使用accessibleElementCount,通过按钮迭代的方式。这是做这件事的首选方式还是有一个更为标准的方式来设置UIActionSheets的可访问性?
考虑将KIF添加到我们的应用以进行集成测试。我希望能够从UIActionSheet中选择一个按钮,但似乎没有一种有效的方法来设置操作表中每个按钮上的辅助功能标签。在UIActionSheets上设置辅助功能标签的首选方式
我正在查看使用accessibleElementCount,通过按钮迭代的方式。这是做这件事的首选方式还是有一个更为标准的方式来设置UIActionSheets的可访问性?
从UIKit User Interface Catalog:
动作片由默认访问。
操作表的辅助功能主要关注按钮标题。如果VoiceOver已激活,则在显示操作表时会显示“alert”字样,如果已设置,则会显示其标题(尽管iOS人机界面指南建议不要使用字幕操作表)。当用户点击的动作片按钮,VoiceOver会说出它的标题和文字“按钮。”
从你的问题,如果你想改变无障碍标签比按钮标题以外的东西目前还不清楚+按钮,但看起来这不可能以直接的方式进行。
你必须在你的类中实现UIActionSheetDelegate。
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
for (UIView *_yourView in actionSheet.subviews) {
if ([_yourView isKindOfClass:[UILabel class]]) {
[((UILabel *)_yourView) setFont:[UIFont boldSystemFontOfSize:14.0f]];
}
}
}
如果你想拥有在UIActionSheet一些自定义的控制(使用KIF测试的角度来看),我做的最简单的方法,用UIAlertController取代它,如果你心里有一个子类化在两个类中都不可能,如果你测试像我这样的多语言应用程序 - 你会发现自己陷入困境。您可以设置属性为UIAlertAction的,这里是一些代码,这样你就可以有这个想法:
UIAlertAction* yesButton = [UIAlertAction
actionWithTitle:[LI18n localizedString:@"YES"]
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {
//Handle your yes please button action here
}];
yesButton.accessibilityLabel = @"YES_BUTTON";
accessibilityLabel用于人谁拥有视力问题,如果他们试图读取YES_BUTTON这将是一个烂摊子 –