Design Vocabulary设计词汇 · 样本集 01

VOCABULARY / 词条

状态消息

Status Message

加入比较 +

在不改变用户上下文的前提下,简短报告一次操作的结果、等待状态或错误存在的内容变化;它可由辅助技术在不获得焦点的情况下播报。

示意图 · 编辑插画,尚无可操作示例
虚构的 FIELDNOTES 页面底部滑出一条深色小条:左侧是绿色对勾图标,中间一段短文字条,右侧一个小按钮,上方的卡片网格保持原样未被遮挡。
虚构的 FIELDNOTES 页面底部滑出一条深色小条:左侧是绿色对勾图标,中间一段短文字条,右侧一个小按钮,上方的卡片网格保持原样未被遮挡。

识别特征

  • 紧随操作出现,简短并指向具体对象
  • 不遮挡、不夺取焦点,主内容保持可用
  • 带有成功、错误或提示的明确语义

概念边界

状态消息只报告结果或状态,不承载连续量化的进度(那是确定进度条),也不阻断当前任务要求回应(那是模态对话框)。Toast 与 Snackbar 是它的呈现变体,不是独立概念。

什么时候考虑它

  • 操作已完成或失败,用户需要一句确认
  • 反馈不需要用户立即回应或决定
  • 同一页面内容更新,但不应打断当前任务

什么时候慎用

  • 错误必须处理后才能继续,且消息会自动消失
  • 需要报告可量化的持续进度
  • 需要用户做出不可撤销的决定

取舍

非阻断的反馈保持了任务流畅,但短暂显示的消息容易被错过,且频繁播报会让读屏用户感到嘈杂。

条件规则 · 编辑建议

当状态消息以标记语言实现必须通过 role=status、role=alert 或 aria-live 等实时区域让辅助技术播报,不得移动焦点。
当错误需要用户处理后才能继续必须消息必须持续显示直至被处理,不能自动消失。
当撰写消息文案建议点明具体操作与对象,避免笼统的“操作成功”或“出错了”。

相关词条

确定进度条 ↗相关但不同 · 任务有开始、进行与结束

进度条表达过程中的完成量,状态消息报告终态结果。

模态对话框 ↗条件替代 · 反馈是否需要用户先回应

无需回应时用非阻断的状态消息;必须决定或确认时才升级为模态对话框。

平静技术 ↗具体体现 · 反馈保持简短且不夺取注意力

状态消息把信息放在注意力边缘,是平静技术在微交互层面的一种落地。

来源与支持范围

W3C · Understanding SC 4.1.3 Status Messages (WCAG 2.2) ↗

AA 级准则要求状态消息可通过角色或属性被程序化确定,使辅助技术在不获得焦点的情况下呈现;状态消息定义为报告操作成功或结果、等待状态、进度或错误存在的非上下文改变。

检索日期:2026-09-15 · 快照待确认
W3C · ARIA Authoring Practices Guide · Alert Pattern ↗

警报以不打断任务的方式显示简短重要消息,不得影响键盘焦点;应避免自动消失的警报和过于频繁的打断。

检索日期:2026-09-15 · 快照待确认
NN/g · Indicators, Validations, and Notifications ↗

区分需要用户行动的消息与被动消息:前者应打断并要求处理后才能关闭,后者宜用不显眼的非模态弹出并可自动消失。

检索日期:2026-09-15 · 快照待确认

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

类型扩展与实现说明

尚无可操作样本;插图为编辑示意。产品中仍需验证读屏是否实际播报、消息驻留时长、动作按钮的键盘可达性,以及减少动态效果下的表现。

{
  "states": [
    "hidden",
    "success",
    "info",
    "error"
  ],
  "a11y": [
    "使用实时区域播报,不移动焦点",
    "一般状态用 status,需要立即注意的错误用 alert,避免过于嘈杂"
  ],
  "motion": "滑入可简化为淡入;启用减少动态效果时直接出现"
}
完整 Agent 条目 JSON
{
  "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": "pending",
        "checkedAt": "2026-09-15T18:35:44.910Z",
        "error": "status-request-failed",
        "jobId": "spn2-2f1c0e8f56c74acc0181032b2c86b53260ff4025"
      }
    },
    {
      "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": "pending",
        "checkedAt": "2026-09-15T18:36:00.855Z",
        "error": "status-request-failed",
        "jobId": "spn2-b5545afc78a86863c008b6e5d498847f905a438a"
      }
    },
    {
      "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": "pending",
        "checkedAt": "2026-09-15T18:36:07.048Z",
        "error": "status-request-failed",
        "jobId": "spn2-271c1c4765ed6d069b4967ea3c07dd0586e6ede2"
      }
    }
  ],
  "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"
  ]
}