diff --git a/.ua/backlog.json b/.ua/backlog.json
index 104178f..2497845 100644
--- a/.ua/backlog.json
+++ b/.ua/backlog.json
@@ -3536,6 +3536,15 @@
"acceptance": "① autoComplete / mentions / multiSelect / select / segmented 五处容器补中文可访问名;② ua verify 新增 checkRoleNames:role listbox / radiogroup 的入参对象里必须有 aria-label 或 aria-labelledby,按花括号深度圈定本次 h(...) 入参避免误伤隔壁;③ 成功文案同步;④ 负向自检去掉一处名字即红;⑤ npm run check 全绿。",
"status": "done",
"notes": ""
+ },
+ {
+ "id": "g350",
+ "domain": "tune",
+ "title": "表格补 caption:读屏进表只念「表格」,几张表同屏就分不清",
+ "motivation": "dataTable 的
没有任何可访问名,读屏用户 Tab 进表只听到「表格 5 行 3 列」,不知道是用户表还是订单表。栅格里的表往往不止一张,caption 是 HTML 给表格准备的语义名字,视觉隐藏后不占位却能把这件事说清楚;此前 types 里连入口都没有,调用方想命名也做不到。",
+ "acceptance": "① DataTableProps 新增 caption,渲染为视觉隐藏的 (沿用 .ua-visually-hidden,零新增 CSS);② manifest 文档补 caption 参数、demo 用户表接上并说明;③ ua verify 新增 checkTableCaption(dataTable 渲染 caption + types 有入口);④ 负向自检删渲染即红;⑤ npm run check 全绿,dataTable.ts 仍 ≤200 行。",
+ "status": "done",
+ "notes": ""
}
]
}
diff --git a/.ua/iterations.log b/.ua/iterations.log
index 2da5e97..a9e7122 100644
--- a/.ua/iterations.log
+++ b/.ua/iterations.log
@@ -394,3 +394,4 @@
{"ts":"2026-10-27T02:31:56+08:00","id":"g347","result":"done","commit":"9172287","summary":"ua iter done 先取当前分支,非 qa/probe 直接退出码 2 并说明后果(--force 可绕过),ITERATION.md 留痕步骤写明护栏;负向自检在 stable 上被拒"}
{"ts":"2026-10-27T02:33:03+08:00","id":"g348","result":"done","commit":"3a46b24","summary":"只有一个原生控件时补派生 id 并让 label.for 指过去,自绘下拉与单选组改在容器/首个可聚焦元素写 aria-labelledby 指向 label id,verify 补 checkFormLabel 三条断言"}
{"ts":"2026-10-27T02:34:06+08:00","id":"g349","result":"done","commit":"a0e4eeb","summary":"五处容器补中文可访问名(输入建议/提及建议/选项列表×2/分段选择),verify 新增 checkRoleNames 按花括号深度圈定 h(...) 入参校验 listbox 与 radiogroup 的名字"}
+{"ts":"2026-10-27T02:35:27+08:00","id":"g350","result":"done","commit":"20a98d8","summary":"DataTableProps 新增 caption 渲染为视觉隐藏 caption(零新增 CSS),manifest 文档与 demo 用户表接上,verify 新增 checkTableCaption 校验渲染与入口两处"}