我在UITableView中有一个按钮。UITableView是在storyboard中创建的,但是按钮是实际创建的。我:
发生意外异常SLUIAElementInvalidException for reason: Element '
当我尝试"点击"按钮元素时:
SLButton *addMemberButton = [SLButton elementWithAccessibilityLabel:@"Add Member"];
SLLog(@"%@", addMemberButton); // prints <SLButton description:"Add Member">
[addMemberButton tap];
我在viewController的viewDidLoad中有以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
self.addMemberButton.isAccessibilityElement = YES;
self.addMemberButton.accessibilityValue = @"Add Member";
self.addMemberButton.accessibilityTraits = UIAccessibilityTraitButton;
}
当我使用可访问性检查器时,按钮是可访问的,并且具有我创建的标签。我甚至尝试在UITableView中关闭可访问性:
self.tableView.isAccessibilityElement = NO;
self.tableView.accessibilityLabel = nil;
这没有区别。对于如何解决这个问题,我将非常感激。
看起来你想通过标签匹配按钮,但"Add Member"实际上是按钮的值。
SLButton *addMemberButton = [SLButton elementWithAccessibilityLabel:nil value:@"Add Member" traits:UIAccessibilityTraitButton];
应该工作,尽管我认为将"添加成员"设置为标签更合适(参见accessibilityLabel
与accessibilityValue
的描述,以及此处的指导方针)。
如果"Add Member"是按钮的标题,实际上您不需要手动设置任何属性——按钮会自动从标题中获得其可访问性标签。