粘贴 HTML,检查 id
把页面 HTML 粘到下面,工具在浏览器本地统计 id 数量、重复名称与多余出现,并检查 label for、aria 引用与 href="#id" 锚点是否能找到目标。不联网、不上传,结果可导出 CSV。
尚未检查。
内置自检运行中…
统计口径
| 指标 | 定义 | 边界 |
|---|---|---|
| id | 静态 HTML 中 id="…" 的出现次数 | script/style/注释内的字符串剔除 |
| 重复名称 | 同名出现超过一次的名称数 | 大小写按原样 |
| 多余出现 | 每个重复名称的次数减 1 后求和 | 不是重复名称数 |
| 引用 | label for、aria idrefs、href="#id" | 只查存在性,不查顺序 |
| 悬空引用 | 目标 id 在文档中不存在 | 重复目标仍算存在 |
工具只做字符串解析:不构建 DOM、不执行脚本、不判断引用是否指向正确元素。与 Python 探针 scripts/id_uniqueness_probe.py 同口径,另加 href="#id" 锚点检查;Node 断言在 scripts/test_id_check.js,共 11 项,运行 node scripts/test_id_check.js。
隐私:解析在本页完成,没有网络请求;导出的 CSV 只含重复名称与缺失引用。带 #sample 打开页面会自动填入示例。
配套:首页 id 唯一性审计(25 站 48 个重复 id)、首页模板卫生审计、首页语义、键盘与 ARIA。
常见问题
工具会上传 HTML 吗?
不会。解析全部在浏览器里完成,没有网络请求;内容不会保存或发送。
为什么先剥离 script 与 style?
模板字符串里的 id="…" 不是真实属性,会把重复数撑大;工具只看静态 HTML。
重复 id 有什么影响?
它是 HTML 校验错误,也会让 getElementById、页内锚点和 aria 目标只命中第一个元素。
为什么 0 个悬空还要看重复?
重复 id 仍算“存在”,引用可能指向错误元素;工具把重复与悬空分开列。
支持哪些引用?
label for、aria-labelledby/describedby/controls/owns/activedescendant,以及 href="#id" 锚点。