访问量最高的网站中仅有2.6%具有完全有效的HTML
原创研究 在Tranco前5000个域名中,有2655个提供了我们可以阅读的主页。我们对每一个域名使用了本站提供的免费验证工具,并统计了返回的结果:100,399个HTML规范违规和17,599个CSS错误,共有220种不同的消息类别。这是完整排名。发布时间:2026年8月11日 · 可免费引用并附上链接。 关键发现 90.5%的网站至少有一个HTML错误,2655个网站中有2402个。这不是警告,而是书面标准的违反。仅有2.6%的网站完全没有错误 只有69个网站返回零错误和零最佳实践警告。中位数网站的错误数量为12 平均数为37.8,最糟的网站有2,209个错误。少数尾部承载了大部分损害。65.1%的网站存在CSS错误 在2471个网站上进行测量,涵盖页面链接的每个样式表。中位数网站的CSS错误数量为1 CSS失败的表现不同:大多数网站只有一个错误声明,而不是数百个。平均数为7.1。 220个不同的消息类别 其中有187个是规范违反。整个网络的标记以可计数的方式失败。 数据所说的 有效的HTML是例外,而不是规则。在访问量最高的网站中,每10个网站中有9个在其主页上违反了标准,而仅有2.6%的网站完全没有问题。浏览器在错误恢复方面表现得如此出色,以至于没有什么要求迫使人们来修复这些问题,这正是为何它们会不断累积。分布极其不均。中位数网站的错误数量为12,平均为37.8,最糟的网站有2,209个。大多数网站都有几处错误重复出现;少数网站有一个模板错误在页面的每个组件中重复。如果你在审核一个网站,统计的数量远不如被违反的不同规则数量重要。这就是为什么我们的分数是按规则计算的,而不是按出现次数。最严重的错误是结构性错误,而不是打字错误。最常见的发现是<X>元素在<X>下不允许作为内容(59.5%的网站)。没有人会手动写这个。这是当组件由一个不知道它放在哪里的框架组合在一起时发生的。它是一个在构建时而不是在编辑器中产生的嵌套问题。可访问性失败几乎是普遍存在的。可访问性检查器保存的发现(标题级别、未标记的输入、没有文本的链接)每个都出现在超过三分之一的网站上。自2025年6月起适用的《欧洲可访问性法》,这是一种合规性表面,而非样式偏好。 CSS在一个地方出错,而不是到处出错。65.1%的网站存在CSS错误,但中位数为1,最常见的错误是`X`属性的无效值。一个声明有错误的样式表仍然可以渲染;浏览器会忽略这一行并继续。这种沉默正是这些问题在生产中存活多年之久的原因。 25种最常见的HTML发现 根据发出消息的不同网站数量进行排名,而不是根据原始出现次数。一个消息在单个网站上重复4000次仍然只算一个网站。 # 消息 网站数量 份额 1 <style>元素在<div>下不被允许作为内容 规范违反 · element-permitted-content · 如何修复 1581 59.5% 2 对于javascript资源,“type”属性是不必要的 最佳实践 · script-type · 如何修复 1452 54.7% 3 <button>缺少推荐的“type”属性 最佳实践 · no-implicit-button-type · 如何修复 1316 49.6% 4 更倾向于使用原生的<button>元素 最佳实践 · prefer-native-element · 如何修复 1107 41.7% 5 <img>缺少必需的“src”属性 规范违反 · element-required-attributes 1093 41.2% 6 锚链接必须具有文本描述其目的 最佳实践 · wcag/h30 · 如何修复 1001 37.7% 7 地标必须有唯一且非空的可访问名称(aria-label或aria-labelledby) 最佳实践 · unique-landmark · 如何修复 918 34.6% 8 初始标题级别必须是<h1>但得到了<h2> 最佳实践 · heading-level · 如何修复 823 31.0% 9 <input>元素没有<label> 最佳实践 · input-missing-label · 如何修复 797 30.0% 10 属性“target”的无效值“” 规范违反 · attribute-allowed-values · 如何修复 778 29.3% 11 <a>上的冗余角色“link” 最佳实践 · no-redundant-role · 如何修复 748 28.2% 12 标题级别只能增加一个,期望<h3>但得到了<h4> 最佳实践 · heading-level · 如何修复 668 25.2% 13 重复ID“porb” 规范违反 · no-dup-id · 如何修复 621 23.4% 14 <button>必须有可访问文本 最佳实践 · text-content · 如何修复 589 22.2% 15 在<a>元素上“name”属性已被弃用 规范违反 · no-deprecated-attr · 如何修复 512 19.3% 16 <img>缺少必需的“alt”属性 规范违反 · wcag/h37 · 如何修复 507 19.1% 17 类名“][”重复 最佳实践 · no-dup-class 447 16.8% 18 元素引用缺少id“Browse” 规范违反 · no-missing-references · 如何修复 432 16.3% 19 “aria-label”不能在该元素上使用 规范违反 · aria-label-misuse · 如何修复 428 16.1% 20 更倾向于使用<button>而非<input type="sub"
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡