意:本文出自自己对界面设计的理解和一些应验,谨代表自己和一些微软公司的观点,不妥之处,还请大家批评指正。
浅谈用户界面设计
第二部分:交互性
用户界面是计算机软件和用户交互的接口,是衡量软件质量的一个重要目标。如何设计出一个好的用户界面,是软件公司和开发人员都必须理解和认识的基本知识。第一部分已经向大家介绍了 UI 的基本知识和衡量标准,在这一部分中,我将介绍如下内容:
· 交互性概述
· 案例分析
· 交互性的设计原则和推荐的规范
· 总结
一、交互性概述
用户界面完成的首要任务,就是设法让用户和计算机友好的交互。交互是最终目标,而友好是衡量条件。在一个成功的 UI 设计中,应该着重考虑交互的实现以及实现过程,而且始终贯穿“友好”的精神,Windows XP 就是一个典型的案例。
可交互就是 UI 设计目标。如果一个界面不能让人机交互,那么这个界面就是无用的。例如:需要设计一个这样的界面,让用户输入用户名和密码登录,结果设计人员在设计的时候,将“登录”按钮设置为灰色,导致无论用户输入的密码是否正确,系统都无法登录。这个案例中,用户成功的向计算机提供了信息,但是需要交互的关键时期却发生了致命的设计缺陷;又例如,在上个案例中的登录按钮单击后登录成功,但是系统却没有给出任何 UI 变化表示成功的登录过程,这样的设计虽然让用户和计算机成功的交互,但用户没有能从计算机获取交互的结果,因此,这个 UI 也是失败的。
设计 UI 的交互性方面应该注意两点:
1、用户向计算机提交数据的交互过程;
2、计算机向用户呈现处理结果的交互过程。
除了完成这两方面的设计外,UI 还需要友好。例如:上例中,如果用户在输入登录信息是发生了错误,计算机应该向用户提示登录失败。此时,我们有多种选择;看看两个不同的 MessageBox 对话框:
· “对不起,登陆失败!”
· “由于用户名和密码错误,因此登录失败。”
我们很容易辨别哪一种做法更加友好。一个友好的用户界面使得用户心情舒畅,没有压抑感,这样才能更加的专心使用您的软件。
二、案例分析
案例一:用户登录发生错误以后的一个消息框的两种提示文本。
1、 “对不起,登陆失败!”
2、 “由于用户名和密码错误,因此登录失败。”
可能很多开发人员比较喜欢使用第一种语言,他们认为登录不成功非常严重,并使用了感叹号,语言比较机械化并且没有给出建议,还把“登录”写成了“登陆”;第二位开发人员语言很婉转,并告知了登录失败的原因,用户从这个简单的提示中获取了很多有用的信息,并且知道了不成功的原因。
从对以上两个开发人员的语言分析和实际效果可以得出这个结论:第二个开发人员的语言更加让用户有好感,用户非常愿意按照他的提示进行操作。为什么呢?别忘了,“友好”的定义,第二种描述就是非常友好的文本。
我们还可以对第二种描述做改进:例如,可以根据问题的严重性定义消息框应该显示的图标,登录错误是非常严重的,可以选择“X”图标增强提示效果。但是,我强烈您不要在这一类文本中使用惊叹号,这样会失去用户对系统的信任。
还有对案例一的更好的解决办法:除了显示红色“X”图标和显示文本之外,还可以扩展 MessageBox,给出一个“详细信息”按钮,单击详细信息后,可以看到某些高级哟归农户才能看懂的(例如:数据库连接信息,ERRORLEVEL 错误号等),这样,不论是用户还是开发人员,都可以从不同的深度去看待同一种错误提示,大大提高了软件的可维护性,降低了 Bug 排错的周期。
案例二:Windows Fax Server 的一段提示文本:
“当前 Terminal Server 不是您默认的超级终端客户端,您是否想将其设置为默认程序?我们强烈建议您回答“是””
这一段文本是针对用户的一种操作性建议,相比之下,有些软件(例如 QQ、TT)就会有这样的提示:
“TT不是默认浏览器,是否设置为默认?”
虽然这句话并没有什么不妥之处,但是相比之下,您需要用户进行某个可选操作时,建议性的描述比直接给出选项(好像不这样做既会怎么样似的)更加友好。
还有很多类似的案例,总结起来,它们共同的特点是:
· 交互功能都能完成
· 文本描述不够严谨,甚至还有错别字
· 建议性语言缺乏,滥用标点
· 界面元素混乱
· 可读性差,没有通用性
下面我就跟据这一些常见问题,给出对于交互性的推荐规范。
三、推荐的规范
3.1 界面元素
· 将相关的功能分组,使用分组框或 TabControl
· 界面元素应该在其功能可用时可见(Visible)或可用(Enable)
· 计算机长时间处理数据时应该显示进度,考虑使用 ProgressBar
· 长时间等待时应将鼠标指针变为沙漏
· 退出程序时应该提示用户保存自己的更改
· 使用与系统向匹配的界面主题
· 让每个高频率使用的功能在右键菜单中出现
· 在尽可能的情况下使用拖拽代替用户的多次鼠标动作
· 需要用户输入文本时自动让输入文本框获得焦点
3.2 文本
· 可选操作时给出建议性提示
· 在疑难功能的界面元素上给出工具提示或上下文帮助
· 不要过度使用惊叹号
· 不要使用“你”,而使用“您”
· 不要直呼用户姓名
· 在中英文之间加上一个空格
· 发生错误或未处理的异常时需要根据用户的不同给出深浅不同的相关信息
当然,除了我上面列出的这些之外,还有很多需要开发人员注意的地方,这些小细节都是我们从平时的习惯积攒来的,我相信,每一个重视用户体验的开发人员都会对我说的这些话引起共鸣。下一篇文章我将阐述标准性和分析相关案例。
浅谈用户界面设计
第二部分:交互性
用户界面是计算机软件和用户交互的接口,是衡量软件质量的一个重要目标。如何设计出一个好的用户界面,是软件公司和开发人员都必须理解和认识的基本知识。第一部分已经向大家介绍了 UI 的基本知识和衡量标准,在这一部分中,我将介绍如下内容:
· 交互性概述
· 案例分析
· 交互性的设计原则和推荐的规范
· 总结
一、交互性概述
用户界面完成的首要任务,就是设法让用户和计算机友好的交互。交互是最终目标,而友好是衡量条件。在一个成功的 UI 设计中,应该着重考虑交互的实现以及实现过程,而且始终贯穿“友好”的精神,Windows XP 就是一个典型的案例。
可交互就是 UI 设计目标。如果一个界面不能让人机交互,那么这个界面就是无用的。例如:需要设计一个这样的界面,让用户输入用户名和密码登录,结果设计人员在设计的时候,将“登录”按钮设置为灰色,导致无论用户输入的密码是否正确,系统都无法登录。这个案例中,用户成功的向计算机提供了信息,但是需要交互的关键时期却发生了致命的设计缺陷;又例如,在上个案例中的登录按钮单击后登录成功,但是系统却没有给出任何 UI 变化表示成功的登录过程,这样的设计虽然让用户和计算机成功的交互,但用户没有能从计算机获取交互的结果,因此,这个 UI 也是失败的。
设计 UI 的交互性方面应该注意两点:
1、用户向计算机提交数据的交互过程;
2、计算机向用户呈现处理结果的交互过程。
除了完成这两方面的设计外,UI 还需要友好。例如:上例中,如果用户在输入登录信息是发生了错误,计算机应该向用户提示登录失败。此时,我们有多种选择;看看两个不同的 MessageBox 对话框:
· “对不起,登陆失败!”
· “由于用户名和密码错误,因此登录失败。”
我们很容易辨别哪一种做法更加友好。一个友好的用户界面使得用户心情舒畅,没有压抑感,这样才能更加的专心使用您的软件。
二、案例分析
案例一:用户登录发生错误以后的一个消息框的两种提示文本。
1、 “对不起,登陆失败!”
2、 “由于用户名和密码错误,因此登录失败。”
可能很多开发人员比较喜欢使用第一种语言,他们认为登录不成功非常严重,并使用了感叹号,语言比较机械化并且没有给出建议,还把“登录”写成了“登陆”;第二位开发人员语言很婉转,并告知了登录失败的原因,用户从这个简单的提示中获取了很多有用的信息,并且知道了不成功的原因。
从对以上两个开发人员的语言分析和实际效果可以得出这个结论:第二个开发人员的语言更加让用户有好感,用户非常愿意按照他的提示进行操作。为什么呢?别忘了,“友好”的定义,第二种描述就是非常友好的文本。
我们还可以对第二种描述做改进:例如,可以根据问题的严重性定义消息框应该显示的图标,登录错误是非常严重的,可以选择“X”图标增强提示效果。但是,我强烈您不要在这一类文本中使用惊叹号,这样会失去用户对系统的信任。
还有对案例一的更好的解决办法:除了显示红色“X”图标和显示文本之外,还可以扩展 MessageBox,给出一个“详细信息”按钮,单击详细信息后,可以看到某些高级哟归农户才能看懂的(例如:数据库连接信息,ERRORLEVEL 错误号等),这样,不论是用户还是开发人员,都可以从不同的深度去看待同一种错误提示,大大提高了软件的可维护性,降低了 Bug 排错的周期。
案例二:Windows Fax Server 的一段提示文本:
“当前 Terminal Server 不是您默认的超级终端客户端,您是否想将其设置为默认程序?我们强烈建议您回答“是””
这一段文本是针对用户的一种操作性建议,相比之下,有些软件(例如 QQ、TT)就会有这样的提示:
“TT不是默认浏览器,是否设置为默认?”
虽然这句话并没有什么不妥之处,但是相比之下,您需要用户进行某个可选操作时,建议性的描述比直接给出选项(好像不这样做既会怎么样似的)更加友好。
还有很多类似的案例,总结起来,它们共同的特点是:
· 交互功能都能完成
· 文本描述不够严谨,甚至还有错别字
· 建议性语言缺乏,滥用标点
· 界面元素混乱
· 可读性差,没有通用性
下面我就跟据这一些常见问题,给出对于交互性的推荐规范。
三、推荐的规范
3.1 界面元素
· 将相关的功能分组,使用分组框或 TabControl
· 界面元素应该在其功能可用时可见(Visible)或可用(Enable)
· 计算机长时间处理数据时应该显示进度,考虑使用 ProgressBar
· 长时间等待时应将鼠标指针变为沙漏
· 退出程序时应该提示用户保存自己的更改
· 使用与系统向匹配的界面主题
· 让每个高频率使用的功能在右键菜单中出现
· 在尽可能的情况下使用拖拽代替用户的多次鼠标动作
· 需要用户输入文本时自动让输入文本框获得焦点
3.2 文本
· 可选操作时给出建议性提示
· 在疑难功能的界面元素上给出工具提示或上下文帮助
· 不要过度使用惊叹号
· 不要使用“你”,而使用“您”
· 不要直呼用户姓名
· 在中英文之间加上一个空格
· 发生错误或未处理的异常时需要根据用户的不同给出深浅不同的相关信息
当然,除了我上面列出的这些之外,还有很多需要开发人员注意的地方,这些小细节都是我们从平时的习惯积攒来的,我相信,每一个重视用户体验的开发人员都会对我说的这些话引起共鸣。下一篇文章我将阐述标准性和分析相关案例。