粘贴 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" 锚点。

先查 id,再查引用

重复 id 不显示在页面上,却会让锚点、标签和脚本只命中第一个元素。

预约内容验收方案