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协议参考.
轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。活动规则:用户购买任意全区域云服务器月付以上享受免费更换IP服...
官方网站:点击访问星梦云活动官网活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50G10Mbps1个100G不限流量210元/月 99元/月点击自助购买成都电信优化线路8vCPU8G40G+100G15Mbps1个100G不限流量370元/月 160元/月点击自助购买成都电信优化线路16vCPU16G40G+100G20Mb...
我们很多老用户对于BuyVM商家还是相当熟悉的,也有翻看BuyVM相关的文章可以追溯到2014年的时候有介绍过,不过那时候介绍这个商家并不是很多,主要是因为这个商家很是刁钻。比如我们注册账户的信息是否完整,以及我们使用是否规范,甚至有其他各种问题导致我们是不能购买他们家机器的。以前你嚣张是很多人没有办法购买到其他商家的机器,那时候其他商家的机器不多。而如今,我们可选的商家比较多,你再也嚣张不起来。...
ios6 1 3为你推荐
ghostxp3GHOSTxp sp3系统有什么优点和缺点???吴晓波频道买粉罗辑思维,晓松奇谈,鸿观,吴晓波频道,财经郎眼哪个更有深度数据库损坏数据库坏了怎么办怎么升级ios6苹果IOS5怎么升级IOS6版本bt封杀BT下载可以封杀迅雷吗?什么原理?能破吗?ios系统ios系统和安卓系统对比起来有什么优点和缺点?gbk编码表如何制作GBK与Unicode的对照表网络虚拟机虚拟机网络怎么连接qq等级表谁能告诉我QQ等级列表?价格在线最好的免费b2b?
美国vps主机 便宜域名 windows主机 2014年感恩节 河南服务器 100m免费空间 idc资讯 工信部icp备案号 hostloc 电信虚拟主机 789电视剧 超级服务器 华为云建站 畅行云 xuni 卡巴斯基试用版下载 七十九刀 锐速 脚本大全 西部数码主机 更多