{
  "_description": "本文件由 data/ 生成：请改动来源文件，不要改这里。各字段的证据边界见接入指南。",
  "schemaVersion": "1.0.0",
  "kind": "entry",
  "locale": "zh-CN",
  "id": "status-message",
  "name": {
    "zh": "状态消息",
    "en": "Status Message"
  },
  "page": "https://designvocabulary.com/zh/entries/status-message/",
  "self": "https://designvocabulary.com/zh/entries/status-message.json",
  "alternates": {
    "zh-CN": "https://designvocabulary.com/zh/entries/status-message.json",
    "en": "https://designvocabulary.com/en/entries/status-message.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.behavior"
    ],
    "scope": "定义参考以上来源；数字界面示例、选择建议、条件关系及配方由本样例编辑，尚未经用户研究验证。",
    "editorialStatus": "drafted",
    "specimenData": "fictional",
    "specimenNote": "示例为原创虚构界面；定义附来源，用法与配方为编辑建议。",
    "sources": [
      {
        "id": "wcag22-status-messages",
        "url": "https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html",
        "title": "W3C · Understanding SC 4.1.3 Status Messages (WCAG 2.2)",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260921053839/https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html",
          "capturedAt": "2026-09-21T05:38:39Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html"
        }
      },
      {
        "id": "apg-alert",
        "url": "https://www.w3.org/WAI/ARIA/apg/patterns/alert/",
        "title": "W3C · ARIA Authoring Practices Guide · Alert Pattern",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260915183742/https://www.w3.org/WAI/ARIA/apg/patterns/alert/",
          "capturedAt": "2026-09-15T18:37:42Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/ARIA/apg/patterns/alert/"
        }
      },
      {
        "id": "nng-indicators-validations-notifications",
        "url": "https://www.nngroup.com/articles/indicators-validations-notifications/",
        "title": "NN/g · Indicators, Validations, and Notifications",
        "checkedAt": "2026-09-15",
        "archive": {
          "status": "available",
          "confirmed": true,
          "url": "https://web.archive.org/web/20260915183744/https://www.nngroup.com/articles/indicators-validations-notifications/",
          "capturedAt": "2026-09-15T18:37:44Z",
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/indicators-validations-notifications/"
        }
      }
    ],
    "lists": [
      {
        "id": "M-C",
        "edition": "classic",
        "seat": 7,
        "origin": "issue-1-ledger",
        "page": "https://designvocabulary.com/zh/lists/M-C/",
        "json": "https://designvocabulary.com/zh/lists/M-C.json"
      },
      {
        "id": "M-Y",
        "edition": "2026-focus",
        "seat": 7,
        "origin": "issue-1-ledger",
        "page": "https://designvocabulary.com/zh/lists/M-Y/",
        "json": "https://designvocabulary.com/zh/lists/M-Y.json"
      }
    ],
    "ordered": false,
    "listDisclaimer": "席位号是编辑位置，不是评分、排名或人气统计；清单未收满时保持原样，不补足。"
  },
  "entry": {
    "id": "status-message",
    "type": "micro",
    "name": {
      "zh": "状态消息",
      "en": "Status Message"
    },
    "aliases": [
      "Toast",
      "Snackbar",
      "轻提示"
    ],
    "granularity": "state",
    "intents": [
      "inform",
      "reduce-interruption"
    ],
    "tags": [
      "反馈",
      "操作结果",
      "非阻断",
      "通知",
      "toast"
    ],
    "definition": "在不改变用户上下文的前提下，简短报告一次操作的结果、等待状态或错误存在的内容变化；它可由辅助技术在不获得焦点的情况下播报。",
    "boundary": "状态消息只报告结果或状态，不承载连续量化的进度（那是确定进度条），也不阻断当前任务要求回应（那是模态对话框）。Toast 与 Snackbar 是它的呈现变体，不是独立概念。",
    "signature": [
      "紧随操作出现，简短并指向具体对象",
      "不遮挡、不夺取焦点，主内容保持可用",
      "带有成功、错误或提示的明确语义"
    ],
    "when": [
      "操作已完成或失败，用户需要一句确认",
      "反馈不需要用户立即回应或决定",
      "同一页面内容更新，但不应打断当前任务"
    ],
    "when_not": [
      "错误必须处理后才能继续，且消息会自动消失",
      "需要报告可量化的持续进度",
      "需要用户做出不可撤销的决定"
    ],
    "tradeoff": "非阻断的反馈保持了任务流畅，但短暂显示的消息容易被错过，且频繁播报会让读屏用户感到嘈杂。",
    "comparison": {
      "focus": "告诉用户刚才的操作结果如何",
      "mechanism": "实时区域内的短暂内容变化",
      "cost": "易被错过，需要持久化与频率控制"
    },
    "sources": [
      {
        "id": "wcag22-status-messages",
        "title": "W3C · Understanding SC 4.1.3 Status Messages (WCAG 2.2)",
        "url": "https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html",
        "claim": "AA 级准则要求状态消息可通过角色或属性被程序化确定，使辅助技术在不获得焦点的情况下呈现；状态消息定义为报告操作成功或结果、等待状态、进度或错误存在的非上下文改变。",
        "checkedAt": "2026-09-15",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html",
          "status": "available",
          "checkedAt": "2026-09-22T14:39:07.505Z",
          "jobId": "spn2-2f1c0e8f56c74acc0181032b2c86b53260ff4025",
          "url": "https://web.archive.org/web/20260921053839/https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html",
          "timestamp": "20260921053839"
        }
      },
      {
        "id": "apg-alert",
        "title": "W3C · ARIA Authoring Practices Guide · Alert Pattern",
        "url": "https://www.w3.org/WAI/ARIA/apg/patterns/alert/",
        "claim": "警报以不打断任务的方式显示简短重要消息，不得影响键盘焦点；应避免自动消失的警报和过于频繁的打断。",
        "checkedAt": "2026-09-15",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.w3.org/WAI/ARIA/apg/patterns/alert/",
          "status": "available",
          "checkedAt": "2026-09-22T14:39:08.986Z",
          "jobId": "spn2-b5545afc78a86863c008b6e5d498847f905a438a",
          "url": "https://web.archive.org/web/20260915183742/https://www.w3.org/WAI/ARIA/apg/patterns/alert/",
          "timestamp": "20260915183742"
        }
      },
      {
        "id": "nng-indicators-validations-notifications",
        "title": "NN/g · Indicators, Validations, and Notifications",
        "url": "https://www.nngroup.com/articles/indicators-validations-notifications/",
        "claim": "区分需要用户行动的消息与被动消息：前者应打断并要求处理后才能关闭，后者宜用不显眼的非模态弹出并可自动消失。",
        "checkedAt": "2026-09-15",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20260915*/https://www.nngroup.com/articles/indicators-validations-notifications/",
          "status": "available",
          "checkedAt": "2026-09-22T14:39:11.765Z",
          "jobId": "spn2-271c1c4765ed6d069b4967ea3c07dd0586e6ede2",
          "url": "https://web.archive.org/web/20260915183744/https://www.nngroup.com/articles/indicators-validations-notifications/",
          "timestamp": "20260915183744"
        }
      }
    ],
    "relations": [
      {
        "target": "determinate-progress",
        "kind": "related",
        "condition": "任务有开始、进行与结束",
        "reason": "进度条表达过程中的完成量，状态消息报告终态结果。",
        "basis": "editorial"
      },
      {
        "target": "modal-dialog",
        "kind": "alternative",
        "condition": "反馈是否需要用户先回应",
        "reason": "无需回应时用非阻断的状态消息；必须决定或确认时才升级为模态对话框。",
        "basis": "editorial"
      },
      {
        "target": "calm-technology",
        "kind": "realized_by",
        "condition": "反馈保持简短且不夺取注意力",
        "reason": "状态消息把信息放在注意力边缘，是平静技术在微交互层面的一种落地。",
        "basis": "editorial"
      }
    ],
    "rules": [
      {
        "when": "状态消息以标记语言实现",
        "instruction": "通过 role=status、role=alert 或 aria-live 等实时区域让辅助技术播报，不得移动焦点。",
        "strength": "must",
        "basis": "editorial"
      },
      {
        "when": "错误需要用户处理后才能继续",
        "instruction": "消息必须持续显示直至被处理，不能自动消失。",
        "strength": "must",
        "basis": "editorial"
      },
      {
        "when": "撰写消息文案",
        "instruction": "点明具体操作与对象，避免笼统的“操作成功”或“出错了”。",
        "strength": "recommend",
        "basis": "editorial"
      }
    ],
    "requirements": [],
    "behavior": {
      "states": [
        "hidden",
        "success",
        "info",
        "error"
      ],
      "a11y": [
        "使用实时区域播报，不移动焦点",
        "一般状态用 status，需要立即注意的错误用 alert，避免过于嘈杂"
      ],
      "motion": "滑入可简化为淡入；启用减少动态效果时直接出现"
    },
    "demo": null,
    "version": "0.1.0",
    "editorialStatus": "drafted",
    "demoCapabilities": [],
    "implementationNote": "尚无可操作样本；插图为编辑示意。产品中仍需验证读屏是否实际播报、消息驻留时长、动作按钮的键盘可达性，以及减少动态效果下的表现。",
    "image": {
      "src": "/images/status-message.webp",
      "alt": "虚构的 FIELDNOTES 页面底部滑出一条深色小条：左侧是绿色对勾图标，中间一段短文字条，右侧一个小按钮，上方的卡片网格保持原样未被遮挡。"
    },
    "searchTerms": [
      "feedback",
      "action outcome",
      "non-blocking",
      "notification",
      "toast"
    ]
  }
}
