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协议参考.
HostKvm商家我们也不用多介绍,这个服务商来自国内某商家,旗下也有多个品牌的,每次看到推送信息都是几个服务商品牌一起推送的。当然商家还是比较稳定的,商家品牌比较多,这也是国内商家一贯的做法,这样广撒网。这次看到黑五优惠活动发布了,针对其主打的香港云服务器提供终身6折的优惠,其余机房服务器依然是8折,另还有充值50美元赠送5美元的优惠活动,有需要的可以看看。HostKvm是一个创建于2013年的...
IMIDC是一家香港本土运营商,商家名为彩虹数据(Rainbow Cloud),全线产品自营,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非等地机房,CN2网络直连到中国大陆。目前主机商针对日本独立服务器做促销活动,而且提供/28 IPv4,国内直连带宽优惠后每月仅88美元起。JP Multiple IP Customize...
昨天,有在"阿里云秋季促销活动 轻量云服务器2G5M配置新购年60元"文章中记录到阿里云轻量服务器2GB内存、5M带宽一年60元的活动,当然这个也是国内机房的。我们很多人都清楚备案是需要接入的,如果我们在其他服务商的域名备案的,那是不能解析的。除非我们不是用来建站,而是用来云端的,是可以用的。这不看到其对手腾讯云也有推出两款轻量服务器活动。其中一款是4GB内存、8M带宽,这个比阿里云还要狠。这个真...
ios6 1 3为你推荐
免费建站系统什么免费建站系统好?手机游戏排行榜20152017年的手游排行榜?回收站在哪手机回收站在哪里打开绵阳电信绵阳电信宽带怎么收费的真正免费的网络电话有没有真正免费的网络电话?而且是好用的?eset最新用户名密码ESET4.0最新用户名和密码flash导航条如何制作flash导航条渗透测试渗透测试的专业服务1433端口怎么开启本机1433端口显卡温度多少正常显卡温度多少算正常?
快速域名备案 免费cn域名 视频存储服务器 godaddy优惠码 美国php主机 免费网络电视 有益网络 阿里校园 免费活动 彩虹云 空间租赁 中国电信测速器 网页提速 带宽租赁 空间服务器 godaddy空间 攻击服务器 服务器硬件配置 tracker服务器 香港博客 更多