Research
Colour Contrast on the Web: A WCAG 2.1 Level AA Compliance Audit of Common Crawl's Top 500 Domains
Overview Research area: Web accessibility measurement (WCAG 2.1/2.2 Level AA colour contrast) combined with reproducible web-scale analysis of open crawl archives; submitted under cs.IR. Technical lev

- arXiv
- 2602.24067
- Published
- 2026-02-27
- Authors
- Thom Vaughan, Pedro Ortiz Suarez
AI summary
Overview
Research area: Web accessibility measurement (WCAG 2.1/2.2 Level AA colour contrast) combined with reproducible web-scale analysis of open crawl archives; submitted under cs.IR.
Technical level: Intermediate. The accessibility concepts are explained plainly, but the pipeline involves Common Crawl's Columnar Index, WARC byte-range retrieval, CSS parsing, and the WCAG relative-luminance formula.
Scope: A static, archive-based audit of declared CSS foreground/background colour pairings on the homepages of the 500 most frequently crawled registered domains in Common Crawl's CC-MAIN-2026-08 crawl, measured against WCAG 2.1 Level AA contrast thresholds.
What This Paper Is About
Colour contrast is one of the most measurable WCAG success criteria, yet prior large-scale accessibility audits (such as the WebAIM Million) rely on live crawling and browser rendering, which makes results hard to reproduce and places load on target servers. This paper asks whether meaningful, deterministic accessibility analysis can instead be performed directly on archived WARC content from Common Crawl. It audits the top 500 crawled domains for WCAG 2.1 Level AA colour contrast compliance using only static HTML and CSS present in the archived captures.
Key Contributions
- A large-scale WCAG 2.1 Level AA colour contrast audit of the 500 most frequently crawled registered domains in Common Crawl's CC-MAIN-2026-08 archive, extracting 4,327 unique foreground/background colour pairings from 240 homepages.
- A fully reproducible, archive-only methodology: all content is sourced from Common Crawl's open WARC files rather than a live crawl, eliminating load on target servers and allowing any researcher to re-run the pipeline against the same crawl release for identical results.
- Evidence that declared CSS colour pairings yield usable accessibility signals without rendering: 1,771 of 4,327 pairings (40.9%) failed the 4.5:1 normal-text threshold, and 20.4% of analysed sites were fully compliant across all detected pairings.
- An open-source Python pipeline (Python 3.9+, no external dependencies beyond the standard library) that performs Columnar Index queries via Amazon Athena, WARC byte-range fetches, CSS colour extraction, WCAG contrast analysis, and report generation.
Main Findings
- Coverage: Of 500 sampled domains, 428 yielded analysable homepage HTML from CC-MAIN-2026-08. Of these, 240 contained at least one parseable CSS colour declaration; 188 homepages were retrieved successfully but contained no CSS colour data in embedded or inline styles.
- Overall failure rate: Across 240 domains, 4,327 unique colour pairings were identified, of which 1,771 (40.9%) failed the 4.5:1 contrast ratio threshold for normal text.
- Per-site pass rates: The median per-site pass rate for normal text was 62.7% and the mean was 59.8%. Fully compliant sites made up 20.4% (49 domains); 20.8% of sites had a pass rate above 90%; 26.2% had a pass rate below 50%.
- Pass-rate distribution (Table 1): 100% pass rate, 49 domains (20.4%); 90–99%, 1 domain (0.4%); 75–89%, 28 domains (11.7%); 50–74%, 99 domains (41.2%); 25–49%, 33 domains (13.8%); 0–24%, 30 domains (12.5%).
- Category differences (Table 2): Research had the highest average pass rate (72.2%, 1 domain), followed by EU Institutions (66.7%, 1 domain) and E-commerce (64.1%, 5 domains). The lowest were Hosting/Platform (44.6%, 11 domains), Technology (47.7%, 10 domains), and Government (49.7%, 14 domains). Education had the largest category at 47 domains with a 63.7% average and 14 compliant sites; Other had 134 domains, a 61.5% average and 30 compliant sites.
- Lowest-scoring domains (Table 3): Ten domains showed a 0.0% pass rate: adelaide.edu.au, alberta.ca, af.mil, copernicus.org, github.io, gamer.com.tw, kit.edu, iol.pt, mts.ru, and ncl.ac.uk. Worst ratios reported include 1.0:1 for several (adelaide.edu.au, alberta.ca, af.mil, gamer.com.tw, kit.edu, mts.ru, ncl.ac.uk), 4.13:1 for copernicus.org, 4.02:1 for github.io, and 3.77:1 for iol.pt.
- Fully compliant examples (Table 4): Selected sites with the most pairings checked include desktopnexus.com (6 pairings, mean ratio 8.44:1), hatenablog.com (6, 13.14:1), baidu.com (4, 17.89:1), craigslist.org (4, 12.33:1), fu-berlin.de (4, 11.21:1), tokyo.lg.jp (4, 14.15:1), unt.edu (4, 8.54:1), prnewswire.com (3, 13.57:1), anu.edu.au (2, 19.52:1), and google.cn (2, 12.77:1).
- Sites with at least one failure: The conclusion reports that 79.6% of sites contain at least one colour pairing failing the 4.5:1 normal text threshold.
- Threshold clustering: Many failing pairings cluster near the WCAG threshold, suggesting minor colour adjustments could substantially improve compliance without major redesign.
- Interpretation caveat: Sites declaring fewer colours in embedded CSS show more extreme pass rates (very high or very low), while sites with many colour declarations tend to cluster around the mean.
Methodology in Plain English
The team selected the 500 most frequently crawled registered domains from Common Crawl's CC-MAIN-2026-08 February 2026 crawl archive, as ranked by page captures in Common Crawl's public crawl statistics. For each domain they queried Common Crawl's Columnar Index — a Parquet-based crawl index on Amazon S3 queried via Amazon Athena — using a single SQL query to find an archived homepage capture. The query filtered for successful responses (HTTP status 200) with a detected MIME type of text/html, preferring the www subdomain or bare domain over deeper subdomains and HTTPS over HTTP where available. The query returned the WARC filename, byte offset, and record length; the actual HTML was then fetched with HTTP byte-range requests to data.commoncrawl.org so that only the relevant record was pulled from the petabyte-scale archive.
Colour declarations were extracted from embedded <style> blocks (including the background shorthand) and from inline style attributes, capturing color and background-color declarations. Parsed formats included #RGB, #RRGGBB, #RGBA, #RRGGBBAA, rgb(), rgba(), hsl(), hsla(), and all 148 CSS named colours; non-colour values such as transparent, inherit, currentColor, and initial were excluded. When both a foreground and background colour appeared in the same rule they formed an explicit pairing; a lone color was paired with an assumed white background (#FFFFFF) and a lone background-color with assumed black text (#000000). Identical pairings were deduplicated.
Contrast ratios were computed with the WCAG 2.1 formula (L1 + 0.05) / (L2 + 0.05), where L is relative luminance calculated as 0.2126·R + 0.7152·G + 0.0722·B from linearised sRGB values. Each pairing was assessed against both Level AA thresholds: 4.5:1 for normal text and 3.0:1 for large text. Because static analysis cannot determine rendered font size, the paper reports against both thresholds, treating 4.5:1 as the stricter assessment. The pipeline captures only static CSS in the archived HTML — it does not execute JavaScript, does not fetch external stylesheets referenced by <link> elements, and does not resolve CSS custom properties (var(--name)).
Why This Matters
Impact on research: The work shows that meaningful, deterministic accessibility signals can be extracted from shared public crawl archives without re-crawling live sites. This makes results reproducible — any researcher can re-run the pipeline against the same CC-MAIN-2026-08 archive and obtain identical results — and positions archive-based analysis as a complement to live-rendering approaches like WebAIM's. It also opens the door to longitudinal tracking of colour contrast compliance across crawl releases.
Real-world applications:
- Accessibility compliance monitoring by regulators, auditors, and site owners, using annual or monthly Common Crawl releases as a stable comparison baseline.
- Prioritising remediation: because many failing pairings cluster near the 4.5:1 threshold, small palette adjustments can resolve failures without redesign.
- Benchmarking by sector, letting institutions in categories such as Government (49.7% average pass rate) or Hosting/Platform (44.6%) compare themselves against peers.
- Design-system and template review, since a single embedded stylesheet can introduce failures across many pages.
Industry relevance: The WCAG Level AA criterion audited here is the conformance level most commonly targeted by accessibility regulations worldwide, including the European Accessibility Act, Section 508 of the US Rehabilitation Act, and the UK Equality Act. The 4.5:1 and 3:1 thresholds are therefore directly tied to legal obligations, and the finding that 40.9% of declared pairings fail the stricter threshold on the web's most prominent domains is operationally relevant to any organisation facing accessibility requirements. The archive-based method also removes the server-load and consent concerns that accompany live automated crawling.
Future Directions
- External stylesheet analysis: The current pipeline skips CSS files referenced via
<link>elements, which the authors note is where many sites define most of their styles. Incorporating them would require additional index lookups and WARC fetches per domain, increasing pipeline complexity. - Rendered-style analysis: Extending the pipeline to execute JavaScript and compare declared CSS against computed styles in a rendered DOM, addressing CSS-in-JS, dynamically injected styles, and CSS custom properties.
- Per-element rendering context: Determining which selectors actually apply to visible elements, what font sizes are in effect, and whether low-contrast pairings apply only to decorative or hidden content.
- Longitudinal and broader-coverage studies: Comparing results across successive crawl releases to track compliance over time, and adapting the pipeline to different crawls or domain sets beyond the top 500 homepages (the paper notes internal pages may use different colour schemes and templates).
Target Audience
This paper is most useful to accessibility researchers and practitioners who want a reproducible, archive-based alternative to live crawling; to web measurement and information-retrieval researchers interested in extracting structured signals from Common Crawl WARC data; to compliance officers, auditors, and policymakers working against WCAG Level AA requirements and frameworks such as the European Accessibility Act and Section 508; and to designers and front-end engineers who want to understand how commonly declared CSS colour pairings fail contrast thresholds in practice.
Authors’ abstract
We present a large-scale automated audit of WCAG 2.1/2.2 Level AA colour contrast compliance across the 500 most frequently crawled registered domains in Common Crawl's CC-MAIN-2026-08 February 2026 crawl archive. Rather than conducting a live crawl, all page content was sourced from Common Crawl's open WARC archives, ensuring reproducibility and eliminating any load on target web servers. Our static CSS analysis of 240 homepages identified 4,327 unique foreground/background colour pairings, of which 1,771 (40.9%) failed to meet the 4.5:1 contrast ratio threshold for normal text. The median per-site pass rate was 62.7%, with 20.4% of sites achieving full compliance across all detected colour pairings. These findings suggest that colour contrast remains a widespread accessibility barrier on the most prominent websites, with significant variation across domain categories.