WEB Signal 508
90.5% of top 2,655 websites ship HTML errors; only 2.6% are fully valid
An audit of 2,655 most-visited websites found 90.5% ship at least one HTML spec violation, with a median of 12 errors per site, and only 69 sites, 2.6%, return completely clean markup.
The most common errors are not hand-written typos but structural nesting problems, <style> inside <div>, missing button types, heading-level skips, that arise when component frameworks compose elements without knowing their parent context. Many of these findings overlap with accessibility checks (missing alt, unlabelled inputs, broken heading hierarchy) that have been a compliance surface since the European Accessibility Act took effect in June 2025. Fixing them at the template or framework layer will move more sites than chasing each error in the rendered output.
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
90.5% of the 2,655 audited sites ship at least one HTML spec violation, with a median of 12 errors per site and a worst case of 2,209 errors on a single page.
The single most common finding, present on 59.5% of sites, is a <style> element nested inside a <div>, a build-time template problem, not a hand-written typo.
65.1% of sites have at least one CSS error, but the median count is one, usually a single invalid property value that the browser silently drops.
THE READ
What the cluster adds up to.
The headline numbers describe a measurement, not a release. Of 2,655 most-visited sites, 2,402 returned at least one HTML spec violation on the home page, leaving 69 to 2.6%, fully clean. The median site has 12 errors and the mean 37.8, so the distribution is heavily skewed: most sites break a small number of rules a few times, while a long tail pushes the average up. The worst audited site returned 2,209 errors, and 220 distinct message families appear in the dataset, 187 of them outright spec violations. Counting occurrences hides this, a single template bug repeated across every component is one rule broken, not thousands of independent issues.
The most common finding is structural rather than typographic. The leading message, present on 59.5% of sites, is that a <style> element appears as content of a <div>, a nesting problem that no developer writes by hand. It happens when component frameworks drop a styled fragment into an arbitrary container without knowing what element it is being placed inside. The next several findings follow the same shape: missing type attributes on <button> and <script>, duplicate IDs, unclosed tags, and heading levels that skip from <h1> to <h3>. These are template and framework output, not hand-edited HTML, and the implication for someone fixing this is that the leverage is in the component layer, not in patching the rendered markup.
The CSS picture differs in shape even though the prevalence is similar. 65.1% of sites have at least one CSS error, but the median count is 1 and the mean 7.1, and the dominant message is a single invalid value for a given property. Browsers drop bad declarations silently and render the rest, which is why these errors persist in production for years without anyone noticing. HTML errors accumulate because they reflect build-time choices no one audits; CSS errors stay hidden because the runtime cost of one bad line is usually zero.
Accessibility is woven into the same dataset. The findings the accessibility checker keeps, unlabelled inputs, links with no text, heading-level skips, missing alt attributes, each appear on more than a third of audited sites. With the European Accessibility Act applicable since June 2025, those same markup problems have moved from a style preference to a compliance surface. The audit data does not say how many sites are non-compliant in legal terms, but it does say the technical preconditions for compliance are absent on most of the web.
For an engineer reading this, the operational takeaway is methodological. Auditing by raw error count is misleading; the underlying rules, not their repetition, are what get fixed. The cheapest improvements are template-level: a <style> child restriction in the component, a default type on <button>, a heading-level check, an alt attribute on image components. None of this is new advice, but the data shows it remains unaddressed on roughly nine in ten top sites, and the browser's error recovery is the only reason none of it is breaking visibly.
Written by elseif from the cluster below · checked for specifics the sources never containedTHE CLUSTER