创建于 2019-11-19
所有技术均已在IT之家APP内实现,请前往App Store下载体验
是否启用VoiceOver
UIAccessibilityIsVoiceOverRunning()
无障碍焦点穿透问题
解决方案 :accessibilityViewIsModal 属性设为YES
----view. accessibilityViewIsModal = YES;
这里的view为弹出的view
解释:
通知是否应通过可访问性将接收视图视为模态。 如果是,则此视图之外的元素将被忽略。 仅此视图内的元素将被公开。
主要用在最上层view显示了但是焦点不在此view上
参考:
半透明蒙层问题
关于手动聚焦
有时弹提示时应当把VoiceOver焦点聚焦到弹出的view
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, self.myFirstElement);
//self.myFirstElement 这个参数其实是弹出的view上的子view,弹出后焦点在这个子view上
创建转子操作动作
旁白下焦点左右滑动控制移动焦点,加上这个后可以上下选择操作,体验天上地下的区别
可参考这个creatAccessibilityCustomActions方法,给self.accessibilityCustomActions赋值
- (void)creatAccessibilityCustomActions{
//分享
UIAccessibilityCustomAction * shareAction = [[UIAccessibilityCustomAction alloc] initWithName:@"分享" target:self selector:@selector(shareAction)];
//更多
UIAccessibilityCustomAction * moreAction = [[UIAccessibilityCustomAction alloc] initWithName:@"更多" target:self selector:@selector(moreAction)];
self.accessibilityCustomActions = @[shareAction,moreAction];
}
一些参考
iOS手机无障碍编程总结
iOS盲人模式小结
【译】让你的应用支持旁白(iOS无障碍化官方文档)
中文翻译iOS 无障碍编程指南
文档资源:链接:https://pan.baidu.com/s/17aWO7kycM2WjrzhhZGn8SA 密码:mown