VioceOver和附件
VoiceOver是为帮助盲人、有视力障碍的用户以及有学习障碍的用户而设计的。

为了确保VoiceOver用户能使用你的程序,你需要为视图和控件提供一些描述信息。支持VoiceOver并不需要你对界面设计方案做任何调整。
只要你依照标准指南使用标准控件,就不需要什么额外工作。对界面的个性化定制越厉害,就需要更多的说明信息,以便VoiceOver能精确地描述你的程序。
编辑菜单
你可以在文本视图、web视图和图片视图里调出编辑菜单,来执行剪切、粘贴和选择的操作。

你可以调整菜单的行为,给用户更多控制内容的操作。例如,你可以:
设定哪些标准命令适合当前的环境。
在菜单出现前定义好它的位置,以免遮盖重要的内容。
当用户双击唤出菜单时,定义好默认被选中的对象。
你不能:
更改编辑菜单的颜色和形状。
为了保证在你的程序中编辑菜单符合用户期望,你应该:
展示与当前环境相适应的命令。例如,当什么都没选中时,菜单中不应该有“复制”和“剪切”。
同样,如果选中了一些东西,菜单里不应该包含“选择”。如果你要定制编辑菜单的外观,要确保展示的内容与当前环境相匹配。
让菜单和界面布局相适应。iOS在插入点或选择区的上面或下面,具体由空闲空间来定。菜单指向内容,以便用户知道操作的对象。你可以在菜单出现前用代码确定好它的位置,这样可以避免重要的内容被它遮盖。
两种唤出菜单的手势都要支持。虽然触碰并按住是唤出菜单的主要方式,但也可以在阅读文本时用双击文字同时选中文字并唤出菜单。如果你要自定义编辑菜单,一定要支持两种手势。另外,你可以定义用户双击时默认选中哪些对象。
避免在界面上放置编辑菜单里已经有的命令。例如,好在编辑菜单里完成复制,而非在界面上放置复制按钮。否则用户还需要想一想到底该用哪种。
如果对用户有用的话,可以让静态文本也能被选中。例如,用户会想要复制图片的标题,但不太会想复制tab栏的标题或者本屏的标题。
不要让按钮标题变得可以选中。用户选中按钮的标题时会很容易触发按钮。一般而言,与按钮行为相似的元素都不应该被选中。
如果支持“复制”和“粘贴”,也要支持“重做”和“撤销”。用户一改变主意就会很想撤销近的操作。由于编辑菜单里的命令在执行前无需再次确认,所以应该给用户“重做”和“撤销”的机会。
在iOS4以后,你可以在编辑菜单里提供定制的功能。

如果你想把被选中的文字或对象用于与当前环境无关的地方,好使用操作列表。例如,当用户把选中的内容在网上分享,你好用操作列表展示一堆SNS供用户选择。
如果你想定制编辑菜单,请阅读以下指南:
自定义的菜单项要能够编辑、改变、或者直接操作对用户选中的对象。用户希望编辑菜单上的命令能够在当前环境里直接操作被选中的对象,你定制的命令也应满足这种期望。
把定制的项目列在系统的项目后面。不要把定制命令和系统提供的命令混起来。
保证定制的项目数量合理。不要给用户过多的选择。
定制的菜单命令要简明,精确地概括这条命令的作用。一般而言,项目名称应该是能描述操作的动词。虽然一个大写的词能搞定好,但非得用词组的时候,要用标题大写样式(四个词以内,大写除冠词、介词、并列连词外的词)。
撤销和重做
晃一晃设备,就能唤出一个对话框,允许用户:
撤销刚才输入的词
重做刚才撤销的词
取消“撤销”
你可以通过定义如下内容,以在更宽的范围内支持撤销
用户可以撤销和重做的操作
什么时候你的程序会把摇晃视作撤销的命令
支持多少步撤销
用简短的话告知用户,他们在撤销什么、重做什么。iOS在按钮上自动提供“撤销”“重做”(应为会自动补上空格),但你需要提供一两个词,描述一下撤销、重做的是什么。例如,你补上“删除姓名”或“更改地址”,或者直接把标题写成“撤销删除姓名”或“重做更改地址”(“取消”按钮的标题时不能更改或隐藏的)
避免词太长。词太长不好读,太卡。可以用标题大写样式,不要加标点。
不要覆盖摇晃设备的事件。虽然你可以在代码中设置何时将摇晃视作唤出撤销菜单的命令,但如果用户还可以用摇晃作为其他命令的话,这就会让用户迷惑。分析一下程序的交互方式,避免让用户不能预测摇晃后的效果。
除非撤销和重做是很常用的操作,否则不要把系统提供的重做和撤销按钮放出来。记住,摇晃是唤出撤销对话框的首要途径。提供两三种方式反而会让用户迷惑。如果你确信把这些功能放出来很有必要,可以在导航栏里放上系统提供的撤销和重做按钮。更多信息详见“工具栏和导航栏使用的标准按钮”。
把撤销和重做与当前的工作紧密联系起来,不要和之前的工作联系起来。一般而言,用户希望所做的操作可以立刻生效。
键盘和输入视图
iOS3.2及以后的版本可以用定制的键盘取代系统键盘。例如,iPad版Numbers提供了让输入日期、时间更方便的键盘。

如果你要定制输入界面,一定要让它容易理解,而且要看起来可点击。
你也可以定制一些小插件,放置在键盘上方(或自定义位置)。例如,在某些时候,Numbers会提供让用户帮助快速计算的小插件。

在iOS4.2以后的版本里,你可以使用系统提供的标准音来为定制的键盘提供声音反馈。
位置服务
位置服务允许程序确定用户的大致位置,前进方向和设备方向。用户会很喜欢给事物打上位置的标签,或者找到附近的朋友。但是用户也希望在不想分享位置的时候关闭这些服务。
当用户关闭位置服务后,如果新打开的程序还想请求位置数据,就会跳出警告框,提示要想继续使用位置信息必须修改设置。警告框不允许用户在当前程序里修改设置。用户必须到“Settings”里修改偏好。这可以让用户明确知道他在给程序授权位置信息。

为了提供佳的用户体验,请参照一下指南:
确保用户明白为什么要打开位置服务。当被索要个人信息时,如果用户不明白为什么需要这些信息,就会很疑惑。为了不让用户觉得不舒服,确保只在用户尝试使用明确需要位置信息的功能时弹出警告框。例如,用户可以在没有位置信息时使用Maps,但是当试图使用定位相关的功能时就会看到警告框。
在弹出警告框前先检查用户的偏好设置。你可以使用核心位置接口来获取这个参数值。获得这个信息可以让你只在必要的时候弹出对话框,或者完全避免弹出它。
只有当没有位置信息就无法实现核心功能的情况下才弹出警告框。这时用户不会觉得烦了。
因为他们明白该程序的核心功能必须依赖位置信息。
避免在用户选择需要位置信息的功能前就弹出警告框。这样的话,用户就会疑惑为什么在使用与位置不相干的功能时需要位置信息。
本地和推送提醒
本地和推送提醒允许你在程序没有在前台运行时想用户发送消息。

例如,你可能会想让用户知道:
有新消息到达
将会发生什么事
数据下载好了
某些东西的状态变了
本地提醒:程序可以添加排期,由iOS系统发布,程序没必要一直在前台运行。例如,日历或者to-do程序可以给本地的提醒时间表排期,提醒用户快到的会议或约会。
推送提醒:由程序的远程服务器发送到“苹果推送提醒”服务上,一次性发给所有安装了此程序的设备。例如,用于与他人对战的程序可以一次性更新所有人的动向。
如果本地或推送提醒到达是,你的程序没有运行在前台,你可以通过以下方式获取用户注意:
在程序的Home screen图标上打上可爱的小绷带标记
唤出警告框
你可以在更新绷带标记或者警告框的时候用声音提醒。
如果你的程序正运行在前台,也同样可以收到本地和推送提醒。但是可以用自定义的方式表达给用户。在“settings”里,用户可以将某些或所有程序的推送消息禁用,小绷带、声音或者警告框就不会出现了。但对本地提醒就不能在settings里设置了,这要到具体的程序里去设置。
当信息的数量有意义且对时间不敏感的时候可以使用小绷带。绷带是告知用户有多少新项目值得注意的好方法,比如未读消息、待办事项、更新的文档。因为用户只有浏览桌面才会看到这些消息,所以不要拿它来提醒时间紧迫的事。
绷带的外观和位置不能自定义:它是红色的,会出现在图标右上角。

绷带上只有数量,没有文字或标点。
当发布需要用户立刻注意或操作的消息时,可以用警告框。警告框是告知用户新事件或状态改变的好方法。警告框会中断用户的操作流,所以要谨慎使用。

要想让提醒符合用户期望,请遵照以下指南:
保持绷带上的数字实时更新。用户一浏览新信息就要立刻更新绷带上的数字,这样他们就不会觉得刚读完又有新信息来了。
定制警告框上的信息。定制信息将出现在警告框的中央,位于程序名称的下方(程序名称会自动成为警告框的标题)。一个合格的本地或推送消息应该:
聚焦于信息,而非用户的操作。避免告知用户应该按哪个键,或描述按某个键的后果。
要简短,一两行内放完。如果消息太长,警告框就会被迫翻页。
使用句子大写样式,附上适当的标点。可能的话,使用完整的句子。
按钮好使用定制的标题。警告框上可能会有一或两个按钮。有两个按钮时,关闭按钮会放在左边,操作按钮(action button)会放在右边。如果只有一个按钮,默认显示为OK。按操作按钮会关闭警告框并自动登录你的程序。按关闭或者ok也会关闭警告框,但不会登录程序。
如果你想为操作按钮使用定制的标题,要让标题明确地描述登录程序后会发生的操作。例如,游戏可能会用“play”作为标题,暗示按下它将会打开程序给用户来玩。要确保标题可以:
使用标题大写样式
简短,避免在按钮里折行
当设备处于锁定状态时,会显示 “滑动以查看”。你定制的按钮标题也可以显示在这里,届时标题会自动小写,取代“查看”。
可以考虑提供登录图片。除了展示已有的登录图片外,你可以在用户通过提醒打开你的程序时提供另一张登录图片。例如,游戏可以显示一张与游戏过程中截图相似的登录图片,而非菜单那一屏。如果不专门为此提供登录图片,iOS会展示之前的截屏或者其他登录图片。
合适的话,呈现绷带或者警告框时要有伴声。当用户没有看着设备时,声音可以吸引他们的注意。应当只对很重要的信息才配备提醒音。例如,日历可能会在马上要有会议时发出提醒音。或者多人协作任务管理程序会在他人完成了分配的任务时给予提醒。
你可以定制声音,或者使用内置的警告声。如果你要定制声音,确保它简短而专业。不能在有新消息时强迫设备振动,因为这应该听从用户的设置。
|