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

识别特征
- 输入被约束在合法范围内,或提供合理默认值与建议
- 高代价或不可逆操作前有检查、确认或可撤销机制
- 预防力度与错误代价成比例,而非一视同仁
概念边界
错误预防关注错误发生之前的设计,不是错误信息与恢复流程(那属于 Nielsen 第九条启发式);行内校验只是它的一种实现,不等同于原则本身;它也不主张为每个操作都弹确认。
什么时候考虑它
- 操作会造成法律承诺、金融交易、数据删除或修改等高代价后果
- 输入存在明确的合法范围,如日期、数量、格式
- 用户在熟练的自动化操作中容易走神,产生失误
什么时候慎用
- 把预防手段用在低代价、可轻易撤销的日常操作上,反而制造摩擦
- 用警告替代本可以通过约束或默认值消除的错误条件
- 让约束过于僵硬,以至于合法的边缘输入也被拒绝
取舍
预防能减少高代价错误与挫败感,但每一道约束、确认或检查都会增加操作步骤;过度使用会让用户习惯性跳过确认,反而削弱其保护作用。
条件规则 · 编辑建议
相关词条
提交前的模态确认是一种检查与确认机制;对可撤销的日常操作则不必使用。
把所需信息放在操作旁边可减少记忆负担,从而减少差错。
WCAG 3.3.4 把可撤销、检查或确认列为 AA 级要求,因为残障用户更可能出错或未察觉错误。
来源与支持范围
第五条启发式:最好的设计会预防问题发生,做法是消除易错条件或在用户提交前检查并提供确认;应优先预防高代价错误,用约束和默认值避免失误,用减少记忆负担、支持撤销和适当警告避免差错。
检索日期:2026-09-15失误指用户想做某个动作却做成另一个相似动作;可用有帮助的约束、建议、良好默认值和宽容的格式来预防。
检索日期:2026-09-15差错源于用户不正确的心智模型;可通过收集用户数据、遵循惯例、清晰的能供性、预览结果、减少记忆负担、破坏性操作前确认、支持撤销来预防。
检索日期:2026-09-15WCAG 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"
]
}