Design Vocabulary设计词汇 · 样本集 01

VOCABULARY / 词条

错误预防

Error Prevention

加入比较 +

好的错误信息固然重要,但更好的设计会在问题发生之前就阻止它:消除容易出错的条件,或在用户提交前检查并提供确认机会。错误分为无意识的失误(slip)与源于错误心智模型的差错(mistake),两者需要不同的预防手段。

示意图 · 编辑插画,尚无可操作示例
一张虚构表单,日期字段的选择器只允许有效日期,删除按钮旁有一个小确认框并提示可撤销。
一张虚构表单,日期字段的选择器只允许有效日期,删除按钮旁有一个小确认框并提示可撤销。

识别特征

  • 输入被约束在合法范围内,或提供合理默认值与建议
  • 高代价或不可逆操作前有检查、确认或可撤销机制
  • 预防力度与错误代价成比例,而非一视同仁

概念边界

错误预防关注错误发生之前的设计,不是错误信息与恢复流程(那属于 Nielsen 第九条启发式);行内校验只是它的一种实现,不等同于原则本身;它也不主张为每个操作都弹确认。

什么时候考虑它

  • 操作会造成法律承诺、金融交易、数据删除或修改等高代价后果
  • 输入存在明确的合法范围,如日期、数量、格式
  • 用户在熟练的自动化操作中容易走神,产生失误

什么时候慎用

  • 把预防手段用在低代价、可轻易撤销的日常操作上,反而制造摩擦
  • 用警告替代本可以通过约束或默认值消除的错误条件
  • 让约束过于僵硬,以至于合法的边缘输入也被拒绝

取舍

预防能减少高代价错误与挫败感,但每一道约束、确认或检查都会增加操作步骤;过度使用会让用户习惯性跳过确认,反而削弱其保护作用。

条件规则 · 编辑建议

当操作不可逆或代价高昂必须提供可撤销、提交前检查或审阅确认三者之一。
当输入有明确的合法范围或格式建议优先用约束、默认值和宽容格式让失误无法发生,而不是事后警告。
当操作是低代价、可轻易撤销的日常动作建议不要弹出确认对话框;频繁确认会被习惯性跳过。

相关词条

模态对话框 ↗具体体现 · 操作不可逆或代价高,且无法提供撤销

提交前的模态确认是一种检查与确认机制;对可撤销的日常操作则不必使用。

识别优于回忆 ↗可以配合 · 差错源于用户需要记住格式、代码或前序信息

把所需信息放在操作旁边可减少记忆负担,从而减少差错。

包容性设计 ↗提供解释 · 页面涉及法律、金融或用户数据的提交

WCAG 3.3.4 把可撤销、检查或确认列为 AA 级要求,因为残障用户更可能出错或未察觉错误。

来源与支持范围

NN/g · 10 Usability Heuristics for User Interface Design ↗

第五条启发式:最好的设计会预防问题发生,做法是消除易错条件或在用户提交前检查并提供确认;应优先预防高代价错误,用约束和默认值避免失误,用减少记忆负担、支持撤销和适当警告避免差错。

检索日期:2026-09-15
NN/g · Preventing User Errors: Avoiding Unconscious Slips ↗

失误指用户想做某个动作却做成另一个相似动作;可用有帮助的约束、建议、良好默认值和宽容的格式来预防。

检索日期:2026-09-15
NN/g · Preventing User Errors: Avoiding Conscious Mistakes ↗

差错源于用户不正确的心智模型;可通过收集用户数据、遵循惯例、清晰的能供性、预览结果、减少记忆负担、破坏性操作前确认、支持撤销来预防。

检索日期:2026-09-15
W3C · Understanding SC 3.3.4: Error Prevention (Legal, Financial, Data) ↗

WCAG 2.2 AA 级要求:造成法律承诺、金融交易、修改或删除用户数据、提交测试答案的页面,至少满足可撤销、已检查并可更正、或提交前可审阅确认之一。

检索日期:2026-09-15 · 存档于 2026-09-16

定义参考以上来源;数字界面示例、选择建议、条件关系及配方由本样例编辑,尚未经用户研究验证。

类型扩展与实现说明

本词条尚无可操作示例;插画为编辑示意。应用到产品时仍须验证约束是否拒绝合法输入、确认是否只出现在高代价操作上,以及撤销是否真正可用。

{
  "evidenceType": "可用性启发式与无障碍标准的设计解释",
  "limit": "本词条不测量各预防手段的错误率降幅,也不规定何种代价阈值必须确认。"
}
完整 Agent 条目 JSON
{
  "id": "error-prevention",
  "type": "principle",
  "name": {
    "zh": "错误预防",
    "en": "Error Prevention"
  },
  "aliases": [
    "Nielsen Heuristic #5",
    "防错设计",
    "Prevent Errors"
  ],
  "granularity": "experience",
  "intents": [
    "confirm-action",
    "prevent-error"
  ],
  "tags": [
    "启发式",
    "失误",
    "错误",
    "确认",
    "约束"
  ],
  "definition": "好的错误信息固然重要,但更好的设计会在问题发生之前就阻止它:消除容易出错的条件,或在用户提交前检查并提供确认机会。错误分为无意识的失误(slip)与源于错误心智模型的差错(mistake),两者需要不同的预防手段。",
  "boundary": "错误预防关注错误发生之前的设计,不是错误信息与恢复流程(那属于 Nielsen 第九条启发式);行内校验只是它的一种实现,不等同于原则本身;它也不主张为每个操作都弹确认。",
  "signature": [
    "输入被约束在合法范围内,或提供合理默认值与建议",
    "高代价或不可逆操作前有检查、确认或可撤销机制",
    "预防力度与错误代价成比例,而非一视同仁"
  ],
  "when": [
    "操作会造成法律承诺、金融交易、数据删除或修改等高代价后果",
    "输入存在明确的合法范围,如日期、数量、格式",
    "用户在熟练的自动化操作中容易走神,产生失误"
  ],
  "when_not": [
    "把预防手段用在低代价、可轻易撤销的日常操作上,反而制造摩擦",
    "用警告替代本可以通过约束或默认值消除的错误条件",
    "让约束过于僵硬,以至于合法的边缘输入也被拒绝"
  ],
  "tradeoff": "预防能减少高代价错误与挫败感,但每一道约束、确认或检查都会增加操作步骤;过度使用会让用户习惯性跳过确认,反而削弱其保护作用。",
  "comparison": {
    "focus": "错误是否能在发生前被避免",
    "mechanism": "消除易错条件,或在提交前检查与确认",
    "cost": "额外的步骤、约束的维护成本,以及对错误代价的判断"
  },
  "sources": [
    {
      "id": "nng-heuristics-error-prevention",
      "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-slips",
      "title": "NN/g · Preventing User Errors: Avoiding Unconscious Slips",
      "url": "https://www.nngroup.com/articles/slips/",
      "claim": "失误指用户想做某个动作却做成另一个相似动作;可用有帮助的约束、建议、良好默认值和宽容的格式来预防。",
      "checkedAt": "2026-09-15",
      "archive": {
        "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/slips/",
        "status": "available",
        "checkedAt": "2026-09-15T18:22:06.816Z",
        "jobId": "spn2-4ad7af99a4084ca6c55fd0ba66df8e64db212872",
        "url": "https://web.archive.org/web/20260915182230/https://www.nngroup.com/articles/slips/",
        "timestamp": "20260915182230"
      }
    },
    {
      "id": "nng-mistakes",
      "title": "NN/g · Preventing User Errors: Avoiding Conscious Mistakes",
      "url": "https://www.nngroup.com/articles/user-mistakes/",
      "claim": "差错源于用户不正确的心智模型;可通过收集用户数据、遵循惯例、清晰的能供性、预览结果、减少记忆负担、破坏性操作前确认、支持撤销来预防。",
      "checkedAt": "2026-09-15",
      "archive": {
        "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/user-mistakes/",
        "status": "available",
        "checkedAt": "2026-09-15T18:22:42.431Z",
        "jobId": "spn2-d1543a368ce11da2d64e4a1254edd78011915b98",
        "url": "https://web.archive.org/web/20260915182344/https://www.nngroup.com/articles/user-mistakes/",
        "timestamp": "20260915182344"
      }
    },
    {
      "id": "wcag22-sc334",
      "title": "W3C · Understanding SC 3.3.4: Error Prevention (Legal, Financial, Data)",
      "url": "https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data.html",
      "claim": "WCAG 2.2 AA 级要求:造成法律承诺、金融交易、修改或删除用户数据、提交测试答案的页面,至少满足可撤销、已检查并可更正、或提交前可审阅确认之一。",
      "checkedAt": "2026-09-15",
      "archive": {
        "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data.html",
        "status": "available",
        "checkedAt": "2026-09-16T04:00:13.756Z",
        "jobId": "spn2-a2bf6eb9a9eda64f0ecf111bca4833c22543ba4b",
        "url": "https://web.archive.org/web/20260916040037/https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data.html",
        "timestamp": "20260916040037"
      }
    }
  ],
  "relations": [
    {
      "target": "modal-dialog",
      "kind": "realized_by",
      "condition": "操作不可逆或代价高,且无法提供撤销",
      "reason": "提交前的模态确认是一种检查与确认机制;对可撤销的日常操作则不必使用。",
      "basis": "editorial"
    },
    {
      "target": "recognition",
      "kind": "composes_with",
      "condition": "差错源于用户需要记住格式、代码或前序信息",
      "reason": "把所需信息放在操作旁边可减少记忆负担,从而减少差错。",
      "basis": "editorial"
    },
    {
      "target": "inclusive-design",
      "kind": "informs",
      "condition": "页面涉及法律、金融或用户数据的提交",
      "reason": "WCAG 3.3.4 把可撤销、检查或确认列为 AA 级要求,因为残障用户更可能出错或未察觉错误。",
      "basis": "editorial"
    }
  ],
  "rules": [
    {
      "when": "操作不可逆或代价高昂",
      "instruction": "提供可撤销、提交前检查或审阅确认三者之一。",
      "strength": "must",
      "basis": "editorial"
    },
    {
      "when": "输入有明确的合法范围或格式",
      "instruction": "优先用约束、默认值和宽容格式让失误无法发生,而不是事后警告。",
      "strength": "recommend",
      "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/error-prevention.webp",
    "alt": "一张虚构表单,日期字段的选择器只允许有效日期,删除按钮旁有一个小确认框并提示可撤销。"
  },
  "searchTerms": [
    "heuristics",
    "slips",
    "errors",
    "confirmation",
    "constraints"
  ]
}