Check a color pair against APCA
What this tool does
APCA is the contrast model that the W3 accessibility working group is using to replace the WCAG 2 ratio in WCAG 3. Instead of returning one ratio for every text and background pair, it returns an Lc value, which stands for lightness contrast. That single number only means something once you tell it how big and how bold the text is, and APCA handles that with a lookup table published by Myndex Research. A 16px weight 400 paragraph needs Lc 90. The same pair at 24px weight 700 is fine at Lc 45. A WCAG 2 ratio cannot tell you that, because it treats 12px light grey on white and 48px bold white on black as the same problem.
The polarity matters too, and this is where most people get it wrong. APCA returns a positive Lc for dark text on a light background and a negative Lc for light text on a dark background. Do not take the absolute value and compare it to a table, because the two directions are not symmetric. White on a mid grey scores Lc -68.5, while that same grey on white scores Lc 63.1. The grey on white passes WCAG 2 AA at 3.5 to 1, but it is well below the Lc 90 that body text needs. If you fix a design to 4.5 to 1 and stop, dark mode can still be unreadable, and APCA is the tool that shows it.
How to use it
- Enter the text color and the background color exactly as they appear in your design. The text color accepts an alpha channel, so a white label at 60 percent opacity blends against the background before the math runs, which is what the browser actually paints.
- Set the font size in CSS pixels and the weight from 100 to 900.
- Read the Lc value, the minimum Lc that size and weight combination needs, and the pass or fail verdict.
- Check the WCAG 2.1 ratio too, because most teams still have to satisfy a WCAG 2 audit today even when they design against APCA.
When a pair fails, the suggested fix keeps your hue and saturation and only moves lightness until the pair clears the target. That gives you a color that is still recognisably your brand color instead of the flat black or white that most contrast checkers hand back. A neutral grey target is the one exception, since moving lightness is the only axis left when there is no hue to preserve.
APCA levels at a glance
These minimum sizes come from the same font table the checker uses, so they line up with the verdict above. Pick your weight, then read across.
| Lc | Normal 400 | Bold 700 | What it is for | Roughly equals |
|---|---|---|---|---|
| 90 | 16px | 16px | Body text and columns, the safest default. | WCAG 10:1 |
| 75 | 18px | 14px | Large body text, secondary copy, form labels. | WCAG 7:1 |
| 60 | 24px | 16px | Headings and any text you want people to read but not scan in columns. | WCAG 4.5:1 |
| 45 | 42px | 24px | Display headings, and fine detail icons no thinner than 4px. | WCAG 3:1 |
| 30 | 108px | 72px | Absolute floor for spot text: placeholders, disabled text, solid icons. | Non text only |
| 15 | – | – | Discernible non text such as dividers and thick focus rings. Treat lower as invisible. | Non text only |
Under Lc 60 the table expects you to add Lc 15 if the text is used as body copy, and the Bronze level summary Myndex publishes is looser than the table at very small sizes. The verdict above always follows the table, because that is the more accurate of the two.
One caveat worth stating plainly
APCA is still a candidate, not a ratified recommendation. The algorithm this page runs is version 0.1.9, the W3 licensed build, and the font size and weight table is the public beta 0.1.7 G revision from May 2022. Both will move before WCAG 3 ships. Use the number to catch real readability problems in your own product, not as a compliance certificate. If you need a defensible audit today, WCAG 2.1 AA and AAA still are the standard, and this page shows that ratio right next to the Lc value so you can check both in one pass.
Frequently asked questions
What is APCA and what is an Lc value?
APCA is the Accessible Perceptual Contrast Algorithm, the contrast model the W3 accessibility working group is using as the WCAG 3 candidate to replace the WCAG 2 ratio. It returns an Lc value, or lightness contrast, for a text and background color pair. Lc 60 feels roughly as strong as a WCAG ratio of 4.5 to 1, Lc 75 about 7 to 1, and Lc 90 about 10 to 1. Light text on a dark background returns a negative Lc.
How do I know if my colors pass APCA?
Enter your text color, background color, font size in CSS pixels and font weight. The checker returns the Lc value and the minimum Lc that size and weight combination needs, taken from the Myndex public beta font size and weight table. The pair passes when your Lc is at or above that minimum. 16px weight 400 body text needs Lc 90, 18px weight 400 needs Lc 75, and 24px weight 700 needs Lc 45.
Why is my dark mode failing when it passed WCAG 2?
WCAG 2 uses one ratio for every text and background pair, and it overstates contrast for very dark colors, so a pair can clear 4.5 to 1 and still be hard to read. APCA is polarity aware and returns light text on dark backgrounds as a negative Lc. Mid grey text on white scores Lc 63 and passes WCAG 2 AA, but it is far below the Lc 90 that 16px body text needs.
Can I use a transparent text color?
Yes. Use an 8 digit hex such as #ffffff99 or an rgba value. The text color is blended against the background first, exactly the way a browser paints it, and the Lc value is computed from the blended color.
What is the suggested fix when a pair fails?
The checker keeps the hue and saturation of your current text color and moves only the lightness until the pair clears the target Lc, so you get a color that still looks like your brand color. When lightness alone cannot reach the target, the tool says so instead of returning a misleading suggestion.
Is APCA an accessibility standard yet?
Not yet. APCA is a candidate for WCAG 3, which is still in development. This page runs algorithm version 0.1.9, the W3 licensed build, with the public beta 0.1.7 G font table from May 2022. Both will change. For a defensible audit today, WCAG 2.1 AA and AAA remain the standard, and this page shows the WCAG 2.1 ratio beside the Lc value so you can check both at once.
Why not just ask an AI chatbot for the Lc value?
The APCA formula is public but has around a dozen constants, a soft black clamp, a low contrast clip and a font table with special prohibited values. Language models routinely answer with a WCAG 2 ratio, drop the sign on dark backgrounds, or quote the font table from memory. This page computes every value in your browser from the published constants, verified against the nine test vectors Myndex ships with the source.
Is the APCA contrast checker free and private?
Yes. No signup, no account, no upload, no data collection. The whole calculation runs in your browser from the published APCA constants, so your colors never leave your device.
Related tools
Color Contrast Checker for WCAG 2.1 AA and AAA ratios, Color Blindness Simulator to preview deuteranopia and protanopia, and Color Palette Generator to build a palette worth testing.
Comments & Ratings