项目场景:
VoiceOver
是iOS系统中一项重要的辅助功能,尤其是对绝大部分视力障碍人士格外重要。在iOS开发过程中,通过双指向右滑动屏幕,VoiceOver
的默认阅读顺序是从左到右,从上到下,依次遍历所有屏幕上的控件按钮等可交互组件并阅读它们的信息内容。但是当我们的主视图是UIScrollView
或者UITableView
时,由于其可能会包含很多内容,所以有时我们会要求VoiceOver
优先遍历所有可交互控件,再去阅读存在于UIScrollView
或者UITableView
中的内容。此时,我们就可以通过修改AccessibilityElements
以调整VoiceOver
阅读顺序。
问题描述
例如在下面的视图中:
VoiceOver
的阅读顺序为:
NavigationBar
中的按钮UITableView
中的所有单元- 底部的三个按钮
但在实际应用中,由于UITableView
中的单元可能会几十甚至上百个,因此我们应该优先阅读位于底部的按钮,最后才是UITableView
中的单元。
解决方案:
通过改变UIViewController
的AccessibilityElements
,从而调整VoiceOver的阅读顺序:
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.accessibilityElements = @[self.navigationItem, self.button, self.tableView];
}
@end