{
  "_description": "本文件由 data/ 生成：请改动来源文件，不要改这里。各字段的证据边界见接入指南。",
  "schemaVersion": "1.0.0",
  "kind": "entry",
  "locale": "zh-CN",
  "id": "error-prevention",
  "name": {
    "zh": "错误预防",
    "en": "Error Prevention"
  },
  "page": "https://designvocabulary.com/zh/entries/error-prevention/",
  "self": "https://designvocabulary.com/zh/entries/error-prevention.json",
  "alternates": {
    "zh-CN": "https://designvocabulary.com/zh/entries/error-prevention.json",
    "en": "https://designvocabulary.com/en/entries/error-prevention.json"
  },
  "site": {
    "catalogSchemaVersion": "0.1.0",
    "entries": 158,
    "index": "https://designvocabulary.com/zh/entries/index.json",
    "query": "https://designvocabulary.com/api/query?lang=zh",
    "guide": "https://designvocabulary.com/zh/agents/",
    "llms": "https://designvocabulary.com/llms.txt"
  },
  "provenance": {
    "sourceBacked": [
      "entry.definition"
    ],
    "editorial": [
      "entry.boundary",
      "entry.signature",
      "entry.when",
      "entry.when_not",
      "entry.tradeoff",
      "entry.comparison",
      "entry.rules",
      "entry.relations",
      "entry.implementationNote",
      "entry.principle"
    ],
    "scope": "定义参考以上来源；数字界面示例、选择建议、条件关系及配方由本样例编辑，尚未经用户研究验证。",
    "editorialStatus": "drafted",
    "specimenData": "fictional",
    "specimenNote": "示例为原创虚构界面；定义附来源，用法与配方为编辑建议。",
    "sources": [
      {
        "id": "nng-heuristics-error-prevention",
        "url": "https://www.nngroup.com/articles/ten-usability-heuristics/",
        "title": "NN/g · 10 Usability Heuristics for User Interface Design",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260915182252/https://www.nngroup.com/articles/ten-usability-heuristics/",
          "capturedAt": "2026-09-15T18:22:52Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/ten-usability-heuristics/"
        }
      },
      {
        "id": "nng-slips",
        "url": "https://www.nngroup.com/articles/slips/",
        "title": "NN/g · Preventing User Errors: Avoiding Unconscious Slips",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260915182230/https://www.nngroup.com/articles/slips/",
          "capturedAt": "2026-09-15T18:22:30Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/slips/"
        }
      },
      {
        "id": "nng-mistakes",
        "url": "https://www.nngroup.com/articles/user-mistakes/",
        "title": "NN/g · Preventing User Errors: Avoiding Conscious Mistakes",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260915182344/https://www.nngroup.com/articles/user-mistakes/",
          "capturedAt": "2026-09-15T18:23:44Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/user-mistakes/"
        }
      },
      {
        "id": "wcag22-sc334",
        "url": "https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data.html",
        "title": "W3C · Understanding SC 3.3.4: Error Prevention (Legal, Financial, Data)",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260916040037/https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data.html",
          "capturedAt": "2026-09-16T04:00:37Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/WCAG22/Understanding/error-prevention-legal-financial-data.html"
        }
      }
    ],
    "lists": [
      {
        "id": "P-C",
        "edition": "classic",
        "seat": 9,
        "origin": "issue-1-ledger",
        "page": "https://designvocabulary.com/zh/lists/P-C/",
        "json": "https://designvocabulary.com/zh/lists/P-C.json"
      },
      {
        "id": "P-Y",
        "edition": "2026-focus",
        "seat": 4,
        "origin": "issue-1-ledger",
        "page": "https://designvocabulary.com/zh/lists/P-Y/",
        "json": "https://designvocabulary.com/zh/lists/P-Y.json"
      }
    ],
    "ordered": false,
    "listDisclaimer": "席位号是编辑位置，不是评分、排名或人气统计；清单未收满时保持原样，不补足。"
  },
  "entry": {
    "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"
    ]
  }
}
