VOCABULARY / 词条
用户控制与自由
User Control and Freedom
用户经常误操作,因此需要一个标记清晰的“紧急出口”,无需经历冗长流程就能离开不想要的状态;支持撤销与重做。能轻松脱困会让人敢于探索,从而促进学习与功能发现。

识别特征
- 任何多步或模态流程都有可见且带文字标签的取消、关闭或返回
- 破坏性或修改性操作可以撤销、重做,或至少在提交前确认
- 上下文变化(跳转、新窗口、自动提交)由用户主动触发,而非系统代劳
概念边界
用户控制与自由关注用户能否随时退出或撤回,属于 Nielsen 第三条启发式;它与平静技术相关(尊重用户注意力),但后者讨论的是信息呈现的强度,而非退出通道。撤销/重做是它的一种实现,本词典尚未单独立条;阻碍退出或完成是它的直接违反。它不等于错误预防:前者处理已经发生的误操作,后者处理发生之前。
什么时候考虑它
- 用户在编辑、配置或多步流程中容易误入不想要的状态
- 操作会修改或删除内容,而用户希望在事后反悔
- 系统可能自动改变上下文,例如自动跳转、自动刷新或自动提交
什么时候慎用
- 把“可撤销”当作免除确认的理由,用在撤销窗口极短或根本无法恢复的操作上
- 为每个低代价操作都提供退出确认,使出口本身成为摩擦
- 只依赖隐藏的键盘快捷键或未标注的图标作为出口
取舍
清晰的出口与撤销能降低误操作代价、鼓励探索,但撤销需要持久化历史状态,取消需要处理半完成的数据,这会增加实现复杂度;出口过多或过于显眼也可能分散对主任务的注意力。
条件规则 · 编辑建议
相关词条
阻碍退出或完成正是取消“紧急出口”,是对本原则的直接违反。
模态必须提供带文字标签的关闭或取消,且关闭不应丢失用户已输入的内容。
向导的每一步都应有返回与取消,且退出时对未保存的进度给出提示而非静默丢弃。
错误预防在提交前阻止问题,用户控制与自由在问题发生后提供撤回;两者共同覆盖操作前后。
两者都主张把主动权留给用户,但平静技术关注信息强度与注意力,本原则关注退出与撤回通道。
来源与支持范围
第三条启发式:用户常常误操作,需要一个标记清晰的“紧急出口”,无需经历冗长流程就能离开不想要的动作;建议支持撤销与重做,提供如“取消”按钮的明确退出方式,并确保出口标签清晰、易于发现。
检索日期:2026-09-15列出返回、取消、关闭与撤销/重做四类出口;出口应放在预期位置、易于找到并配以文字标签(“Back”优于“<”,“Close”优于“X”),撤销应有可见入口而非仅靠快捷键;能轻松脱困会鼓励探索并促进功能发现。
检索日期:2026-09-15 · 存档于 2026-09-16WCAG 2.2 AAA 级要求:上下文变化只能由用户请求发起,或提供关闭此类变化的机制;意图是让用户完全掌控主要内容变化,避免新窗口、自动提交等意外变化使运动障碍、低视力、失明或认知障碍用户迷失。
检索日期:2026-09-15定义参考以上来源;数字界面示例、选择建议、条件关系及配方由本样例编辑,尚未经用户研究验证。
类型扩展与实现说明
本词条尚无可操作示例;插画为编辑示意。应用到产品时仍须验证每个模态与多步流程是否都有带标签的出口、撤销是否真正恢复数据,以及取消半完成流程时是否会静默丢失内容。
{
"evidenceType": "可用性启发式与无障碍标准的设计解释",
"limit": "本词条不测量撤销或取消对任务完成率的影响,也不规定撤销窗口的时长或历史步数。"
}完整 Agent 条目 JSON
{
"id": "user-control",
"type": "principle",
"name": {
"zh": "用户控制与自由",
"en": "User Control and Freedom"
},
"aliases": [
"Nielsen Heuristic #3",
"紧急出口",
"Emergency Exit"
],
"granularity": "experience",
"intents": [
"confirm-action",
"prevent-error"
],
"tags": [
"启发式",
"撤销",
"取消",
"退出",
"可逆"
],
"definition": "用户经常误操作,因此需要一个标记清晰的“紧急出口”,无需经历冗长流程就能离开不想要的状态;支持撤销与重做。能轻松脱困会让人敢于探索,从而促进学习与功能发现。",
"boundary": "用户控制与自由关注用户能否随时退出或撤回,属于 Nielsen 第三条启发式;它与平静技术相关(尊重用户注意力),但后者讨论的是信息呈现的强度,而非退出通道。撤销/重做是它的一种实现,本词典尚未单独立条;阻碍退出或完成是它的直接违反。它不等于错误预防:前者处理已经发生的误操作,后者处理发生之前。",
"signature": [
"任何多步或模态流程都有可见且带文字标签的取消、关闭或返回",
"破坏性或修改性操作可以撤销、重做,或至少在提交前确认",
"上下文变化(跳转、新窗口、自动提交)由用户主动触发,而非系统代劳"
],
"when": [
"用户在编辑、配置或多步流程中容易误入不想要的状态",
"操作会修改或删除内容,而用户希望在事后反悔",
"系统可能自动改变上下文,例如自动跳转、自动刷新或自动提交"
],
"when_not": [
"把“可撤销”当作免除确认的理由,用在撤销窗口极短或根本无法恢复的操作上",
"为每个低代价操作都提供退出确认,使出口本身成为摩擦",
"只依赖隐藏的键盘快捷键或未标注的图标作为出口"
],
"tradeoff": "清晰的出口与撤销能降低误操作代价、鼓励探索,但撤销需要持久化历史状态,取消需要处理半完成的数据,这会增加实现复杂度;出口过多或过于显眼也可能分散对主任务的注意力。",
"comparison": {
"focus": "用户能否随时离开不想要的状态并撤回操作",
"mechanism": "可见的返回、取消、关闭出口,加上撤销/重做",
"cost": "历史状态的维护、半完成数据的处理,以及出口位置与标签的设计"
},
"sources": [
{
"id": "nng-heuristics-user-control",
"title": "NN/g · 10 Usability Heuristics for User Interface Design",
"url": "https://www.nngroup.com/articles/ten-usability-heuristics/",
"claim": "第三条启发式:用户常常误操作,需要一个标记清晰的“紧急出口”,无需经历冗长流程就能离开不想要的动作;建议支持撤销与重做,提供如“取消”按钮的明确退出方式,并确保出口标签清晰、易于发现。",
"checkedAt": "2026-09-15",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/ten-usability-heuristics/",
"status": "available",
"checkedAt": "2026-09-15T18:21:57.626Z",
"jobId": "spn2-c214ca6ca65135f964d23731cb22d3701cb6d598",
"url": "https://web.archive.org/web/20260915182252/https://www.nngroup.com/articles/ten-usability-heuristics/",
"timestamp": "20260915182252"
}
},
{
"id": "nng-user-control-freedom",
"title": "NN/g · User Control and Freedom (Usability Heuristic #3)",
"url": "https://www.nngroup.com/articles/user-control-and-freedom/",
"claim": "列出返回、取消、关闭与撤销/重做四类出口;出口应放在预期位置、易于找到并配以文字标签(“Back”优于“<”,“Close”优于“X”),撤销应有可见入口而非仅靠快捷键;能轻松脱困会鼓励探索并促进功能发现。",
"checkedAt": "2026-09-15",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/user-control-and-freedom/",
"status": "available",
"checkedAt": "2026-09-16T03:59:51.314Z",
"jobId": "spn2-3a0ff97744af06a7cb1daace1073bb8545c95cac",
"url": "https://web.archive.org/web/20260916035135/https://www.nngroup.com/articles/user-control-and-freedom/",
"timestamp": "20260916035135"
}
},
{
"id": "wcag22-sc325",
"title": "W3C · Understanding SC 3.2.5: Change on Request",
"url": "https://www.w3.org/WAI/WCAG22/Understanding/change-on-request.html",
"claim": "WCAG 2.2 AAA 级要求:上下文变化只能由用户请求发起,或提供关闭此类变化的机制;意图是让用户完全掌控主要内容变化,避免新窗口、自动提交等意外变化使运动障碍、低视力、失明或认知障碍用户迷失。",
"checkedAt": "2026-09-15",
"archive": {
"lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/WCAG22/Understanding/change-on-request.html",
"status": "available",
"checkedAt": "2026-09-15T18:47:12.330Z",
"jobId": "spn2-187f801514744889f3b118c2ecba0e38fdebb299",
"url": "https://web.archive.org/web/20260915184735/https://www.w3.org/WAI/WCAG22/Understanding/change-on-request.html",
"timestamp": "20260915184735"
}
}
],
"relations": [
{
"target": "obstruction",
"kind": "conflicts_when",
"condition": "取消、退订或注销通道被刻意隐藏、拉长或设置障碍",
"reason": "阻碍退出或完成正是取消“紧急出口”,是对本原则的直接违反。",
"basis": "editorial"
},
{
"target": "modal-dialog",
"kind": "informs",
"condition": "模态对话框会阻断当前任务",
"reason": "模态必须提供带文字标签的关闭或取消,且关闭不应丢失用户已输入的内容。",
"basis": "editorial"
},
{
"target": "wizard",
"kind": "informs",
"condition": "多步流程中用户需要回到上一步或中途退出",
"reason": "向导的每一步都应有返回与取消,且退出时对未保存的进度给出提示而非静默丢弃。",
"basis": "editorial"
},
{
"target": "error-prevention",
"kind": "composes_with",
"condition": "操作既可能被误触发,又造成较高代价",
"reason": "错误预防在提交前阻止问题,用户控制与自由在问题发生后提供撤回;两者共同覆盖操作前后。",
"basis": "editorial"
},
{
"target": "calm-technology",
"kind": "related",
"condition": "系统主动推送、打断或自动改变界面",
"reason": "两者都主张把主动权留给用户,但平静技术关注信息强度与注意力,本原则关注退出与撤回通道。",
"basis": "editorial"
}
],
"rules": [
{
"when": "界面进入多步流程或模态对话框",
"instruction": "提供可见、带文字标签的取消、关闭或返回;离开时若会丢失已输入内容,必须先提示。",
"strength": "must",
"basis": "editorial"
},
{
"when": "操作会删除或不可逆地修改用户内容",
"instruction": "支持撤销,或在执行前提供确认;二者至少其一。",
"strength": "must",
"basis": "editorial"
},
{
"when": "系统可以自动跳转、刷新或提交",
"instruction": "在可行的情况下不要在无用户请求时改变上下文,改为由用户主动触发。",
"strength": "recommend",
"basis": "editorial"
}
],
"principle": {
"evidenceType": "可用性启发式与无障碍标准的设计解释",
"limit": "本词条不测量撤销或取消对任务完成率的影响,也不规定撤销窗口的时长或历史步数。"
},
"demo": null,
"version": "0.1.0",
"editorialStatus": "drafted",
"requirements": [],
"demoCapabilities": [],
"implementationNote": "本词条尚无可操作示例;插画为编辑示意。应用到产品时仍须验证每个模态与多步流程是否都有带标签的出口、撤销是否真正恢复数据,以及取消半完成流程时是否会静默丢失内容。",
"image": {
"src": "/images/user-control.webp",
"alt": "一张虚构编辑器的工具栏,撤销与重做箭头醒目,旁边是一个描边的取消按钮,角落有一个出口门图标。"
},
"searchTerms": [
"heuristics",
"undo",
"cancel",
"exit",
"reversible"
]
}