关于用户界面:GUI设计的最佳实践和原则

Best Practices & Principles for GUI design

您最实用的用户友好型用户界面设计或原则是什么?

请提交您认为实际上使事情真正有用的那些做法-无论如何-如果它对您的用户有效,请分享!

摘要/整理

原则

  • 吻。
  • 要清楚并具体说明一个选项将实现的目标:例如,使用动词来表示对一个选择将要采取的行动(请参见:示例1)。
  • 使用适合用户需要/想要实现的明显的默认操作。
  • 使UI的外观和行为适合于环境/过程/受众:独立应用程序,网页,可移植,科学分析,Flash游戏,专业人员/儿童,...
  • 减少新用户的学习曲线。
  • 与其禁用或隐藏选项,不如在用户可以选择的地方(但仅在那些选择存在的地方)给出有用的信息。如果没有其他可用的选项,最好禁用该选项(然后在视觉上指出该选项不可用),不要隐藏不可用的选项,而是在鼠标悬停的弹出窗口中说明为什么禁用了该选项。
  • 保持一致并遵守惯例和控件的放置方式,这在广泛使用的成功应用程序中已实现。
  • 引导用户的期望,让您的程序按照这些期望行事。
  • 坚持用户的词汇和知识,不要使用程序员/实现术语。
  • 遵循基本的设计原则:对比度(明显性),重复(一致性),对齐(外观)和接近度(分组)。
  • 实作

  • (请参阅paiNie的回答)"尝试在对话框中使用动词。"
  • 允许/执行撤消和重做。
  • 参考文献

  • Windows Vista用户体验指南[http://msdn.microsoft.com/en-us/library/aa511258.aspx]
  • 荷兰网站-" Drempelvrij"准则[http://www.drempelvrij.nl/richtlijnen]
  • Web内容可访问性指南(WCAG 1.0)[http://www.w3.org/TR/WCAG10/]
  • 一致性[http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746]
  • 不要让我思考[http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=pdbbssr_1?ie=UTF8&s=books&qid=1221726383&sr=8-1]
  • 强大而简单[http://msdn.microsoft.com/en-us/library/aa511332.aspx]
  • 格式塔设计法律[http://www.squidoo.com/gestaltlaws]

  • 我对奶奶测试了GUI。


    尝试在对话框中使用动词。

    这意味着使用

    alt text

    代替

    alt text


    遵循基本设计原则

    • 对比-使不同的事物看起来不同
    • 重复-在一个屏幕和其他屏幕中重复相同的样式
    • 对齐-将屏幕元素向上对齐!是的,其中包括文本,图像,控件和标签。
    • 邻近-将相关元素组合在一起。一组用于输入地址的输入字段应该组合在一起,并且与用于输入信用卡信息的一组输入字段不同。这是基本格式塔设计法则。

    永远不要问"你确定吗?"。只允许无限,可靠的撤消/重做。


    尝试考虑用户想要实现的目标,而不是需求。

    用户将进入您的系统并使用它来实现目标。打开calc时,您需要90%的时间进行简单的快速计算,因此默认情况下将其设置为简单模式。

    因此,不要考虑应用程序必须做什么,而要考虑将要这样做的用户(可能很无聊),并尝试根据自己的意图进行设计,以使自己的生活更轻松。


    如果您正在为网络或任何前端软件应用程序做任何事情,那么您真的应该自己阅读...

    不要让我思考-史蒂夫·克鲁格(Steve Krug)


    Web应用程序中的面包屑:
    告诉->->用户->位置->她->在系统中

    在具有指向相同数据的多个路径的"动态"系统中,这很难做到,但是它通常有助于导航系统。


    我尝试适应环境。

    在开发Windows应用程序时,我使用Windows Vista用户体验指南,但是在开发Web应用程序时,我使用适当的指南,因为开发荷兰网站时,我使用基于Web内容可访问性的" Drempelvrij"指南万维网联盟(W3C)的准则(WCAG 1.0)。

    我这样做的原因是为了减少新用户的学习曲线。


    我建议阅读本书《日常事物的设计》以更好地理解GUI设计。尽管主要的可打印内容是Joel Spolsky的评论:当应用程序的行为不同于用户期望的行为时,图形用户界面就会出现问题。

    最好的例子是,当有人在某些网站上交换OKCancel按钮时。用户希望OK按钮在左侧,而Cancel按钮在右侧。简而言之,当应用程序行为不同于用户期望的情况时,您将遇到用户界面设计问题。

    尽管,无论您采用哪种设计或设计模式,最好的建议都是在整个应用程序中保持设计和约定的一致性。


    向用户示例显示界面。要求他们执行典型任务。注意他们的错误。听他们的评论。进行更改并重复。


    尽可能避免要求用户做出选择(即不要使用配置对话框创建派生!)

    对于每个选项和每个消息框,请问自己:我是否可以提出一些合理的默认行为来

    • 说得通?
    • 不会妨碍用户的使用?
    • 很容易得知我将其强加给用户的成本很小?

    我可以以Palm掌上电脑为例:设置确实非常简单,对此我感到非常满意。基本应用程序的设计足够好,我可以简单地使用它们而无需进行调整。好的,有些事情我做不到,实际上我不得不适应这种工具(而不是相反),但是最终这确实使我的生活更轻松。

    该网站是另一个示例:您无法进行任何配置,但是我发现它确实非常好用。

    合理的默认值可能很难弄清楚,简单的可用性测试可以提供很多线索来帮助您。


    日常事物的设计-唐纳德·诺曼(Donald Norman)

    设计知识的典范,是世界各地大学许多人机交互课程的基础。您不会在五分钟之内用一个Web论坛上的一些评论来设计出一个出色的GUI,但是一些原则将使您的想法以正确的方式指出。

    -

    MC


    构造错误消息时,使错误消息为
    这3个问题的答案(按顺序):

  • 发生了什么?

  • 为什么会发生?

  • 该怎么办?

  • 这来自"人机界面指南:Apple桌面
    接口"(1987,ISBN 0-201-17753-6),但可以使用
    任何地方的任何错误消息。
    Mac OS X有更新的版本。
    Microsoft页面
    用户界面消息
    说同样的话:" ...如果出现错误消息,
    您应包括问题,原因和用户操作
    纠正问题。"

    还包括程序已知的所有信息,
    不只是一些固定的字符串。例如。对于错误消息的"为什么发生"部分,请使用"原始频谱文件
    L: refDataForMascotParser TripleEncoding Q1LCMS190203_01Doub
    leArg.wiff不存在",而不仅仅是"文件存在
    不存在"。

    将其与臭名昭著的错误消息进行对比:"一个错误
    发生。"。


    (从乔尔偷来的:o))

    不要禁用/删除选项,而是在用户单击/选择时提供有用的信息。


    正如我的数据结构教授今天指出的那样:向普通用户说明您的程序如何工作。我们程序员经常认为我们对程序很合逻辑,但是普通用户可能不知道该怎么做。


  • 使用谨慎/简单的动画功能从一个部分到另一部分创建无缝过渡。这有助于用户创建导航/结构的思维导图。

  • 在按钮上使用简短的标题(如果可能的话,一个单词),以清楚地描述操作的本质。

  • 尽可能使用语义缩放(一个很好的例子是缩放在Google / Bing地图上的工作方式,当您关注某个区域时可以看到更多信息)。

  • 创建至少两种导航方式:垂直和水平。在不同部分之间导航时为垂直,而在部分或子部分的内容内导航时为水平。

  • 始终保持结构的主要选项节点可见(在屏幕尺寸和设备类型允许的范围内)。

  • 当您深入结构时,请始终保持可见的提示(例如,以路径的形式)以指示您的位置。

  • 当您希望用户专注于数据(例如阅读文章或查看项目)时,隐藏元素。 -但是要注意第5点和第4点。


  • 我已阅读以上大部分内容,但未提及的一件事是:

    如果要让用户使用ONCE界面,那么最好仅显示他们需要使用的内容。

    如果要由同一用户重复使用该用户界面,但可能不是很经常,则禁用控件要比隐藏它们更好:偶尔出现的用户界面更改和隐藏功能不明显(或不被用户记住)令人沮丧。用户。

    如果要由同一用户非常正常地使用用户界面(并且工作量很少,即没有很多新用户一直在线),禁用控件绝对有帮助,并且该用户将成为习惯了发生这种情况的原因,但是可以防止它们在不正确的上下文中意外使用控件,并且可以防止错误。

    只是我的意见,但这全都可以追溯到了解您的用户个人资料,而不只是单个用户会话可能需要的内容。


    强大而简单

    哦,聘请设计师/学习设计技巧。 :)


    对于GUI,标准是特定于平台的。例如。在Eclipse中开发GUI时,此链接提供了不错的指导。


    推荐阅读

      linux命令删除用户组?

      linux命令删除用户组?,管理,密码,系统,用户组,用户,概念,命令,文件,管理员,

      linux提交程序命令行?

      linux提交程序命令行?,工作,系统,信息,地址,工程,目录,管理,环境,命令,功能,L

      linux注销命令用户?

      linux注销命令用户?,系统,服务,密码,地址,工作,命令,状态,工具,信息,基础,lin

      linux命令所有用户?

      linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如

      linux命令进入用户?

      linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,

      linux命令用户管理?

      linux命令用户管理?,系统,密码,管理,工作,信息,地址,工具,命令,用户,基础,LIn

      linux用户与组的命令?

      linux用户与组的命令?,管理,系统,名称,用户组,密码,用户,命令,情况,信息,单

      linux添加用户的命令?

      linux添加用户的命令?,密码,系统,软件,联系方式,用户,新增,信息,管理人员,

      linux用户退出的命令?

      linux用户退出的命令?,系统,密码,命令,用户,发行,电脑,第三,地址,软件,信息,l

      linux看系统用户命令?

      linux看系统用户命令?,系统,信息,密码,命令,服务,名称,网络,情况,软件,工具,L

      linux赋权用户命令?

      linux赋权用户命令?,系统,密码,用户,权限,地址,状态,数字,软件,管理,电脑,Lin

      linux组加用户命令?

      linux组加用户命令?,系统,密码,联系方式,用户,软件,管理,命令,用户名,用户

      linux命令中添加用户?

      linux命令中添加用户?,系统,密码,软件,用户,命令,信息,目录,用户名,账号,文

      linux命令更改用户?

      linux命令更改用户?,系统,密码,管理,用户,命令,环境,工作,地址,电脑,文件,lin

      linux修改用户名命令?

      linux修改用户名命令?,系统,密码,查询系统,代码,数字,用户名,命令,第三,电

      linux命令给用户授权?

      linux命令给用户授权?,系统,数字,管理,权限,命令,密码,工具,时间,软件,信息,l

      linux命令创建用户组?

      linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管

      linux命令给用户授权?

      linux命令给用户授权?,系统,数字,管理,权限,命令,密码,工具,时间,软件,信息,l

      linux命令创建用户组?

      linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管