VOCABULARY / 词条
状态消息
Status Message
在不改变用户上下文的前提下,简短报告一次操作的结果、等待状态或错误存在的内容变化;它可由辅助技术在不获得焦点的情况下播报。
示意图 · 编辑插画,尚无可操作示例

识别特征
- 紧随操作出现,简短并指向具体对象
- 不遮挡、不夺取焦点,主内容保持可用
- 带有成功、错误或提示的明确语义
概念边界
状态消息只报告结果或状态,不承载连续量化的进度(那是确定进度条),也不阻断当前任务要求回应(那是模态对话框)。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"
]
}