2016iOS视图控制器编程指南——支持无障碍中国信息无障碍产品联盟&信息无障碍研究会译制刘辉刘彪沈广荣20160722原文地址目录1.
简介.
12.
移动VoiceOver光标到特定元素13.
响应特殊VoiceOver手势23.
1双指搓擦.
33.
2魔法轻拍.
33.
3三指滚动.
33.
4增加和减少.
34.
观察无障碍通知.
411.
简介一个可以被所有人使用的无障碍应用——包含能力障碍和肢体障碍的用户——保持应用的功能性和可用性是一个有用的工具.
为了实现无障碍,一个iOS应用应该提供其用户界面元素的信息给VoiceOver,视觉障碍用户就可以与这些元素进行交互了.
UIKit对象默认是无障碍的,但是开发者仍可以从视图控制器角度做某些事情来实现无障碍,这些事情包含:保证界面中的每个用户元素可访问,包含控件和静态元素,例如labels;保证无障碍元素提供精确有用的信息.
通过编程式设置VoiceOver焦点环的位置、响应特殊VoiceOver手势、观察无障碍通知,可以增强VoiceOver用户对应用的体验.
2.
移动VoiceOver光标到特定元素当应用在屏幕上呈现新的视图,思考设置VoiceOver光标的位置.
当屏幕布局改变时,VoiceOver焦点环,也被称为VoiceOver光标,重置其位置到屏幕上显示的从左到右从上到下的第一个元素.
将光标放置在一个更加合适的元素上,可以加快界面的用户导航.
例如,当新增一个新的视图控制器到导航控制器堆栈,VoiceOver光标落在导航条的返回按钮上.
开发者可能想要将光标移动到导航条的标题区域或者新弹出窗口的某个元素上.
为了改变光标的位置,使用UIAccessibilityPostNotification功能发送一个UIAccessibilityScreenChangedNotification通知.
该通知告知VoiceOver屏幕内容改变了.
当发送该通知时,指定想要哪个元素接收焦点,如表6-1所示.
表6-1发送一个无障碍通知改变第一个朗读的元素@implementationMyViewController-(void)viewDidAppear:(BOOL)animated{[superviewDidAppear:animated];//第二个参数是新的焦点元素.
2UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,self.
myFirstElement);}@end布局改变,包含旋转引起的改变,重置VoiceOver光标的位置.
当视图控制器的布局改变时,发送UIAccessibilityLayoutChangedNotification通知.
和UIAccessibilityScreenChangedNotification通知一样,可以指定想要VoiceOver第一个聚焦的新元素对象.
3.
响应特殊VoiceOver手势为了触发应用特定操作,VoiceOver定义了5个特殊手势.
双指搓擦:一个双指Z字形手势,关闭模态对话框,或者返回导航层次中的上一级;魔法轻拍:一个双指双击手势,执行最期望的操作;三指滚动:一个三指扫动手势,垂直或水平滚动内容;增加:一个单指向上扫动手势,增加元素的值;减少:一个单指向下扫动手势,减少元素的值;使用这些手势执行视图或视图控制器的特定任务.
UIKit会寻找一个方法实现与手势对应的方法.
UIKit使用responder链搜索该方法,从有VoiceOver焦点的元素开始.
如果没有对象实现合适的方法,UIKit为该手势执行系统默认操作.
例如,如果在一个音乐应用中,从当前视图到应用门户都没有找到魔法轻拍的实现,魔法轻拍手势实现播放和暂停音乐.
尽管开发者可以在处理器中执行任何想要的操作,但是选择VoiceOver用户期望的应用操作应该遵循某些准则.
跟其他手势一样,VoiceOver手势的实现应该遵循一个模式,这样无障碍应用的交互就能符合直觉.
注意:所有VoiceOver特殊手势方法返回一个布尔值,该值决定是否通过responder链传递.
暂停传递,返回YES,否则,返回NO.
33.
1双指搓擦使用accessibilityPerformEscape方法处理双指搓擦手势.
对一个覆盖内容的视图——例如,一个模态对话框或一个警告框——使用该方法关闭该覆盖.
双指搓擦手势的功能像电脑键盘Esc键的功能;它关闭一个临时对话框或浮层来恢复主要内容.
开发者也可以使用双指搓擦手势在自定义导航层级中回到上一级.
如果已经使用了UINavigationController对象,不需要实现该手势,因为UINavigationController对象已经处理了该手势.
3.
2魔法轻拍使用accessibilityPerformMagicTap方法来处理魔法轻拍手势.
魔法轻拍快速执行用户常用的或最想要的操作.
例如,在电话应用中,一个魔法轻拍接听或挂断一个呼叫;在一个钟表应用中,魔法轻拍启动和停止秒表.
也可能会使用该手势去触发与VoiceOver光标高亮元素没有必然关系的操作.
在应用中任何位置处理魔法轻拍手势,都会在应用门户中实现accessibilityPerformMagicTap方法.
3.
3三指滚动使用accessibilityScroll:方法滚动自定义视图的内容,当VoiceOver用户执行三指滚动手势.
一个展示书页的自定义视图可能使用该手势来换页.
传递到该方法的参数标识滚动的方法.
3.
4增加和减少使用accessibilityIncrement和accessibilityDecrement方法来增加和减少元素的值.
具有UIAccessibilityTraitAdjustable特性的元素必须实现该方法.
44.
观察无障碍通知UIkit发送无障碍通知来告知应用相关事件.
应用对象可以观察任何相关通知,并使用他们实现合适的任务.
例如,当VoiceOver完成页面上最后一行的阅读,iBook应用使用UIAccessibilityAnnouncementDidFinishNotification通知来换页并继续阅读.
该行为提供一个无缝的、无中断的阅读体验.
使用默认通知中心为无障碍通知注册一个观察器.
表6-2展示了一个记录视图样例是否成功阅读通知或者是否被用户打断.
表6-2为无障碍通知注册一个观察器@implementationMyViewController-(void)viewDidLoad{[superviewDidLoad];[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(didFinishAnnouncement:)name:UIAccessibilityAnnouncementDidFinishNotificationobject:nil];}-(void)didFinishAnnouncement:(NSNotification*)dict{NSString*valueSpoken=[[dictuserInfo]objectForKey:UIAccessibilityAnnouncementKeyStringValue];NSString*wasSuccessful=[[dictuserInfo]objectForKey:UIAccessibilityAnnouncementKeyWasSuccessful];//.
.
.
}@end5订阅的另一个帮助通知是UIAccessibilityVoiceOverStatusChanged通知.
当VoiceOver打开或关闭时,可以使用该通知进行删除.
如果当应用挂起时,该通知出现,当应用回到前景时将会收到通知.
可以观察的无障碍通知列表,详见UIAccessibility协议参考.
vollcloud怎么样?vollcloud LLC创立于2020年,是一家以互联网基础业务服务为主的 技术型企业,运营全球数据中心业务。VoLLcloud LLC针对新老用户推出全场年付产品7折促销优惠,共30个,机会难得,所有产品支持3日内无条件退款,同时提供产品免费体验。目前所有产品中,“镇店之宝”产品性价比高,适用大部分用户基础应用,卖的也是最好,同时,在这里感谢新老用户的支持和信任,我们...
ucloud美国云服务器怎么样?ucloud是国内知名云计算品牌服务商家,目前推出全球多地机房的海外云服务器。UCloud主打的优势是海外多机房,目前正在进行的2021全球大促活动参与促销的云服务器机房就多达18个。UCloud新一代旗舰产品快杰云服务器已上线洛杉矶节点,覆盖北美和亚太地区,火热促销中, 首月低至7元,轻松体验具备优秀性能与极高性价比的快杰云服务器。点击进入:ucloud美国洛杉矶...
傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...
ios6 1 3为你推荐
961556225317563152822是哪个银行的百度抢票浏览器百度手机浏览器怎么抢票 手机百度浏览器抢票方法flash导航条flash导航条swf格式的要怎么编辑伪静态什么是伪静态不兼容安卓手机软件不兼容怎么办?童之磊湖北中文在线数字出版有限公司怎么样?彩信中心移动的彩信中心是?主页是?收不到彩信,怎么设置?数据库损坏数据库坏了,怎么修复?奇虎论坛奇虎问答是什么网站优化方案网站优化方案怎么写?
备案未注册域名 备案域名出售 国外php主机 http500内部服务器错误 evssl softbank邮箱 域名接入 微软服务器操作系统 789电视剧 smtp虚拟服务器 重庆电信服务器托管 vul 韩国代理ip 免费的域名 华为k3 免费个人主页 杭州电信宽带优惠 电信宽带测速软件 腾讯网盘 netvigator 更多