设计细节:控件和对话框
控件
根据用户目标,控件分为4种基本类型:
- 命令控件,用于启动功能
- 选择控件,用于选择选项或数据
- 输入控件,用于输入数据
- 显示控件,用于控制应用“如何”及“在哪里”展示它自己及数据
对话框
对话框主要服务于两类用户:
- 对应用熟悉并频繁使用的用户,对话框被用来控制更高级或更危险的设置
- 对应用不熟悉并偶尔使用的用户,通过对话框来学习基础知识。
对话框必须是紧凑的、功能强大的、快速而流利的,并且在使用上清晰和具有自我解释性。
对话框的两种形式:
- 模态对话框:打开以后会停止当前程序所有工作的进度
- 非模态对话框:打开以后不打断父应用程序,无须停止进度,应用程序不会冻结。
设计原则:
- 模态对话框一定要包含一个或多个终止命令
- 非模态对话框一定不要使用终止命令按钮
- 不要在模态对话框的窗口标题栏上使用“关闭”控件
对话框的5个目的:
- 属性
- 功能
- 进度
- 通知
- 公告
消除错误、警告和确认
用户犯了错误时,不应当受到训斥,实际上,他们需要的是帮助。应用应该有责任帮助用户把事情做好,而不应该粗暴地拒绝用户的输入。
许多设计者和开发人员认为,他们的错误对话框是在提醒用户一些严重的问题,这是一种普遍存在的错误认知。
软件在通知用户时,不要停止整个过程。
错误消息不管用
错误对话框真正所做的只不过是:保护应用不陷入麻烦。它有一种根深蒂固的信念,就是应用程序比用户重要。
如何消除错误信息
软件设计者必须重新评估“无效数据”的概念。当它来自人类时,软件必须认为输入是正确的,原因很简单,那就是人类比代码更重要。
让错误不可能发生
通过为所有的数据输入使用有界控件,可以防止用户输入错误的数字。
让应用程序变得足够聪明,使用户不再提出不必要的请求。
正面反馈
软件难以学习的原因之一在于正面反馈太少。人们从正面反馈中学到的知识比从负面反馈中学到的更多。
计算机内部发生的任何事情都没有重要到可以羞辱或贬低人类用户的地步。
几乎所有的错误对话框都可以去掉。你从“错误对话框必须消除,以及所有其他的事也得因为这个目标而改变”的角度去审视这种情况,就会发现这种判断完全正确。
改进错误信息:最后一招
如果真的不可能重新设计应用去消除不必要的错误对话框,最后一招
错误对话框应该始终有礼貌、表达清楚,必须向用户说明问题,提供一个解决问题所需要的信息,并清晰说明解决方法。
警告和确认
警告的原理在于告知用户,但不能以打断流畅的交互作为代价。
确认对话框把责任推卸给用户,恰当的解决方法是使动作易于恢复,以及提供足够的非模态反馈,确保用户不致措手不及。
确认对话框显示了人类行为一个有趣怪癖:它们只在意想不到的时候起作用。如果在常规的地方提供确认对话框,用户很快就会习以为常,看也不看就习惯性地打发它。如果在某一时刻,一个真正意外的危险情况发生————一个应该引起用户注意的情况————他会因为已经形成的习惯而不假思索地关闭确认对话框。
如何消除确认对话框
- 做,不要问。
- 让所有的动作都可以撤销
- 给用户提供非模态反馈,避免用户犯错
魔鬼在细节里
我们要始终牢记“魔鬼在细节里”
即使产品整体概念是优秀的,令人沮丧的控件或不该出现的对话框,还是会导致低级烦恼经常发生。