Color Contrast Checker
Free, no signup. Compare foreground and background colors against WCAG 2.2 AA and AAA, get the closest practical hex alternatives that pass, or check a live URL's real rendered contrast.
Check a URL's rendered contrast
Loads the page in a metered headless browser and runs axe-core's color-contrast rule against the real computed styles — the resolved foreground, background, opacity, inherited color, and CSS variables after the cascade, not a static-HTML color guess. This is the same Browser-Rendering pipeline the AccessibilityWeb accessibility means designing sites so people with disabilities can use them, per the W3C's WCAG guidelines. It overlaps with SEO in specific, checkable ways — alt text, heading structure, descriptive link text, captions, and page speed all serve both audiences — but Google has said accessibility itself is not a ranking factor, and most WCAG success criteria (keyboard focus order, ARIA live regions, form labels) have no SEO effect at all. Tester uses, filtered to just contrast findings.
Checks run from our server; we fetch the URL you enter and don't keep the results. This launches a metered browser audit shared with the Accessibility Tester's rendering budget, so it is rate-limited per visitor and per target site. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
Runs entirely in your browser — nothing you paste is uploaded or stored. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
Palette audit
Paste CSS variables, token declarations, or a hex list. The matrix checks every color as text against every other color as a background.
Site passport Local context for this saved site
Local data
Saved targets, named lists, and recent check summaries remain only in this browser.
Rate this tool
Example
Example data — engine-verified result
#777777 foreground on #FFFFFF: 4.48:1
- Pass: AA large text and UI (3:1).
- Below: AA normal text and AAA large text (4.5:1), plus AAA normal text (7:1).
- Nearest AA normal-text alternative:
#767676, one step darker, at 4.54:1.
How it works
Paste mode calculates contrast from the WCAG relative-luminance formula, not by simply comparing RGB values. The suggestions preserve the foreground hue and saturation while walking its lightness toward the nearest passing color, then verify the rounded hex result. The URL mode above instead loads the page in a metered headless browser and reads each element's actual computed color and background after the CSS cascade resolves — the only way to catch contrast failures caused by inherited color, semi-transparent backgrounds, CSS variables, or the browser's default stylesheet, none of which a pasted color list can see.
Use the right rule
Normal-size text needs 4.5:1 for AA. Large text (at least 24px regular or 18.66px bold) and non-text UI indicators need 3:1. Color should never be the only way to communicate a state.
Frequently asked questions
What contrast ratio do I need?
WCAG AA requires 4.5:1 for normal text and 3:1 for large text and non-text UI components. AAA requires 7:1 for normal text and 4.5:1 for large text.
Does this prove my page is accessible?
No. It checks color pairs, not typography, focus states, images of text, or (in paste mode) real rendered backgrounds. Treat it as a design-time check and test the finished interface too.
Where does my palette go?
In paste mode it stays in the browser — paste CSS custom properties, Tailwind-style name/value tokens, or a loose list of hex colors. Only the URL mode sends anything to our server, and that is the public page address you enter, not a palette.
How is the URL mode different from pasting colors?
Pasted colors give you exact math on the pair you type. The URL mode loads the real page in a metered headless browser and reads each element's actual computed color and background after the CSS cascade, inheritance, opacity, and browser defaults are resolved — the only way to get a genuine contrast verdict for a live page, since a static-HTML color guess can be wrong.
Feature requests for Color Contrast Checker
Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.
You won't be emailed about that request anymore.
Loading…
➕ Request a feature
New requests are reviewed before they appear here.
Sobre a ferramenta
Grátis, sem cadastro. Compare cores de primeiro plano e fundo com WCAG 2.2 AA e AAA, encontre alternativas hexadecimais práticas que passam ou verifique o contraste real renderizado de uma URL ativa.
Verificação WCAG 2.2 color contrast, encontrar mais próximo passing foreground colors, e auditar CSS color tokens em seu navegador.
Recursos
- Em paste mode isso stays em o navegador — paste CSS custom propriedades, Tailwind-style nome/value tokens, ou um loose listar de hex colors. Somente o URL mode sends anything para our servidor, e que é o público página address você enter, não um palette.
- Loads o página em um metered headless navegador e runs axe-core's color-contrast rule against o real computed styles — o resolved foreground, background, opacity, inherited color, e CSS variables depois o cascade, não um static-HTML color guess. Este é o mesmo Browser-Rendering pipeline o Tester usa, filtered para just contrast constatações.
- Pasted colors give você exato math em o pair você tipo. O URL mode loads o real página em um metered headless navegador e reads cada element's real computed color e background depois o CSS cascade, inheritance, opacity, e navegador defaults são resolved — o somente way para get um genuine contrast verdict para um ativo página, since um static-HTML color guess pode ser incorreto.
- WCAG AA exige 4.5:1 para normal texto e 3:1 para grande texto e non-text UI components. AAA exige 7:1 para normal texto e 4.5:1 para grande texto.
Como funciona
Loads o página em um metered headless navegador e runs axe-core's color-contrast rule against o real computed styles — o resolved foreground, background, opacity, inherited color, e CSS variables depois o cascade, não um static-HTML color guess. Este é o mesmo Browser-Rendering pipeline o Tester usa, filtered para just contrast constatações.
Limitações
- Não. Isso verificações color pairs, não typography, focus states, images de texto, ou (em paste mode) real rendered backgrounds. Trate isso como um design-time verificação e test o finished interface too.
- Pasted colors give você exato math em o pair você tipo. O URL mode loads o real página em um metered headless navegador e reads cada element's real computed color e background depois o CSS cascade, inheritance, opacity, e navegador defaults são resolved — o somente way para get um genuine contrast verdict para um ativo página, since um static-HTML color guess pode ser incorreto.
Perguntas frequentes
De qual proporção de contraste preciso?
WCAG AA requires 4.5:1 para normal texto e 3:1 para grande texto e non-text UI components. AAA requires 7:1 para normal texto e 4.5:1 para grande texto.
Isso prova que minha página é acessível?
não. ele verifica cor pares, não typography, focus states, images de texto, ou (em colar mode) real renderizado backgrounds. Treat ele como a design-time verificar e teste o finishdo interface too.
Para onde vai minha paleta?
em colar mode ele stays em o navegador — colar CSS custom properties, Tailwind-style nome/valor tokens, ou a loose lista de hex cores. apenas o URL mode sends anythndo para our servidor, e que é o público página address você enter, não a paleta.
Como é o URL mode diferente de pastndo cores?
colado cores give você exatos math em o par você tipo. o URL mode loads o real página em a meterdo headless navegador e lê cada element's real computdo cor e background depois o CSS cascade, inheritance, opacidade, e navegador defaults are resolvdo — o apenas way para obter a genuine contraste verdict para a ao vivo página, since a static-HTML cor estimar pode be wrong.