设计复杂应用是一项具有挑战性的事业。构建具有深度来支持复杂任务的应用程序明确的直观如何完成这项工作是一项巨大的挑战。我们花了一整天的时间讨论这个话题Web和桌面的应用设计当然可以,但是我们可以很容易地花一个月的时间来分类我们在用户研究中遇到的每种类型的问题。

对常见应用程序设计问题进行一般性建议很难,因为我们观察到的许多问题是特定于域的。这是11年前的,当时本文的第一个版本已经写好了,今天依然如此。

因此,我们的第一个推荐是做用户研究与您的目标受众

  • 从任务分析开始实地研究了解您的用户的需求和工作流程。
  • 原型测试低保真度的想法,粗糙的基本结构,你的应用程序和它的功能,没有投入很多资源的想法,你会修改或放弃当您向用户学习时。
  • 迭代设计,并用a测试每个变化少量用户。迭代越多,您的申请将越好。

尽管具有大多数应用程序可用性问题的域特定性质,但这是我们经常在行业中看到的10个常见错误。这些问题中的五个(#1,2,3,4和6)也包括在原始文章中 - 这是如何展示如何耐用的可用性指南是。所有10个原始指南仍然是正确的,但(谢天地)的错误是(谢天地)比他们曾经的普遍性不常见;它们被另外5个问题所取代(#5,7,8,9和10)。

以下是我们目前的排名前10个应用程序设计错误,这些错误都是令人震惊和普遍的。让我们希望当我们在另外11年中写下这篇文章的下一个版本时,这些大部分都将不那么常见。

1.差的反馈意见

One of the most basic guidelines for improving an application’s usability is to provide clear回馈

  • 向用户显示系统的当前状态
  • 告诉用户他们的命令和行动是如何解释的。
  • 告诉用户发生了什么。

保持安静的应用程序让用户猜测。经常,他们猜错了。

良好的反馈告诉用户很多事情 - 例如,他们单击的按钮被系统正确地解释为“点击”,系统现在会做点什么吗?目前选择或活跃的是什么?

反馈变得重要之一是当应用程序被放入编辑模式以修改现有信息时。It’s important that users have a clear understanding of what is currently editable, as applications will differ in the scope of the edit mode — for example, some applications will incorporate tables of data where a single cell or row is editable, others will make the entire table editable. Proper, clear feedback can convey to users the scope of the edit; good feedback can be implemented in a variety of ways, from using a different background to identify the current editable area to changing the buttons associated with editing to clearly show their function

具有清晰指示单行可编辑的数据表
在编辑模式下,此应用程序Telerik.com公司向当前可编辑的表行添加灰色背景,更改单元格使其看起来像表单字段,并更改编辑删除按钮到更新取消,具有不同的布局和外观。Changing the buttons’ location and color is an extra, important signal in this feedback, as it reduces the likelihood that users will click the wrong button after editing if they aren’t paying attention and relying on muscle memory.This level of feedback clearly indicates what is happening with the system and how it’s responding to user input.

1.没有进度指标的午餐

缺乏反馈缺乏的变体是当系统无法通知用户需要很长时间才能完成动作。用户经常认为该应用程序已被损坏,或者他们开始​​点击其他目标。

如果你不能满足推荐的响应时间限制,并让用户了解进度指标

  • 如果指令之间占用2和10秒,显示一个等待动画,如“旋转器”。此类进度指示器告诉用户握住他们的马匹,直到普通光标返回直到否则也不会点击其他任何内容。
  • If a command takes more than10秒,明确进度条优选地作为百分比的指标(除非您真正无法预测,直到操作完成,否则剩下了多少工作)。

2.不一致

记住双D规则:差异很难。当用户有期望如何行事或可以访问它的地方时,与这些期望的偏差导致混乱,挫折和增加认知负荷因为人们试图难题这个问题。人类的思想渴望一致。

在复杂的应用中有一些不一致的不一致性,并使甚至调整用户完全混淆:

  • 同一动作的不同的词或命令
  • 在许多不同的地方放置对相同功能的控制
  • 似乎彼此相似的控制(来自用户point of view) but are accessed in different places (e.g. one is accessed in a toolbar, another a menu, and a third deep in a优先对话)
  • 类似的工作流模式,需要与界面的不同部分进行交互
  • 合法输入数据的不一致规则:有时允许进入,另一次它标记为无效,没有任何反馈,以及为什么发生这种反馈
  • 有时可用的功能,有时不是出于没有明确的神秘原因
  • 移动的UI元素或控件,违反空间一致性

在我们的研究中,一位有着多年使用AutoCAD经验的架构师很难理解什么时候她可以或不能“停靠”各种浮动面板以将它们固定在屏幕的一侧。在同一疗程中,她多次试图让一块浮动面板停靠在左侧,但都没有成功。结果是,由于隐藏的参数设置,这个特定的面板无法停靠,但是这个约束没有显式地提供给用户。隐藏设置的目的是让高级用户能够定制令人难以置信的界面,但是,由于反馈不好,我们的研究参与者无法理解为什么对接有时有效,有时无效。这种不一致是一个主要的挫折来源,即使是有经验的用户。

由于神秘原因无法捕捉到屏幕一侧的AutoCAD窗口
AutoCAD并不总是允许我们的研究参与者将面板“停靠”到屏幕的一侧。即使是有经验的用户也无法确定为什么这个功能在某些面板上工作而在其他面板上不工作。(原来这是一个隐藏的参数,在这个面板上被关闭了。)

3.错误错误消息

错误消息是一种特殊的反馈形式:他们告诉用户出错了。我们已经知道了错误消息指南近30年来,然而许多应用仍然违反了它们。

最常见的准则违规是当错误消息只是说出错时,没有解释原因和如何用户可以解决问题。这些消息将用户搁置。

多年来这个问题已经恶化,主要是由于Web应用程序:用户显示了一个出了些问题。再试一次。错误消息,没有关于错误原因的详细信息或如何修复它。至少用于告诉别人的yesteryear的本机桌面应用程序(经常在技术灵孔中,用户没有希望理解)问题所在。

没有有用的细节,错误的消息“出现了出现问题”的集合
一系列模糊出了些问题从Quicken(左上角),Dropbox(右上角),IBM verse(底部)的错误消息:均未描述问题的性质,有关如何避免问题的详细信息,以及用户的工作是否丢失了该过程。

信息性错误消息不仅帮助用户解决当前问题,但它们也可以作为一个教able moment。虽然人们不会在阅读和学习您的应用程序的功能中投入时间,但如果您清楚地解释,他们将努力了解错误情况,因为他们想克服错误。

4.没有默认值

默认值帮助用户以多种方式。最重要的是,默认值可以:

  • 加速如果默认是可接受的,则释放用户无法指定值的交互
  • 通过提供适合该问题的答案类型的示例
  • 直接新手用户朝着安全或共同的结果,如果他们不知道还有什么要做的话,让他们接受违约

默认值可以在重复任务中节省大量用户努力,例如填写相同的形式多次。识别表单字段的关键值可以提高生产率并减少挫折。您的分析可以帮助您了解特定字段是否有最常用的选项。

特别是,下拉菜单受益于有意义的默认值。许多应用程序提供选择一个(即没有选择任何值)作为默认选项,强制每个用户与下拉列表交互并选择一个值。如果您预先选择了一个选项(理想情况下是最常见的),那么至少有些用户不必与该下拉列表进行交互。

对于数字表单字段,如果用户与常见默认值相差很小(例如Quantity字段),您可以使用a步进允许它们调整数字而无需键入(但仍允许用户在需要时键入不同的值)。挺杆有两个好处:他们减少了互动成本为仍然学习系统的新用户提供合理的起点。

薄荷融资应用程序中的一个向导,它在默认值中提取,并放弃步进按钮以更改默认值。
MINT,Personal-Finance应用程序有一个功能,帮助用户找到符合他们需求的信用卡。此向导通过自动导入用户的平均每月信用卡支出,并使用户通过键入或使用递增/递减按钮来修改此数字的简单方法,从而使用良好的默认默认。

5.未标记的图标

是真的罕见的图标要自己站起来,大多数用户能够立即理解它们。甚至可能似乎是普遍的图标(如汉堡菜单由于大多数ux从业者期待,并不像用户那样熟悉。如果您的应用程序有独特的图标,它会变得更糟;用户将理解这些独特的图标意味着的可能性非常低。记住雅各布的法律:“用户花了大部分时间其他网站。“这意味着大多数图标,除非他们旁边有文本标签,用户将是困难或不可能理解的。

与文本标签的配对图标有四个优势:

  1. 它增加了目标的大小(根据Fitts’ Law,减少用户访问控件需要多长时间)。
  2. 它减少了识别命令的时间:两个记忆线索(图标和文本)比一个要好。
  3. 与以前有关,它还可以促进界面的学习(通过与相同命令建立多个关联)。
  4. 它可以帮助用户在视觉上区分彼此旁边的几个命令。
从几个应用中选择了一系列神秘的未标记图标
在我们最近的研究中,从各种桌面应用程序中选择了一些未标记的图标:所有这些都是非标准的图标,不能清楚地表明它们的用途。你能猜出他们代表什么吗?我们的研究参与者不能。

6.难以获得的目标

在人机交互中,可以单击(或删除)的任何东西都被称为a目标:所有活动UI元素都是目标。用户获取目标,他们必须能够(1)识别目标;(2)可靠地单击它。这两个方面都会导致现代应用程序接口中的问题。

6a. Weak Signifiers

“提供”意味着您可以对对象做些什么。例如,复选框提供接通和关机,滑块向上或向下移动。意义员是可视化元素,可帮助您了解的人看着在对象,在开始使用它之前(或感觉它,如果它是物理设备而不是屏幕上的UI元素)。这些概念在唐诺曼的书中讨论过日常事务的设计

意小器在UI设计中尤为重要,因为所有屏幕像素都能下单击 - 即使在单击时,如果没有任何内容发生。在计算机屏幕上有很多可见的东西,用户没有时间扫雷游戏,点击围绕希望找到可操作的东西。(例外:小孩子有时候喜欢通过单击浏览屏幕。)

在现代应用中,最严重的问题之一是超公寓设计。许多平面设计有薄弱的意叶对于目标:人们不能轻易讲述按钮的文本,因为按钮缺乏传统的3D线索。

常见的症状弱意义者是:

  • 用户说:“我在这做了什么?”
  • 用户不会靠近一个帮助它们的功能。
  • 大量的屏幕文本试图克服这些two problems. (Even worse are verbose, multistage instructions that disappear after you perform the first of several actions.)

6B。小点击目标

An associated problem here is click targets that are so small that users miss and click outside the active area. Even if they originally perceived the associated signifier correctly, users often change their mind and start believing that something isn't actionable because they think they clicked it and nothing happened.

(小型点击区域对于老用户和有机技能的用户残疾人。)

7情态动词的过度使用

许多应用程序使用模态窗口要实现与数据的交互 - 编辑现有项目,添加新项目,删除或甚至读取有关项目的其他详细信息。模块出现在当前页面之上,背景内容通常暗淡(假设调光会减少分心并帮助用户专注于手头的任务)。不幸的是,这种设计选择通过掩盖他们可能希望在填写表格时引用的信息来减少用户的背景。(Note that, even if the covered-up window does not contain information needed for the editing, users often attempt to leverage the work they’ve done previously, by copying and pasting previous inputs, or even simply using other entries as templates for how to think about the current task.)

包含重要信息的模态的表应用程序
在Airtable中,编辑表行将打开一个模式,该模式覆盖表中的大部分信息,并阻止用户引用该信息。

8.无意义的信息

长字符串的字母和数字,如数据库中自动生成的ID,经常用于唯一地标识应用程序中的项。这些字符串对用户来说是完全没有意义的,但是它们通常作为表的第一列显著地显示,迫使人们扫描第一列以找到他们关心的信息。虽然这些无意义的索引在后端很重要,但它们不应该是用户必须参考的主要信息。特别是在高信息密度的屏幕上,提供一些人类可读的信息作为主要的定位点,并将IDs推到不太突出的位置。

对编码信息的恶意使用通常出现在医疗应用中,CRM系统(用户通常必须为每个销售互动的代码),会计软件和企业应用程序。在所有这些应用中,对人类有意义的信息总结了短代码,以便更加紧凑。短代码可能比整个句子更好的小区,但对用户施加了更高的认知负荷。他们需要翻译编码信息来理解它,我们的工作内存仅限于开始。即使是高度训练的专业人士也不记得所有可能的代码,并且仍然需要很多努力来做这种心理翻译。

具有编码信息的表
此表具有毫无意义的ID信息作为第一列;这网络代码位置代码字段还包括编码信息,该信息旨在表示紧凑空间中的复杂信息。这地点名称是对人类有意义的唯一列;要破译其他人,人们必须依赖他们的内存,或者他们必须参考代码密钥列表。

9.垃圾抽屉菜单

如果您的应用程序具有数百甚至数千个功能,则必须为某个地方的特征进行控制,此外,您需要优先考虑和组织它们,因此用户可以轻松查找并快速访问最重要的。此约束的一个结果通常是溢出菜单:最常用的操作显示在工具栏中,标有最终项目更多操作, 或者工具或者最糟糕的是......托管任何不适合的一切。

这些菜单标签很低信息香味和are nothing more than a junk drawer: a place to put all the stuff you can’t otherwise categorize, but don’t want to throw away. They often come about because the team has a list of required features but doesn’t know where to put them, or in legacy applications, it cannot remove old, seldom used features. The problem with an overflow menu is that, just like with the junk drawer in your house, no one else can know what you might have put in it. In other words, it limits bothdiscoverability可辨别能力因为大多数用户没有任何理由去查看那些菜单。

一个神秘的菜单,用elipsis标记
Airtable:标有垃圾抽屉菜单......几乎没有信息。用户很难预测菜单中的内容。
只有“更多”字样的垃圾抽屉菜单
Salesforce:垃圾抽屉菜单更多

10.破坏性和确认行动的邻近

放置诸如旁边的行动摧毁了工作丢弃是一个普遍的设计决策,对用户来说导致大量悲伤。虽然逻辑上,这种放置通常是有道理的(例如,删除与之相关的是相关的,因为他们决定了一个项目的命运),它还可以轻松单击错误的按钮或图标 - 尤其是当用户正冲,完成重复动作或有驾驶困难时。这种类型的这种无意替代另一个动作被称为a

一个向导,最后一步是彼此相邻的取消和完成按钮。
veeam是一个企业备份软件,具有多步骤向导来设置新的备份作业。在我们的研究中,用户差不多20分钟才能通过这个向导,几乎点击了取消而不是结束在最后的摘要页面上,由于两个按钮的接近度。这个用户点击了取消,20分钟的工作就会丢失。
电子邮件应用程序中“删除”图标旁边的“跟进”按钮的标志
Microsoft Outlook地点随访国旗按钮旁边档案删除图标。这些图标服务于对面的用户意图,但它们很小,紧密放置,匆忙轻松误解。

Summary

应用程序是巨大的域名的,因此对一个行业的可用,高效和愉快的应用可能是另一个行业的申请。创建可用的应用程序需要与用户一起研究他们的工作流程,他们所需的功能以及他们的心理模型和期望。

然而,这里概述的10个申请错误代表了我们在一系列行业的研究中观察到的共同主题,包括创造性,财务,企业,医疗保健,工程和更多。

有关应用程序设计的更多指南,请参加我们的全天课程Web和桌面的应用设计