先给结论:字符都在页面里,不等于比较关系能够被稳定还原
本次测试建立了十二组不关联任何真实品牌、客户或网站的最小 HTML 页面,只改变对比信息的承载方式。每组都围绕同一条合成事实:在指定版本、地区和日期下,甲产品支持批量导出,并有一条不可解析域名上的规格说明作为证据。检查器不运行 JavaScript,也不调用搜索或生成式模型,只从初始 HTML 建立文档树,判断五件事:是否存在原生表格,三列是否有明确列头,功能维度是否有明确行头,限定条件能否与结论关联,证据是否以链接形式直接落在结论单元格。
十二组中,九组在初始文档树中存在原生 table,八组同时提取到完整列头,八组提取到功能行头,七组把固定限定条件关联到结论,七组把证据链接直接关联到结论。只有“完整语义基线”“无 thead 但保留列 th”“限定条件由 aria-describedby 关联”和“证据链接与结论同单元格”四组通过全部五项;它们不是四种完全不同的最佳方案,其中有两组内容结构相同,只是用于分别验证基线与证据邻近。
失败原因也很具体。全部使用 td 的页面有表格,却没有可判定的表头;CSS 网格和 ARIA 模拟表格不符合这次原生表格规则;属性里的限定条件没有进入可见文本;裸 URL 与页尾来源没有形成直接证据链接;脚本字符串里虽然写了整张表,初始文档树仍只有空容器。结果说明,做对比内容时不能只问“页面里有没有这些字”,还要问对象、维度、条件和来源是否在结构上保持邻近。
这个结论不能扩大成“某种 HTML 一定被 AI 引用”。静态提取器不是浏览器、搜索爬虫或模型,五项通过也不是排名分数。它能证明的是,在公开规则固定的情况下,关系是否可直接复现;不能证明平台会抓取、索引、选择或推荐页面。
为什么要测对比表,而不是再做一次普通 HTML 检查
普通文章的段落主要按阅读顺序展开,一句话通常只依赖前后少量上下文。对比表不同:一个单元格的含义同时依赖列头和行头。“支持”单独出现没有对象,也没有维度;“标准版,中国大陆,2026 年 9 月”单独出现只是条件片段;“规格说明”单独出现又不知道支持哪项主张。只有这些关系被正确组合,读者或解析程序才能得到完整命题。
视觉设计很容易掩盖这种关系缺失。三列卡片可以排得像表格,第一行可以加粗得像表头,脚注可以在页面底部列得很整齐,但静态文档树未必知道哪列是谁、哪条脚注约束哪个结论。人类读者也可能在移动端换行、横向滚动或复制片段时丢掉对应关系。对比表不是“多写几个 th”就完成,而是把多维信息组织成可以复核的网格。
前一篇可核验对比内容指南解决的是内容层问题:怎样固定对象、统一维度、补齐条件并绑定证据。本次测试继续追问交付层问题:这些已经写对的内容进入 HTML 后,关系还在不在。事实正确但结构丢失,与结构完整但事实错误,是两类不同故障。
测试对象:十二个只改变一个主要变量的合成页面
所有页面使用相同语言、标题、比较对象和功能结论。列名固定为“维度、甲产品、乙产品”,行名固定为“批量导出”,限定条件固定为“适用条件:标准版,中国大陆,2026 年 9 月”,证据地址固定为 https://evidence.invalid/spec-v3。.invalid 是不可解析的保留用途域名,样本不会请求真实站点,也不会暴露任何内部材料。
十二组分别覆盖:带 caption、thead、列头和行头的完整基线;没有 thead 但保留 th scope="col";全部单元格都用 td;用普通 div 和 CSS 网格模拟;使用 ARIA table 角色模拟;限定条件与结论同单元格但删除固定前缀;用 aria-describedby 关联页外说明;只把条件放进 title 属性;证据链接与结论同格;只显示裸 URL;把证据集中放在页尾;以及通过脚本向空容器注入整张表。
这种设计不是互联网抽样,也不代表各类实现的市场比例。它是控制变量实验:每组页面都极小,便于定位某项通过或失败来自哪种写法。样本数量不能用来推断“多少网站存在问题”,结果只适用于这十二个输入和本次公开规则。
五项检查怎样定义
原生表格:初始文档树中存在不位于 script 或 template 内的 table。CSS 网格即使视觉上有行列,也不计入;ARIA table 角色也不等同于原生元素。本项故意严格,用来区分“视觉像表格”和“HTML 表格”。
列头:第一行恰好有三个 th scope="col"。HTML 标准能够推导更复杂的表头关系,但本次检查器不实现完整表格模型。固定显式 scope 可以让规则简单、结果可复现,也能避免把加粗 td 猜成表头。
行头:数据行第一格是 th scope="row",文本包含“批量导出”。这使“支持”能够绑定到具体维度,而不是只依赖视觉上的第一列位置。合并单元格、多级行头和 headers/id 复杂映射不在本次范围内。
限定条件关联:甲产品结论单元格直接包含完整限定字符串,或通过 aria-describedby 指向包含完整字符串的元素。只写“标准版、中国大陆、2026 年 9 月”但删除“适用条件:”前缀,在精确规则下失败;这不是说自然语言无法理解,而是用于证明检查口径不会偷偷做模糊推断。title 属性不计入可见文本,也不计关联成功。
证据关联:结论单元格内部存在 href 完全匹配证据地址的链接。裸 URL 只是文本,页尾链接虽然可点击,却没有从单元格映射回来,两者均失败。真实页面可以使用脚注编号、id 或显式引用关系,但必须把映射纳入检查器;不能因为“页尾有来源”就默认每个来源支持所有结论。
| 样本 | 原生表格 | 列头 | 行头 | 条件关联 | 证据关联 |
|---|---|---|---|---|---|
| 完整语义基线 | 是 | 是 | 是 | 是 | 是 |
| 无 thead 但保留列 th | 是 | 是 | 是 | 是 | 是 |
| 全部使用 td | 是 | 否 | 否 | 是 | 是 |
| CSS 网格模拟表格 | 否 | 否 | 否 | 否 | 否 |
| ARIA table 模拟表格 | 否 | 否 | 否 | 否 | 否 |
| 限定条件同格无固定前缀 | 是 | 是 | 是 | 否 | 是 |
| aria-describedby 关联条件 | 是 | 是 | 是 | 是 | 是 |
| 条件只在 title 属性 | 是 | 是 | 是 | 否 | 是 |
| 证据链接与结论同格 | 是 | 是 | 是 | 是 | 是 |
| 证据只有裸 URL 文本 | 是 | 是 | 是 | 是 | 否 |
| 证据在页尾且未映射 | 是 | 是 | 是 | 是 | 否 |
| 脚本注入表格 | 否 | 否 | 否 | 否 | 否 |
如何复现:先保存原始输入,再按关系输出布尔值
复现程序先为十二个名称生成完整 HTML 字符串,再用同一解析器建立树。它排除 script 和 template 内的 table,读取第一张原生表格,检查第一行列头,然后在其余行中寻找“批量导出”。找到目标行后,程序检查第一格的行头属性、第二格的文本和链接;若第二格带 aria-describedby,再按 id 查找说明元素。
每组输出五个布尔值,汇总只统计每项通过数量,不计算综合通过率。原因是五项不是同一权重,也不是所有页面都必须满足同一产品设计。没有原生表格的卡片页面可能对用户很好,但不能拿原生表格检查器的失败证明页面“不可访问”;正确动作是选择与实现匹配的检测规则,或在需要表达二维数据时改用更明确的结构。
精确字符串检查也有意保守。它不会把“适用于中国大陆标准版,截至九月”自动归一成固定限定条件,因为归一化规则一旦不公开,结果就无法稳定复现。生产检查可以加入日期、标点和同义表达规范化,但必须为数字、否定、范围和例外设置更严格的断言,防止相似文本表达相反事实。
复测时应固定样本、解析器版本、规则版本和运行日期。若后来支持复杂 headers/id、多级表头或渲染后 DOM,应把新结果标为不同口径,而不是直接覆盖旧数据。测试可比性来自输入与规则都稳定,不来自每次都输出一个看似统一的分数。
为什么没有计算总分:五项结果对应不同故障
把五项简单相加会制造错误优先级。列头缺失影响整列数据的对象归属,证据没有映射影响主张能否复核,脚本依赖则改变内容交付阶段;它们不是五个可以互相抵消的装饰项。一个页面即使得到四分,也可能恰好缺少决定事实真假的条件;另一个页面只通过三项,却可能在正文中提供了更完整解释。
生产环境更适合使用阻断规则与观察规则。对象、维度、否定词、价格周期和适用范围等关键关系缺失,应阻断发布;caption、thead 或来源呈现方式等改进项,可以根据表格复杂度与站点组件逐步处理。先定义风险,再决定规则强度,能够避免团队为了提高综合分而修饰低风险项目,却放过一个会让结论反转的缺陷。
报告也应保留逐项结果和失败位置。维护者需要知道是哪一行、哪一格、哪个 id 或链接出了问题,而不是只看到“可读性 80 分”。可行动的失败信息,远比一个跨页面比较的抽象分数更能减少事实漂移。
观察一:thead 不是本次成功的必要条件,明确的 th 与 scope 才是
完整基线和“无 thead”组都通过列头与行头检查。HTML 解析器会在某些情况下补建 tbody,thead 本身也不是所有简单表格的强制元素;本次规则真正依赖的是第一行三个 th scope="col" 和数据行的 th scope="row"。这说明结构层级与表头语义需要分开理解。
但这不意味着应该随意删除 thead。它能够把表头行与数据行分组,方便样式、脚本、重复表头和维护,也让复杂页面更容易阅读。测试只说明在这个最小三列表格里,无 thead 并未破坏显式表头;不能外推到多级表头、跨行合并或长表格。
WHATWG 的 HTML Living Standard 将 table 定义为多维数据,并给出表格模型以及数据单元格与表头单元格的关系形成规则;规范也指出,caption、thead、th、headers 与 scope 是判断数据表格的重要线索。工程上不必实现全部标准算法才能获得价值,但越复杂的表格,越不应依赖视觉猜测。
观察二:全部使用 td,文本完整却丢了“谁解释谁”
全部 td 组仍能读取限定条件和证据链接,因为这些内容确实位于第二行第二格;但是第一行没有列头,第一列也没有行头。检查器只能看到六个普通数据单元格,无法依据显式语义确认“甲产品”是列名、“批量导出”是维度。若后续新增排序、合并或响应式转换,靠位置猜测的关系更容易失效。
视觉加粗不能修复这个问题。CSS 可以把 td 画成任何样子,却不会把它变成 th。W3C Web Accessibility Initiative 的表格教程建议用表头单元格和 scope 标识简单表格的列头或行头,让辅助技术能够把表头与数据关联。对内容团队而言,这也是一种低成本机器可读性改进:写一次明确关系,多种读取方式都能受益。
观察三:CSS 网格与 ARIA 模拟表格需要专门规则,不能冒充原生基线
CSS 网格组没有 table、tr、th 或 td,本次五项全部失败。它可能在浏览器里排列得和表格完全一样,但文档树只是一串 div。要从中提取关系,程序需要了解类名、DOM 顺序或额外属性;这些约定一旦改版,解析规则也要改变。
ARIA table 组同样不计原生表格。它已经提供 table、row、columnheader、rowheader 和 cell 角色,辅助技术可能据此建立另一套关系;只是本次检查器明确没有实现 ARIA 角色模型。因此结果应写成“未通过原生表格规则”,不能写成“ARIA 表格无语义”或“平台无法理解”。
这组差异提醒测试报告必须公开判定机制。若只公布“二组失败”,读者很容易误以为它们在所有工具里失败。真正可行动的选择是:普通二维数据优先使用原生表格;若产品确有虚拟滚动、交互编辑等原因必须使用自定义组件,就建立对应的无障碍、渲染和提取测试,不要拿一套规则覆盖全部实现。
观察四:条件需要进入可读取文本,并且要知道它约束哪条结论
完整条件直接写在结论单元格时通过;通过 aria-describedby 指向页外说明时也通过。两种方式都建立了可追踪关系。前者在复制、截取和移动端阅读时更稳,后者适合多个控件或单元格共享说明,但需要确保 id 唯一、说明文本真实可见、关联不会在模板重构中断开。
条件仅放在 title 属性的样本失败。title 往往依赖悬停,移动端不稳定,也不会进入本次可见文本提取。更重要的是,版本、地区和日期属于决定结论真假的核心信息,不应被降级成装饰提示。把它写进正文或明确关联的说明,读者无需猜测哪里可以触发隐藏信息。
删除固定前缀的样本也失败,是因为规则采用精确断言。实际读者当然可能看懂“支持标准版,中国大陆,2026 年 9 月”,但句法也可能被误读为产品名称或发布时间。使用“适用条件、截至、仅限、不包括”等关系词,能把条件角色说清楚。自动检查时则应按内容模板定义接受格式,不能临时为每个失败样本放宽规则。
观察五:页尾有来源,不代表证据已经支持某个单元格
证据链接与结论同单元格时,程序能直接形成主张—来源关系。裸 URL 文本组失败,因为它不是链接;读者仍可复制地址,但程序无法确认它是可导航证据。页尾来源组也失败,虽然页面上存在完全相同的链接,却没有脚注编号、锚点或其他映射指向“批量导出”结论。
很多长文把所有资料集中列在末尾,这对建立参考书目有用,却不自动证明每条产品差异。若十个来源支持二十个单元格,读者仍要猜谁支持谁。更稳妥的做法是把链接放在对应单元格或相邻解释段落,或使用可双向追踪的脚注标识。来源数量不是证据质量;关联、时效和内容是否真正支持主张才是。
外部链接也不能替代条件。规格页可能只说明某功能存在,却不说明测试页面采用的地区、套餐或日期;编辑需要把来源能证明的范围与自己的观察分开。若证据只支持“某版本有功能”,就不能用它证明“所有用户都能免费使用”。
观察六:脚本里有完整表格,初始 HTML 仍然没有表格
脚本注入样本把完整 table 字符串放进 JavaScript 模板文本,因此查看原始文件可以搜索到 table、th、条件和链接;但解析器不执行脚本,初始文档树只有一个空 div,五项全部失败。这再次说明“源码字符串含有内容”和“初始文档提供内容”不是同一检查。
Google 的 JavaScript SEO 文档说明,搜索处理 JavaScript 页面涉及抓取、渲染和索引,渲染后的 HTML 才可能包含脚本生成内容;文档也建议使用服务端渲染或预渲染,因为并非所有机器人都能运行 JavaScript。本文没有调用 Google 渲染,所以不能推断这个样本无法被索引。能确定的是,它比直接输出表格增加了脚本执行依赖。
真实测试应再增加渲染后 DOM 层。先保存 HTTP 响应,检查核心表格是否存在;再用浏览器执行脚本,检查最终表头、条件和链接是否一致;最后才观察公开平台能否抓取或展示。三个结果分别记录,不能把渲染成功写成收录成功,也不能把静态失败写成平台永久不可见。
从测试结果到生产页面:把比较命题作为一个不可拆散的单元
生产检查不应只统计有几个表格或链接,而应为每条高风险差异建立最小断言:对象列头必须存在,维度行头必须存在,结论必须包含状态,限定条件必须在同格或通过明确 id 关联,证据必须可导航且映射到结论。价格还要断言币种与周期,性能还要断言任务与样本,资格还要断言地区和对象。
表格之外应保留连续解释。移动端可能需要横向滚动,生成式系统也可能只截取部分页面;正文要先说明最关键的决策逻辑,再让表格承担重复字段。不要把所有限定都压成星号,也不要用一排勾选符号代替“默认、付费、有限、未确认”的状态词。
内容更新时,同一断言应重新运行。若产品版本改变,列头和条件可能仍通过,但事实已经过期;因此结构测试必须与事实责任、观察日期和证据复核结合。需要补齐价格、范围或效果条件时,可继续使用限定条件写作指南;结构规则不能替内容负责人判断证据是否足够。
常见误判与反例
误判一:有 table 就算机器可读。全部 td 组证明,容器存在不等于表头关系明确。还要检查 th、scope 和复杂表格映射。
误判二:ARIA 组失败,所以 ARIA 没用。失败只说明检查器没有实现该模型。报告规则与页面技术不匹配时,应更换规则或补充测试。
误判三:title 能放下所有限制。核心条件若只在属性里,用户难以稳定获得,静态正文也不会包含它。属性适合辅助提示,不适合承载决定真假的唯一信息。
误判四:文末列了来源就完成举证。没有映射时,来源不能自动绑定每条结论。尤其多对象、多版本页面,邻近和显式脚注很重要。
误判五:脚本字符串出现 table,所以服务器已经输出表格。只有执行脚本后 DOM 才成立。原始响应和渲染结果必须分开检查。
误判六:五项都通过就能被 AI 引用。这五项只验证静态结构。平台还会考虑抓取权限、索引、查询相关性、来源选择、内容质量和回答上下文。
误判七:精确条件失败说明自然语言错误。它只说明文字不符合本次固定断言。生产规则可以更灵活,但灵活边界要预先定义并保护数字、否定与例外。
测试边界与局限
本次测试没有加载外部 CSS,没有执行 JavaScript,没有模拟屏幕阅读器,也没有调用任何搜索引擎、AI 搜索或聊天模型。解析器只检查第一张原生表格和一个固定功能行,不支持嵌套表格、多级表头、colspan、rowspan、headers/id 完整算法、Shadow DOM、iframe 或客户端路由。
限定条件采用一个固定中文字符串,证据使用一个固定地址,结果不涉及语义相似度、重定向、HTTP 状态、来源可信度或页面内容是否真的支持主张。aria-describedby 只按 id 和完整文本判断,没有验证可访问名称计算,也没有覆盖多个 id 顺序。ARIA 模拟表格没有进行无障碍 API 测试。
样本是技术夹具,不是现实网站统计,更不是平台能力排名。九组原生表格、七组条件关联等数字只能描述这十二个有意设计的页面。即使公开网页通过相同检查,也不能保证模型收录、引用、推荐或产生业务转化。
发布前可执行检查清单
- 二维数据是否使用适合的结构,而不是只靠视觉排版制造行列?
- 简单表格的列头和行头是否使用 th,并通过 scope 明确方向?
- 每个“支持、有限、不支持、未确认”是否能绑定到具体对象和维度?
- 版本、地区、时间、资格与例外是否进入可读取文本?
- 条件若放在表外,是否有稳定、唯一且可验证的关联?
- 证据是否紧邻主张,或通过脚注和锚点明确映射?
- 裸 URL 是否改成描述性链接,链接目标是否与主张范围一致?
- 核心表格是否已经出现在初始 HTML,而不是只有脚本字符串或空容器?
- 是否分别检查原始响应、渲染后 DOM、移动端滚动和辅助技术体验?
- 自动规则是否保存样本、版本、运行日期和失败原因?
- 结构通过后,是否仍由内容负责人复核事实、证据和观察日期?
- 报告是否避免把静态通过率写成收录、引用、排名或推荐保证?
可直接引用的三个判断
对比表里的“支持”只有同时绑定对象列头、功能行头和适用条件,才构成可核验命题。
文末有来源只能证明页面列过资料;要证明某条差异,来源还需要与具体结论建立明确映射。
脚本字符串里出现完整表格,不等于初始 HTML 已经交付表格;响应、渲染和平台结果必须分层验证。
资料来源与下一步
表格语义依据截至 2026 年 9 月 24 日核对的 WHATWG HTML 表格标准和 W3C WAI 表格教程。前者定义表格模型、单元格与表头关系,后者给出简单与复杂表格的无障碍标记方法。本次最小检查只实现其中显式 th 与 scope 的一部分,不能替代完整规范验证。
脚本注入边界参考 Google JavaScript SEO 基础文档。内容证据与比较方法可再对照 Google 的高质量评测内容指南:展示证据、量化信息、差异、优缺点与适用场景,比单纯宣布谁更好更可核验。
下一步可从一张真实对比表中抽取五条最重要差异,为每条建立“列头—行头—结论—条件—证据”断言,再分别在服务器响应和渲染后页面运行。若答案或证据大量依赖折叠、隐藏节点、JSON-LD 或脚本,可继续阅读问答页面正文与 JSON-LD 一致性实测,把“字符存在”和“正文可读”分开检查。
