diff --git a/.ua/backlog.json b/.ua/backlog.json index f78684c..ed9defb 100644 --- a/.ua/backlog.json +++ b/.ua/backlog.json @@ -3455,6 +3455,15 @@ "acceptance": "verify 新增检查:skin 包 toast.ts 必须含 aria-live 容器与 alert 抢占播报,删掉任一处即红", "status": "done", "notes": "" + }, + { + "id": "g341", + "domain": "tune", + "title": "表单错误文案补读屏关联:只标 aria-invalid 等于只说「无效」不说原因", + "motivation": "formItem 校验失败时目前只给控件涂 aria-invalid,错误文案是一个没有 id 的 div。读屏用户 Tab 到字段只会听到「无效编辑框」,听到「至少 6 个字符」这类具体原因必须先离开输入框去找下面那行小字——所见与非所见两条体验分叉。同时 hint 辅助说明也没有关联,正常态下同样念不到。", + "acceptance": "① error / hint 各自带派生 id(全页唯一,多表单不串号);② paint 时把 aria-describedby 落到控件根与内部原生控件:有错指错误区、无错指 hint(若存在)、都没有则摘掉属性;③ ua verify 新增三条断言(错误区派生 id / aria-describedby 落笔 / 校验通过后清除)把行为钉住;④ npm run check 全绿,样式与令牌零改动。", + "status": "done", + "notes": "" } ] } diff --git a/.ua/iterations.log b/.ua/iterations.log index e23bdbf..868a838 100644 --- a/.ua/iterations.log +++ b/.ua/iterations.log @@ -385,3 +385,4 @@ {"ts":"2026-10-27T02:14:56+08:00","id":"g338","result":"done","commit":"28972a0","summary":"toast 容器补 aria-live=polite 兜底播报,error 级别 role=alert 抢占"} {"ts":"2026-10-27T02:17:29+08:00","id":"g339","result":"done","commit":"e5943aa","summary":"四方向 45° 菱形箭头继承气泡底色,全令牌零新增字面量"} {"ts":"2026-10-27T02:19:48+08:00","id":"g340","result":"done","commit":"21b98ad","summary":"verify 新增 toast live 检查(负向自检红/恢复绿),aria-live 与 alert 抢apost不再可回退"} +{"ts":"2026-10-27T02:22:54+08:00","id":"g341","result":"done","commit":"5d02c81","summary":"formItem 错误区与 hint 各带唯一 id,paint 时把 aria-describedby 落到控件(报错优先、无错指向 hint、都没有则摘掉),verify 补三条断言钉住"}