渐进式编程课
Vue 目录
第 16 课2026.09.21

让辅助技术知道时长输入是否无效,以及对应提示位于哪里。

第 16 课:关联输入框与错误提示

  • 日期:2026-09-21
  • 课程序号:第 16 课
  • 知识点:用 ARIA 属性关联输入框与错误提示

用途或适用场景

让辅助技术知道时长输入是否无效,以及对应提示位于哪里。

核心概念

沿用 valid;用户首次离开字段后才用 aria-invalid 标记已验证出的错误,并用 aria-describedby 指向错误提示的 id。

最小代码或操作示例

text
const touched = ref(false)
<input v-model.number="minutes" type="number" min="1" max="60"
  @blur="touched = true" :aria-invalid="touched && !valid"
  :aria-describedby="touched && !valid ? 'minutes-error' : undefined">
<p v-if="touched && !valid" id="minutes-error">请输入 1 到 60 分钟</p>

3~5 分钟练习

输入 0,检查输入框的两个 ARIA 属性和提示元素的 id。

参考答案

离开输入框后,aria-invalid 为 true,aria-describedby 与提示的 id="minutes-error" 一致;在用户首次验证前不标记错误。

与上一课的联系

沿用第 15 课提交前使用的 minutes、valid 和已有错误提示;本课只新增输入框与提示之间的 ARIA 关联;完成练习后下一课可让无效提交立即显示这条提示。

时效校验

时效校验:2026-09-23(保留原日期与课号;Vue 3 当前属性绑定指南与 W3C WAI ARIA21 技术页;修正为首次验证后才设置 aria-invalid=true,未见废弃说明)。

官方参考