软件操作界面设计须遵循的一些原则
作者:小菠萝 | 来源:互联网 | 2023-05-16 18:35
我们做界面设计的目的是去给用户的工作积极的支持而不是相反把无意义的东西强加于人。界面在用户和他们要完成的任务之间应该是透明的,而且是高效、舒适、让人心情愉悦的。下面介绍的是几个保证软件界面设计成功的基
我们做界面设计的目的是去给用户的工作积极的支持而不是相反把无意义的东西强加于人。界面在用户和他们要完成的任务之间应该是透明的,而且是高效、舒适、让人心情愉悦的。下面介绍的是几个保证软件界面设计成功的基本原则。
简单:不要在功能的可用性上妥协保持界面简洁直观。用户需要易于理解和操作的功能。在一个组织糟糕的界面上,用户被大量高级功能所困扰,而无法直接的去使用最常用的功能。而一个组织有序的界面会把用户要完成的任务结合到背景中去,让用户能更有效的操作。最基本的功能应该让人可以立刻看到,而那些高级功能对于新用户来说可以不那么明显。只有经过任务分析而确定的必要的功能才应该被放到界面上。要让用户尽可能的使用最少的功能,经过最少的步骤完成他们的任务。
支持:把控制权交给用户并且提供提示性帮助,把系统的控制权交给用户,允许他们使用在日常生活中习惯的各种步骤完成他们的任务,不要用你主张的所谓“正确”的操作步骤去人为的限制用户的操作。系统应该允许用户建立并且维护自己的工作环境。系统的当前状态和能够被使用的操作应该有明确的标示。系统应该允许用户离开,并为他们保留离开时的工作状态。提供有关联的工作环境会使用户对系统有稳定的感觉。大部分用户都需要完成很多任务,在某些方面他们可能是专家,但在另外的方面,他们则可能是个新手。要做到在用户需要的时候能及时提供帮助,系统就应该理解并预计到用户的目的,然后再协助他们更轻松的完成任务。理想的帮助系统应该教给用户能够快速完成任务的知识。帮助系统应该在用户选择要独立完成一些任务的时候教会他们。
相似:建立在用户已有的经验上允许用户根据以往的经验操作系统,特别是他们从现实世界中获得的经验。这些经验的一小部分,被引用到交互界面中来,也将对用户完成大量的任务有很大帮助。通过一次学习获得的概念和技术应该能被应用在各种环境下。用户不应该为完成相似的任务而去学习新的东西。在交互界面中采用用户已经在现实世界里学到的概念和技术,可以让他们立刻在计算机上开始工作并确保进展顺利。
隐喻的技巧曾经被用来让计算机世界里的事物与现实世界相对应,而在今天的界面设计中,隐喻已经逐渐不能满足需要了。由于在视觉和交互技术上的进步,交互界面日趋接近人们的真实世界,对隐喻的依赖也越来越小了。过去,当设计师不知道哪个方案最佳的时候总是遵循前后一致的原则。选择用户已经理解的事物,保持概念的前后一致,也能够让界面更容易学习,更有效率,甚至更让用户心情舒畅。 要避免盲目的遵循一致性原则而忽略了去了解你的用户以及他们的任务和经验。决定新的系统在哪些方面同以前保持一致性的之前,先去了解一下用户的需要,看看他们期望保留些什么东西。确保用户在新的系统里有似曾相识的感觉才是设计一个真正直观的交互界面根本的目的。
显而易见:让对象和操作都直观可见,只要有可能,就要使交互界面表现的和真实世界一样。模仿真实世界和自然直接的交互方式能让交互界面更加直观,更易学易用。利用用户在计算机领域外的经验的最早尝试是使用图标和窗口系统。在我们逐渐趋向用真实世界的表示方法的时候,那些古老的表现方法将消失。在一个面向对象的交互界面上,展现给用户的对象和概念都是与真实世界相同的。例如我们的操作系统所提供的“回收站”,我们可以把没用的东西“扔”到里面。对我们来说,它更象一个真实的垃圾筐而不仅仅是一个抽象的容器。在需要的时候,我们甚至可以查看“回收站”里面都扔了些什么。对系统的控制应该明晰可见,而且各种功能也应该是明确的。对控制的可视化表现能够帮助用户理解操作规则,记住任务的步骤并且知道计算机正在做什么。例如,我们使用计算机提供的电话功能的时候,电话键盘的图象明白的告诉我们可以象用真实的电话键盘一样使用它们。允许用户直接去操作对象,尽量减少间接的操作步骤。识别并使用一个物体,在真实世界中不是被分开的步骤。同样的在计算机的操作中也没有必要把选择对象的步骤独立出来,因为选择的动作已经包含在拿起的动作中了。三维图象的界面更容易实现直接的操作。
激励:让操作是可以预期的同时也是可逆的,用户对每一个操作都期望得到预期的结果。为了符合这些期望,设计师必须理解用户的任务、目的和思维模式。使用用户熟悉的术语和图形,从而帮助用户弄明白计算机中的对象以及其间的相互关系和规则。 用户在进行一些尝试性操作的时候应该充满信心,他们知道自己可以去试着做些什么,然后就能看到结果,如果结果不满意还可以取消这个操作。使用一个允许把错误操作撤消的界面,会让用户感觉很好。即使是看上去最琐碎的操作,例如撤消选择或者移动对象,也应该是可逆的。想象一下,当你花了几分钟的时间精心选择了一些文件,正准备把它们打包的时候丢掉了选择,而这个操作又无法撤消,你会有什么样的沮丧心情。
避免一次完成不同的操作,因为用户也许并不清楚那些副作用。例如,如果一个用户选择了取消发送短信的*作,那么仅是发送的操作应该被取消,而不会附带着类似删除短信等其他操作。把各个操作分开,而允许用户自己去定义操作的批处理。
满足:创造一个有进展和成就的良好感觉 让用户能不断的取得进展并有成就感。对用户的操作要立刻作出反应,任何延迟都会干扰用户的工作,降低用户对系统的信心。及时的反馈可以让用户知道结果是否正确,并能够随时改变操作。例如,用户选择了一种新字体,使用这种字体的地方或者文字的样例应该马上改变。然后用户就可以知道他的选择是否恰当,如果不恰当,则可以马上更换。在用户使用一个不方便撤消的操作之前,要提供对操作结果的预览。例如,用户想在文档的一些地方使用加粗、有下划线的黑体字。预先在文档的某个部分示范这种变化,可以让用户决定是否执行操作。这样一来,可以为用户节约很多时间,而且增强了用户对系统的信心。避免让用户工作环境的信息得不到更新。信息应该不断刷新,以便用户能及时得作出正确的判断。如果结果不能立刻被显示出来,那么系统的工作状态也要通知用户。这一点在网络环境中特别重要,因为受带宽的限制在不同的网络系统中保持动态同步是比较困难的。例如,大部分浏览器都会在载入页面的过程中显示一个完成进度条。
有效:让每一个对象在任何时刻都能用,用户应该能够在任何时刻都可以使用他们的每一个对象。要避免模式化的操作,那种曾经通用的操作方式已经不应该再发挥作用了。模式化限制了用户和系统的交互。例如,在大多数菜单驱动的系统中,都有一种模式对话框(类似“打印”或者“另存为”)需要输入一些参数。这种对话框把用户锁在了系统的外面,如果用户想继续操作,那他必须先选择“确定”或“取消”。如果用户想先查看下面窗口里的内容再完成这个对话框,他就不得不先取消这个对话框,否则他无法激活其他窗口。
安全:让用户远离麻烦,应该让用户尽量避免发生错误。使用户远离麻烦的重担压在了设计师的肩上。交互界面应该提供视觉指引、提示、选择列表和其他的辅助,无论是自动的还是被人要求的。上下文的关联和浮动的帮助都可以象一个助手一样协助用户完成任务。即使最简单的提示也可以减少用户出麻烦的机会。 系统已经知道的事情就不要让用户依赖自己的记忆,比如,上一次的配置,文件名或者其他的一些细节。如果这些信息被保存在系统里面,无论是什么样的形式,系统都应该把它们提供出来。当用户需要确认请求或者修正错误的时候,双向的沟通是很必要的。在过去,很多交互界面仅用单向的沟通,计算机对用户,来处理这类问题。但沟通应该是交互式的,就象交互界面在其他方面做到的那样,要有丰富的表现和交流方式。系统应该显示相应的信息,并且提供查阅其他相关信息或者帮助的途径。例如,被设计在很多系统中的拼写检查功能,用户工作的同时,可能拼写错误的单词被标示出来,系统允许用户立刻换一个单词,或者当他们的工作告一段落的时候,再回过头来处理这些可能的错误。
记住下面的设计观点:用户知道自己想做什么,但有时他们发现使用现有的操作很难让系统明白他们的意图。这时,双向的沟通方式就能帮助用户来实现他们的目的。
多样:支持不同的交互技术,允许用户选择最适合自身情况的交互方式。这就要求交互界面能灵活的适应不同用户的操作技能,身体条件,交流习惯和使用环境。 每一种交互设备都是为了特别的用途或者用户所设计,并且在一定的条件下最方便操作。比如,麦克风和语音识别软件系统一起使用就可以快速的输入文章,也可以被用在一个要把手腾出来做其他事情的环境里。压感笔对于需要手绘的用户是很有帮助的。鼠标则更适用于精确的选择。不同的输出设备也同样,比如能够输出外语指令的计算机语音合成设备在一些地方就很有用处。但没有一种方式对所有环境都是最好的。用户应该允许在一次交互过程中使用不同的方式。比如,用户可以用鼠标批量的选择,然后用键盘来调整选项。同时,也应该允许用户用不同的设备完成同样的事情。如果在编辑文章的时候,用户不得不总是把手从键盘上移开去操作鼠标,是很让人头疼的。
提供不同的交互技术也是对有不同能力和处境的用户的一种尊重。这些不同包括残疾,偏好和工作环境的差异。
个性:允许用户自定义,交互界面应该可以根据每个用户的需要进行调整。没有两个用户是完全一样的。用户有各异的背景,爱好,动机,经验和能力。自定义的界面可以让人感觉舒适和亲切。个性化的计算机交互界面可以提高工作效率和用户满意度。比如,在用户经常使用的功能里,允许他们调整一些默认的参数,可以让用户节约时间减少麻烦。在某些工作场合,很多用户使用一台公用的计算机。就要允许用户建立他们自己的界面并很容易重新设定。而在有的环境里,一个用户又可能要使用不同的计算机,这时就要让用户能把个性化信息从一个系统移到另一个系统。
亲切:通过完美的视觉设计把操作带入生活中,在界面设计中,视觉设计的目的把所有设计原则在用户眼前体现出来。视觉设计应该顺应用户的思维模式,并且能够与用户清晰明确的沟通。视觉设计是设计过程中非常重要的部分。最终的结果应该是直观而且贴近用户习惯的。
下面的视觉设计原则可以帮助完成一个清楚简洁的交互界面:
· 减法设计-通过排除那些对视觉传达没有直接作用的视觉元素而减少混乱。
· 视觉层次-通过理解不同任务对用户的重要程度而为这些任务建立一个视觉层级。一个重要的任务应该使用特别的视觉标记。可以用相对位置,颜色对比和图形大小来区分。
· 识别-如果用户很容易判断应该使用哪个对象来操作,那么这个对象就是容易识别的。易被识别的对象往往模仿真实世界中的事物。
· 视觉方案-设计一个符合用户思维模式的视觉方案,让用户自己去定义界面。不要为了节省空间而过分的减少空白,空白提供着视觉上的“呼吸空间”。
当然,为了能够有效的运用这些设计原则,你首先还是要了解用户的目的和需求。如果不能让用户对最终放在他们面前的产品满意,死板的遵循设计原则也没有任何价值。
推荐阅读
-
本文详细介绍了MooseFS中的副本管理(Goal)以及文件回收机制。副本管理允许用户设定文件的复制份数,确保数据的安全性和可用性;而文件回收机制则提供了在误删除文件后的恢复途径,通过设置合理的隔离时间,保护重要数据。 ...
[详细]
蜡笔小新 2024-12-12 21:23:50
-
本文深入探讨了Redis中的两种主要持久化方式——RDB(Redis Database)和AOF(Append Only File),并详细解析了两者的实现机制、优缺点以及在实际应用中的选择策略。 ...
[详细]
蜡笔小新 2024-12-12 20:41:22
-
-
GNU GRUB(简称GRUB)是一个来自GNU项目的支持多启动的引导加载程序。它允许用户在同一台计算机上安装多个操作系统,并在启动时选择希望启动的系统。 ...
[详细]
蜡笔小新 2024-12-12 18:22:37
-
随着技术的发展,黑客开始利用AI技术在暗网中创建用户的‘数字孪生’,这一现象引起了安全专家的高度关注。 ...
[详细]
蜡笔小新 2024-12-12 17:45:26
-
本文详细探讨了Apache SkyWalking中的SQL注入漏洞(CVE-2020-9483),特别是其影响范围、漏洞原因及修复方法。Apache SkyWalking是一款强大的应用性能管理工具,广泛应用于微服务架构中。然而,该漏洞使得未经授权的攻击者能够通过特定的GraphQL接口执行恶意SQL查询,从而获取敏感信息。 ...
[详细]
蜡笔小新 2024-12-12 17:16:40
-
本文探讨了在支付项目开发中使用SS5 Socket Server实现内部网络访问外部网络的技术方案。详细介绍了SS5的安装、配置及性能测试过程,旨在为面临相同需求的技术人员提供参考。 ...
[详细]
蜡笔小新 2024-12-12 17:06:17
-
本文详细探讨了Java中的关键字static、单例模式、main()方法、代码块、final关键字、抽象类与方法、模板方法设计模式、接口、内部类等内容,旨在帮助读者深入理解和掌握Java面向对象编程的核心概念。 ...
[详细]
蜡笔小新 2024-12-12 16:41:55
-
在日常工作中,经常会遇到需要访问被加密的ZIP文件的情况。当你没有密码时,这可能会成为一个难题。本文将指导你如何安全有效地处理这类问题,包括使用特定工具和技术来尝试恢复或移除密码。 ...
[详细]
蜡笔小新 2024-12-12 14:42:59
-
本文旨在深入探讨Java虚拟机(JVM)中的类加载子系统,包括其基本结构、类加载器的工作原理、类的加载过程以及双亲委派机制。通过对这些关键点的详细分析,帮助读者更好地理解和掌握JVM的核心机制。 ...
[详细]
蜡笔小新 2024-12-12 12:59:12
-
本文深入探讨了服务器的主要作用,包括加速访问、增强安全性和绕过访问限制等,并详细介绍了如何正确配置代理服务器。 ...
[详细]
蜡笔小新 2024-12-12 10:17:56
-
应用场景在开发中,我们经常需要把一些随时可能变化的属性配置到配置文件中,这样耦合性低,方便维护。SpringBoot在这方面为我们提供了很大的便捷,我们可以很轻易的将propert ...
[详细]
蜡笔小新 2024-12-10 19:49:39
-
本文档详细介绍了如何准备和执行Jenkins的升级过程,包括从官方源下载最新镜像、镜像的本地处理与上传至私有仓库,以及通过修改配置文件和重启服务完成Jenkins的版本更新。 ...
[详细]
蜡笔小新 2024-12-10 14:26:10
-
本文详细探讨了几款主流的开源分布式文件系统,包括HDFS、MooseFS、Lustre、GlusterFS和CephFS,重点分析了它们的元数据管理和数据一致性机制,旨在为读者提供深入的技术见解。 ...
[详细]
蜡笔小新 2024-12-08 19:30:59
-
本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ...
[详细]
蜡笔小新 2024-12-08 14:12:30
-
本文详细介绍了CSS中的块级格式化上下文(Block Formatting Context, BFC)的概念、形成条件及其在网页布局中的应用。通过实例讲解如何利用BFC解决常见的布局问题。 ...
[详细]
蜡笔小新 2024-12-07 19:29:39
-