APCA vs WCAG 2 contrast: formula, status and high contrast mode
Updated October 14, 2026 · 1 min read
Designers who check colours sooner or later meet two numbers: the WCAG contrast ratio (4.5:1, 3:1) and an APCA value such as Lc 75. They do not always agree. This page explains how the WCAG 2 formula works, what APCA is and what its status really is, and how Windows high contrast mode relates to both.
The short answer for anyone who has to meet a requirement: laws and standards use the WCAG 2 contrast ratio. This is general information, not legal advice.
The WCAG 2 formula, step by step
WCAG 2.2 defines contrast in two steps, both in its glossary.
1. Relative luminance — how bright a colour is, from 0 for the darkest black to 1 for the lightest white. For each sRGB channel:
C_srgb = C_8bit / 255
C = C_srgb / 12.92 if C_srgb <= 0.04045
C = ((C_srgb + 0.055) / 1.055) ^ 2.4 otherwise
L = 0.2126 * R + 0.7152 * G + 0.0722 * B
The weights show that the eye is far more sensitive to green than to blue. (Before May 2021 the WCAG text used 0.03928 as the threshold; the W3C notes this has no practical effect.)
2. Contrast ratio — with L1 the luminance of the lighter colour and L2 of the darker one:
contrast ratio = (L1 + 0.05) / (L2 + 0.05)
The result goes from 1:1 (the same colour) to 21:1 (black on white). An example: grey #767676 has a luminance of about 0.181, so on white it reaches (1 + 0.05) / (0.181 + 0.05) ≈ 4.54:1 and passes the 4.5:1 minimum. One step lighter, #777777, gives about 4.48:1 and fails — W3C says the values must not be rounded, so 4.499:1 does not meet 4.5:1.
The thresholds
| Criterion | Level | Required ratio |
|---|---|---|
| 1.4.3 Contrast (Minimum) | AA | 4.5:1 text, 3:1 large text |
| 1.4.11 Non-text Contrast | AA | 3:1 for icons, field borders, focus indicators and other UI parts |
| 1.4.6 Contrast (Enhanced) | AAA | 7:1 text, 4.5:1 large text |
Large text is at least 18 point (24 CSS pixels) or 14 point bold (about 18.66 CSS pixels). The W3C explains the 4.5:1 value as compensating for the loss of contrast sensitivity that comes with about 20/40 vision. Check any pair with our contrast checker.
Known limits of the WCAG 2 formula
The formula is simple and testable, which is why it works for regulation. It also has limits that W3C's own Understanding document mentions: it does not look at font weight, and thin or unusual fonts can look much fainter than their nominal colour because of anti-aliasing — "a contrast ratio that nominally passes … but has a much lower contrast in practice". The recommendation there is to use heavier fonts or a colour pair that exceeds the minimum. The formula also assumes sRGB colours.
The formula is also symmetric: swapping text and background gives the same ratio. The APCA project goes further and states that WCAG 2 contrast math "does not accurately model human visual perception nor visual impairments" — the starting point for APCA.
What APCA is
The Accessible Perceptual Contrast Algorithm is described in its official repository as an assessment method for predicting the perceived contrast between sRGB colours on a monitor, developed for the W3 "Silver" / WCAG 3 work. The differences from WCAG 2 in practice:
- Order matters. The first colour is the text, the second the background; the result is signed, and the sign shows the polarity (dark on light or light on dark).
- A different scale. The output is an Lc value, roughly from −108 to 106, not a ratio.
- Size and weight are part of the answer. A lookup function returns, for an Lc value, the font sizes needed at weights 100 to 900. The README gives rules such as a maximum of Lc 90 for fonts larger than 24 px at weight 300 or more.
- Beta. The library (
apca-w3on npm) is in public beta validation, and the README calls the related draft criterion a work in progress.
Is APCA part of WCAG 3?
Not as a final decision. Two facts, both checked on the official sources:
- The APCA repository says APCA is being evaluated as a replacement for the WCAG 2 contrast math for future standards.
- The current WCAG 3 Working Draft, dated 10 September 2026, says: "The contrast algorithm used in WCAG 3 is yet to be determined." Its text contrast requirements have the status developing, with the measure left open. The draft also says it is inappropriate to cite it as other than a work in progress.
So APCA is a candidate, WCAG 3 is a draft, and neither is normative. WCAG 2.2 is the current W3C Recommendation, and EN 301 549, the European standard behind the European Accessibility Act, refers to WCAG 2 success criteria. A colour pair that passes APCA but fails 4.5:1 still fails the requirement.
WCAG or APCA: a practical rule
- Meet the WCAG 2 ratio for every text and every UI component. That is the requirement.
- Use APCA, if you like, as a design aid on top: for example to choose a heavier weight for thin text, or to notice that a pair that just passes 4.5:1 is still hard to read in light text on a dark background.
- Do not claim APCA results as conformance. Reports, statements and tenders refer to WCAG 2.
Windows high contrast mode and forced colours
"WCAG high contrast mode" is a common search, but it mixes two things.
What it is. Windows offers contrast themes (Windows 11; called high contrast mode in Windows 10). Microsoft documents them under Settings → Accessibility → Contrast themes, with the shortcut Left Alt + Left Shift + Print Screen. Browsers then apply the user's limited palette to web pages. CSS detects this with the forced-colors media feature: active means the user agent enforces a user-chosen limited colour palette, and only system colours are available to the author.
What WCAG says. No WCAG 2.2 success criterion requires a high contrast mode or support for forced colours by name, and a site does not need to offer its own high contrast switch to meet AA. But your code can break the page for people who use such a mode, and then other criteria fail:
- Focus. W3C technique C40 warns that user agents commonly suppress
box-shadowin forced-color modes, so a focus indicator made only with a shadow disappears. C40 suggests combining it withoutline: 2px transparent solidfor compatibility with forced-color modes — relevant for 2.4.7 Focus Visible. - Icons and borders. Icons drawn with background images, and controls distinguished only by a background colour, can vanish. This touches 1.4.11 Non-text Contrast and 1.4.1 Use of Color.
- Do not assume more contrast. The Media Queries specification notes that forced colours do not necessarily mean a preference for more contrast; for that,
prefers-contrastexists.
Testing a few key pages with a contrast theme switched on is good practice, even though no criterion names it.
What our checks do
Our checks use the WCAG 2 contrast ratio, as the requirements do: low text contrast at AA (1.4.3), and enhanced contrast at AAA (1.4.6), which our reports show apart from the AA results. We do not report APCA values. Run the free WCAG checker on a page, or test one pair with the contrast checker. Our checks are an automated check, not a full audit, and not legal advice.
Frequently asked questions
Should I use WCAG or APCA for contrast?
Use the WCAG 2 contrast ratio to meet requirements: it is what WCAG 2.2, EN 301 549 and the laws built on them refer to. APCA can be a useful second opinion in design, but it is not part of any normative standard today.
Is APCA part of WCAG 3?
Not as a decision. APCA was developed as a candidate method for WCAG 3 and is in public beta. The current WCAG 3 Working Draft of September 2026 says the contrast algorithm is yet to be determined, and WCAG 3 itself is a draft, not a standard.
How is the WCAG contrast ratio calculated?
Convert both colours to relative luminance: linearise each sRGB channel, then L = 0.2126 R + 0.7152 G + 0.0722 B. The ratio is (L1 + 0.05) / (L2 + 0.05), with L1 the lighter colour. It ranges from 1:1 to 21:1 and is not rounded.
Does WCAG require support for Windows high contrast mode?
No WCAG criterion names high contrast or forced colours mode. But your own CSS can break the page in that mode, for example a focus ring made only with box-shadow, which browsers commonly remove there. Testing in a forced colours mode is good practice.
Can a colour pair pass WCAG and still be hard to read?
Yes. The WCAG formula does not account for font weight, and thin fonts with anti-aliasing can look fainter than their colour suggests. The W3C recommends heavier fonts or more contrast than the minimum in that case.
Sources
- W3C, WCAG 2.2 (definitions of relative luminance and contrast ratio): https://www.w3.org/TR/WCAG22/
- W3C, Understanding 1.4.3 Contrast (Minimum): https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html
- W3C, WCAG 3.0 Working Draft: https://www.w3.org/TR/wcag-3.0/
- APCA, apca-w3 repository: https://github.com/Myndex/apca-w3
- W3C, Technique C40, two-colour focus indicator: https://www.w3.org/WAI/WCAG22/Techniques/css/C40
- W3C, Media Queries Level 5 (forced-colors): https://www.w3.org/TR/mediaqueries-5/
- Microsoft, Change color contrast in Windows: https://support.microsoft.com/en-us/windows/change-color-contrast-in-windows-fedc744c-90ac-69df-aed5-c8a90125e696