我有一个UITableView
我内置的loadView
。我在做的事情之一loadView
是创建一个UIView
充当表头并填充UIImageView
进去。图像视图包含作为风格化标题的图像,因此我想为 VoiceOver 用户添加辅助功能标签。但是,我无法让 VoiceOver “聚焦”在图像上以读取标签,并且辅助功能检查器不会响应单击模拟器中的图像。我的(缩写)代码如下:
... in -loadView ...
// Make header view
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(...)];
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:[self titleImage]];
titleImageView.accessibilityLabel = [self accessibilityLabelForTitleImage];
[headerView addSubview:titleImageView];
// Make table view
self.tableView = [[UITableView alloc] initWithFrame:CGRect(...) style:UITableViewStylePlain];
self.tableView.tableHeaderView = headerView;
... code continues ...
我已经在 gdb 中单步执行了accessibilityLabelForTitleImage
返回一个字符串。po [titleImageView accessibilityLabel]
打印出正确的字符串,但我仍然无法专注于图像视图。请注意,视图本身会出现并根据需要做出响应。
我错过了什么吗?有没有办法强制 VoiceOver 确认图像视图?
在 Voice-Over 中,为了使元素可访问:-
您必须将 setIsAccessibilityElement 属性设置为 true,我在您的代码中找不到该属性。
另一个重要的一点是,要使子元素(子视图)可访问,您必须单独使它们可访问,而父元素不应该可访问(您也必须指定这一点)。
在您的自定义单元中实现 UIAccessibilityContainer 协议。
如果我继续下去,这将是一个大故事。请参考这个苹果的无障碍配音 http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html#//apple_ref/doc/uid/TP40008785-CH102-SW5.
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)