一般开发人员应遵循哪些良好的可用性准则?

What are some good usability guidelines an average developer should follow?

我不是可用性专家,而且我真的不在乎成为一个专家。

我只希望在编写用户界面时可以遵循一小组经验法则,以便我的产品具有不错的可用性。

起初我以为这个问题很容易回答"使用您的常识",但是如果在我们的开发人员中如此常见,我们作为一个整体就不会以我们可怕的界面而闻名。

有什么建议么?


simplicity

资料来源:http://stuffthathappens.com/blog/wp-content/uploads/2008/03/simplicity.webp


史蒂夫·克鲁格(Steve Krug)的《不要让我思考》。这是一个很好的起点,并且很容易阅读。

编辑:虽然这主要是为了提高Web可用性,但是即使您正在使用富客户端,也仍然是不错的阅读方法。


实际上只有两件事:

  • "当程序完全按照用户的想法进行操作时,用户界面设计良好"-引用乔尔·斯波斯基(Joel Spolsky)的《程序员的用户界面设计》
  • 将您的设计展示在用户面前。真正的最终用户是最好的,但是对于轻量级的,快速的反馈,您无法击败走廊的可用性测试,即聘请同事。
  • 如果您记得乔尔(Joel)的建议并确保您对所做的任何事情都得到反馈并采取行动,即反复进行,那您就不会做错太多。我会推荐史蒂夫·克鲁格(Steve Krug)的《不要让我思考》(Do n't Make Me Think)的建议-这可能是我读过的最好的与工作相关的书,没有任何内容,并且与网站一样适用于桌面软件。

    希望这可以帮助。


    • 不要让事情以不同于用户期望的方式工作(即,在Web表单中使用Ajax时打破"后退"按钮
    • 遵循K.I.S.S校长

    确实,有人发布的任何规则都将是该主题的变体:
    不要让用户思考

    "不要让我思考"已经发布,另请参见
    日常事物的设计和基于Web标准的设计也非常适合阅读轻便的可用性。


    我给某人的最重要的建议是首先在UI上工作。笔和纸等。这样,您将不会在潜意识中将按钮与函数,输入字段与变量等相结合。

    最好的UI可能会给代码带来痛苦,并且如果您的后端代码主要是编写的,那么它将破坏您的思维。

    除此之外,我还要指出苹果的人机界面指南。当然,如果您的平台不是OSX,请特别注意OSX部分。在OSX中起作用的内容可能在Windows上不起作用。您应该接受平台的习惯用法。

    除了OSX方面的内容外,该文档还具有一些基本的很好的起点。


    避免模??式。当输入有时有效而其他输入无效或在不同时间执行不同操作时,这会使用户感到沮丧。


    以下是一些简单的规则:

    • 点击次数越少越好。
    • 常用功能应该更容易找到。
    • 与上述功能相比,"高级"用户的功能很难找到。

    考虑一下用户进入某物所需的鼠标/键盘单击次数。

    PS-请不要将此事告诉Microsoft Office 2008人员;那个可怜的小家伙今晚会哭起来睡觉! :)


    我已经发布了相关问题:

    • 您知道GUI可用性的哪些指标?
    • GUI设计技术可增强用户体验

    考虑将使用您的应用程序的用户。他们为什么要使用它以及在什么情况下使用它?

    • 多数会是知道该应用程序使用域并大量使用该应用程序的专业用户吗?然后,只要为用户按逻辑排列(通常不是按字母顺序:-),就不必担心向屏幕添加大量数据。可以考虑使用贸易掩护,以用于船坞或飞机驾驶舱。
    • 用户是临时用户吗?把事情简单化。避免上下文切换(每次都在屏幕上保留所有/尽可能多的任务数据)。不要超出对gui小部件正常工作方式的期望。设计失败。
    • 之间有什么吗?允许用户在UI中成长。跟踪使用情况,以便您以后可以确定用户似乎在哪里花费最多的时间,从而可以改善应用程序中最常使用的区域。
    • 在朋友和同事上测试您的应用程序(走廊测试),以查看他们是否能够有效使用它。

    那是一个开始。


    我建议阅读Enso创作者的这些博客文章。

    当然,他们会重复诸如以下书籍中的指南/思想/建议
    《日常事物和关于面孔的设计》,但是尽管如此,这些帖子还是包含了很多见解,并且(IMO)它们是一本好书。


    罗伯特·霍克曼(Robert Hoekman)的"设计显而易见的事物"是对"别让我思考"的一个很好的跟随。与克鲁格(Krug)的网站相反,它更侧重于Web应用程序。


    用户需要什么信息,将其显示在屏幕上,仅此而已。如果您无法定义用户的需求,请再找一个用户。


    请记住,您的应用程序将是用户必须处理的众多应用程序之一。不要只是为了变得与众不同而不是屈服。不要提出异常的图形,行为,术语或交互。使用标准的OS控件,约定,实用程序和行为。

    让您的应用与其他应用互操作;允许剪切和粘贴数据,以其他应用程序可以读取的格式保存数据,并允许从其他应用程序导入数据,而不是使用UI。

    如果要制作桌面应用程序,请不要尝试接管用户的计算机。保留用户的Documents文件夹,任务栏和应用程序首选项。不要更改计算机上已经安装的任何内容。允许脚本或命令行交互。

    如果您要制作网络应用,请不要尝试接管浏览器。不要尝试破坏标准菜单栏,历史记录,布局或字体。允许用户使用Java脚本更改页面。


    (1)共同行动应尽可能少地努力,并且应显而易见;另一方面,很少需要的操作可能需要很多步骤,并且可以隐藏在菜单和对话框的后面。为此,您应该始终通过列出用例来描述用户想要对应用程序执行的操作。

    (2)UI应该是自记录的。该手册应集成在应用程序的对话框和菜单中,因为用户不会阅读单独的手册。例如,键盘快捷方式应显示在代表与其相关联的动作的菜单项中。


    为高级用户提供键盘快捷键(即使它像"按Enter键即可搜索"一样简单)

    不要一次在屏幕上放太多。

    如果您弹出一个消息框,则您的用户通常将永远不会阅读它。


    • 简单胜于复杂
    • 复杂胜于复杂(消除"嵌套的if")
    • 直观(好的元素无需解释)
    • 遵循约定(例如,带下划线的表示链接,红色表示错误,制表符转到下一个字段,等等)
    • 使用语义来应用逻辑(标题首先阅读,然后是段落)
    • 空格很重要


    除了这里的其他建议之外,我还建议您使用Jenifer Tidwell的Designing Interfaces作为熟悉UI约定的好方法。
    另外,囚犯正在避难。By Alan Cooper擅长提供有关如何进行交互设计的见解。


    推荐阅读