H3.11.4specific field-level error announcement设计

播报内容需要具体到字段与原因,而非笼统提示有误

别名: 具体播报 · named field error · 笼统有误

概念解释

开口了还不够。若朗读只有「有错误」或「请检查表单」,人不知道去哪个字段、改什么。播报要落到字段名和原因,好让恢复在听觉通道上也能选路。视觉上的三要素若没进朗读字符串,对屏幕阅读器用户就不存在。这条管播报文本的粒度,不管何时开口。

机制

听觉通道是线性的,不能扫视页顶摘要再扫字段。一句「有误」只触发「某处失败」的警报,下一步仍要在所有字段上盲搜。把字段名和原因放进同一句(「电话号码需要区号」),工作记忆一次拿到目标和修法,焦点移动才有目的地。多处错误时,播报首条加总数,其余留在各自字段上被读到,而不是用一句「多处有误」把清单吞掉。笼统句还会让人以为是系统故障而重试提交,而不是去改输入。

边界

字段名必须是可见标签的那个词,不能是内部 input_3。原因只说到能行动的粒度,不要把堆栈读出来。语言切换后,播报要用当前语言的字段名,否则具体变成噪声。密码类原因不能具体到「少了一个特殊符号」若这会帮助猜测;但仍应指向「密码」这个字段。

怎么落地

  • 状态消息或焦点所在字段的错误文本写成「标签 + 原因」,禁止单独的「出错了」。
  • 多错误时首句包含数量并读出第一条的字段名,其余在字段被聚焦时再读。
  • 检查可访问描述是否真的包含原因,而不是只在旁边另有一段视觉红字。
  • 验证:只听首句播报,问「改哪一个、为什么」。答不出字段名或原因,粒度就还停留在笼统警报。

延伸

  • 同组H3.11.1 错误信息出现时需要主动播报给屏幕阅读器用户 · H3.11.2 仅靠颜色变化传递错误状态的方式对播报无效 · H3.11.3 播报时机过早会打断用户正在进行的输入
  • 相邻H3.02 错误消息的三要素 · H1.06 错误汇总 · H1.15 表单的可访问性标注
  • 站内检索field-level announcement · error description · accessible error

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H3.11.4