应用基础设计原则:示能性、能指、约束、反馈和概念模型。当用户提到“为什么这让人困惑”、“示能性”、“错误预防”、“可发现性”、“以人为中心的设计”、“心智模型”、“映射”、“行动的七个阶段”、“用户总是犯错”、“这不直观”或“人们不知道如何使用它”时使用。在减少产品复杂性或功能蔓延时也触发。涵盖执行鸿沟和评估鸿沟。如需可用性评分,请参阅 ux-heuristics。如需 iOS 特定模式,请参阅 ios-hig-design。
日常用品设计框架
用于创建直观、可发现且易于理解的产品的基础设计原则。“UX 圣经”——适用于物理产品、软件以及任何人为设计的系统。
核心原则
好的设计实际上比糟糕的设计更难被注意到,部分原因是好的设计如此贴合我们的需求,以至于设计本身变得隐形。 当某物出现故障时,用户会自责——但问题几乎总是出在设计上。优秀的设计弥合了人们想做的事情与产品允许做的事情之间的差距:它应该是可发现的(你能弄清楚该做什么)和可理解的(你能弄清楚发生了什么)。
评分
目标:10/10。 快速诊断的每一行满足得2分(共5行:可发现性、评估、错误恢复、映射、约束)。等级:9-10 = 用户无需说明即可操作,理解每个结果,并能从任何错误中恢复;5-6 = 一个鸿沟或错误路径存在问题;<=3 = 用户必须查阅手册或经常自责。报告当前分数及未满足的诊断行。
两个鸿沟
每次与产品的交互都需要跨越两个鸿沟:
用户 产品
│ │
├──── 执行鸿沟 ────────────────────────→│
│ “我如何做我想做的事?” │
│ │
│←──── 评估鸿沟 ───────────────────────┤
│ “发生了什么?成功了吗?” │
执行鸿沟
用户想做的事情与产品允许做的事情之间的差距。 用户问:我能在这里做什么?我该用哪个控件?
通过以下方式弥合: 清晰的能指、自然的映射、约束、熟悉的概念模型。
评估鸿沟
产品所做的事情与用户理解发生的事情之间的差距。 用户问:发生了什么?成功了吗?系统处于什么状态?
通过以下方式弥合: 即时的可见反馈、清晰的系统状态指示器、有意义的错误消息、进度指示器。
设计目标: 使两个鸿沟尽可能窄——行动和理解应该即时完成。
参见:references/two-gulfs.md 进行鸿沟分析练习。
七个基本设计原则
1. 可发现性
定义: 用户能否弄清楚哪些操作是可能的以及如何执行它们?其五个组成部分——示能性、能指、约束、映射、反馈——将在下面详细说明。
测试: 让一个新用户面对你的产品。如果他们在10秒内无法弄清楚该做什么,则可发现性存在问题。
反模式: “用户手册会解释。”如果用户需要手册,设计就失败了。
2. 示能性
定义: 物体属性与用户能力之间的关系,决定了物体可能的使用方式。
关键见解: 示能性无论是否被感知都存在——对设计重要的是感知到的示能性。
| 类型 | 定义 | 示例 |
|---|---|---|
| 真实 | 物理能力存在 | 按钮可供按压 |
| 感知 | 用户相信能力存在 | 凸起区域看起来可点击 |
| 隐藏 | 存在但不明显 | 右键上下文菜单 |
| 虚假 | 看似可供操作但实际上不行 | 看起来可点击的装饰元素 |
| 反示能 | 阻止操作 | 阻挡移动的屏障 |
数字应用:
| 元素 | 示能性 | 如何提示 |
|---|---|---|
| 按钮 | 点击/触摸 | 凸起、彩色、阴影、悬停状态 |
| 文本字段 | 文本输入 | 边框、占位符文本、标签 |
| 滚动区域 | 滚动 | 滚动条、边缘淡出、部分内容 |
常见失败: 扁平设计消除了感知示能性(按钮还是标签?)、触摸目标过小、交互元素与装饰元素看起来相同。
参见:references/affordances.md 了解示能性设计模式。
3. 能指
定义: 传达操作应在何处进行的信号。示能性决定你能做什么;能指向你展示在哪里以及如何做。
| 类型 | 定义 | 示例 |
|---|---|---|
| 有意 | 为沟通而设计 | 门上的“推”标签、占位符文本 |
| 偶然 | 无意但提供信息 | 草地上被踩出的路径(人们走这里) |
| 社会 | 他人的行为 | 排队的人群指示入口 |
数字能指:
| 能指 | 传达什么 | 示例 |
|---|---|---|
| 光标变化 + 悬停状态 | 这是可交互的 | 指针→链接上的手形;按钮颜色变化 |
| 图标 + 标签 | 元素的功能 | 放大镜=搜索;“提交”、“取消” |
| 颜色 + 位置 | 状态、类别、层级 | 红色=错误,绿色=成功;关闭按钮在右上角 |
设计规则: 有疑问时,添加能指——宁可过度沟通,也不要让用户猜测。
参见:references/signifiers.md 用于决定向不明确的控件添加哪个能指。
4. 映射
定义: 控件与其效果之间的关系。自然映射意味着控件的空间布局与它们所控制对象的布局相匹配。
| 映射质量 | 示例 | 成功/失败原因 |
|---|---|---|
| 自然 | 音量滑块(向上=更大) | 符合心智模型 |
| 差 | 电灯开关面板 | 与灯没有空间对应关系 |
| 差 | 一排灶台旋钮 | 布局与炉头位置不匹配 |
数字原则: 控件靠近其影响的对象,布局反映内容,方向符合预期(向下滚动=内容向上移动),相关控件分组。
| 技术 | 工作原理 | 示例 |
|---|---|---|
| 邻近性 | 控件靠近目标 | 编辑按钮在内容旁边 |
| 空间 | 布局反映现实世界 | 地图控件匹配指南针方向 |
| 文化 | 遵循惯例 | 红色=停止/危险,绿色=通行/安全 |
| 顺序 | 遵循自然顺序 | 步骤1、2、3从左到右(或从上到下) |
参见:references/mappings.md 进行映射分析练习。
5. 约束
定义: 限制可能的操作以防止错误。
| 类型 | 机制 | 示例 |
|---|---|---|
| 物理 | 形状/尺寸阻止错误操作 | USB 插头只能以一种方式插入 |
| 文化 | 社会规范引导行为 | 红色表示停止,绿色表示通行 |
| 语义 | 含义限制选项 | 后视镜只有朝后才有意义 |
| 逻辑 | 逻辑限制选择 | 最后一个螺丝只有一个孔 |
数字约束:
| 约束 | 实现方式 | 示例 |
|---|---|---|
| 输入验证 | 限制可输入的内容 | 日期选择器 vs. 自由文本 |
| 禁用状态 | 灰显不可用选项 | “提交”在表单有效前禁用 |
| 强制顺序 + 撤销 | 按顺序执行步骤;允许反转 | 带锁定步骤的向导;Gmail“撤销发送” |
设计规则: 每添加一个约束,用户就少犯一个错误——让错误操作变得不可能,而不是惩罚用户。
参见:references/constraints.md 了解约束设计模式。
6. 反馈
定义: 将操作结果传达给用户。反馈必须即时(直接操作在0.1秒内)、信息丰富、剂量适当且不打扰。
| 类型 | 何时使用 | 示例 |
|---|---|---|
| 视觉 | 大多数操作 | 按钮按下动画、颜色变化、勾选标记 |
| 听觉 | 重要事件、确认 | 成功提示音、错误声音 |
| 触觉 | 触摸设备、确认 | 按键振动 |
| 进度 | 长时间操作 | 进度条、旋转指示器、骨架屏 |
数字反馈模式:
| 情况 | 所需反馈 | 示例 |
|---|---|---|
| 表单提交 | 成功/错误消息 | “已保存!”提示或内联错误 |
| 加载中 | 进度指示器 | 旋转指示器、骨架屏、百分比 |
| 错误 | 出了什么问题 + 如何修复 | “无效邮箱。请检查格式。” |
响应时间: 0.1秒感觉即时;1秒是明显延迟(更改光标);10秒失去注意力(显示进度条);超过10秒用户离开(显示百分比,允许后台运行)。
常见失败: 无反馈(我的点击注册了吗?)、延迟反馈(感觉坏了)、不清晰的反馈、警报过多。
参见:references/feedback.md 当操作没有明确结果时,用于确定正确的反馈类型和时机。
7. 概念模型
定义: 用户对产品工作原理的心智模型。
| 模型 | 持有者 | 描述 |
|---|---|---|
| 设计模型 | 设计师 | 设计师认为产品如何工作 |
| 用户模型 | 用户 | 用户认为产品如何工作 |
| 系统映像 | 产品 | 产品实际传达的内容 |
目标: 用户模型应与设计模型匹配;系统映像是唯一的桥梁。匹配的模型让用户能够预测结果并从错误中恢复;不匹配则导致困惑、自责和支持电话。
示例(恒温器): 设计模型——设定温度,系统维持该温度;常见用户模型——更高温度加热更快(错误),因此用户将其调到90°F。
通过以下方式建立正确模型: 熟悉的隐喻(桌面、垃圾桶)、可见的系统状态、清晰的反馈、一致的行为、渐进式披露。
参见:references/conceptual-models.md 当用户模型与产品工作原理不符时使用。如需完整的拆解分析(门把手、恒温器、数字产品),请参见 references/case-studies.md。
人为错误
Norman 的关键见解:没有所谓的“人为错误”——只有糟糕的设计。 当有人犯错时,寻找设计缺陷,而不是人的缺陷。
错误类型
失误——意图正确,操作错误:
| 失误类型 | 原因 | 示例 | 设计修复 |
|---|---|---|---|
| 操作失误 | 对正确目标执行错误操作 | 点击“删除”而不是“编辑” | 分离破坏性操作 |
| 记忆遗漏 | 忘记序列中的步骤 | 写了“附件”后忘记添加附件 | Gmail 的附件提醒 |
| 模式错误 | 正确操作,错误模式 | 在大写锁定状态下输入 | 清晰显示模式状态 |
| 捕获错误 | 习惯覆盖意图 | 自动驾驶开到旧办公室 | 在决策点中断 |
错误——意图错误,但正确执行:
| 错误类型 | 原因 | 示例 | 设计修复 |
|---|---|---|---|
| 基于规则 | 应用错误规则 | 对错误情况使用公式 | 提供上下文,确认 |
| 基于知识 | 不完整/错误的心智模型 | 误解系统工作原理 | 更好的概念模型 |
| 记忆遗漏 | 忘记目标或计划 | 忘记为什么打开冰箱 | 提醒、历史记录 |
为错误而设计
预防: 使错误不可能的约束、随处可撤销/重做、破坏性操作需确认、合理的默认值、宽容的输入。
恢复: 清晰的错误消息、绝不擦除用户的工作、部分保存、轻松重置到已知的良好状态。
错误消息检查清单:
- [ ] 说明出了什么问题(用人类语言)
- [ ] 说明如何修复
- [ ] 不责备用户
- [ ] 保留用户的工作
- [ ] 提供替代路径
参见:references/human-error.md 了解错误预防模式。
行动的七个阶段
Norman 关于人类如何与产品交互的模型:
1. 目标 → “我想调节温度”
2. 计划 → “我会用恒温器”
3. 明确 → “我会按向上箭头”
4. 执行 → (按下按钮)
─── 执行鸿沟 ───
5. 感知 → (看到显示变化)
6. 解释 → “数字上升了”
7. 比较 → “这是我要的吗?”
─── 评估鸿沟 ───
设计含义: 用能指、映射和约束支持阶段1-3;用良好的示能性支持阶段4;用反馈和可见状态支持阶段5-7。通过每个阶段检查任何交互,找出用户卡住的地方。
参见:references/seven-stages.md 进行逐阶段分析。
以人为中心的设计(HCD)流程
观察 → 构思 → 原型 → 测试 → (迭代)
两个改变你运行此循环方式的具体点:在观察中,不要问用户想要什么(他们不知道)——在真实环境中观察变通方法和挫折。在测试中,使用真实用户而非设计师——5个用户能揭示约85%的问题,因此观察行为而非意见,并迭代。
常见错误
| 错误 | 失败原因 | 修复 |
|---|---|---|
| 无能指 | 用户找不到功能 | 为每个交互元素添加视觉提示 |
| 无反馈 | 用户不知道操作是否成功 | 在0.1秒内响应每个操作 |
| 责备用户 | 忽略设计缺陷 | 为每个“用户错误”寻找设计原因 |
| 功能蔓延 | 复杂性压倒用户 | 应用约束、渐进式披露 |
| 不一致 | 破坏概念模型 | 相同操作=处处相同结果 |
| 忽略上下文 | 为理想条件设计 | 观察真实使用环境 |
快速诊断
审计任何设计:
| 问题 | 如果否 | 行动 |
|---|---|---|
| 用户能弄清楚该做什么吗? | 可发现性差 | 添加能指,改进示能性 |
| 用户理解发生了什么吗? | 评估鸿沟过宽 | 添加反馈,显示系统状态 |
| 用户能从错误中恢复吗? | 无错误容忍度 | 添加撤销、确认、清晰消息 |
| 控件布局是否匹配输出? | 映射差 | 重新组织控件以匹配空间布局 |
| 不可能/不相关的选项是否隐藏? | 缺少约束 | 禁用、隐藏或移除无效选项 |
延伸阅读
完整框架:
关于作者
唐·诺曼博士是尼尔森诺曼集团的联合创始人、加州大学圣地亚哥分校设计实验室主任、苹果公司前先进技术副总裁,他创造了“用户体验”一词。《日常用品设计》(1988年,2013年修订)被广泛认为是有史以来最具影响力的设计书籍,是全球设计课程的必读书目。






