Colorise ProOKLCH Engine
ExploreStudioNamesPickerPairs
ExploreStudioNamesPickerPairsContrastExtract
Menu

Product

  • Home
  • Explore
  • Studio
  • Color Names

Tools

  • Picker
  • Color Pairs
  • Contrast
  • Image Extract
  • Gradient Lab
  • Palette Diff
  • Brand from URL

Guides

  • All guides
  • OKLCH vs HSL
  • WCAG vs APCA
  • OKLCH color scales
  • Gamut & sRGB
  • Extract from images
  • HEX to OKLCH
  • Dark mode colors
  • Color meanings

Guides/Accessibility

WCAG vs APCA

正文与界面何时使用 WCAG 2.1 对比度、何时使用 APCA Lc。结合 Colorise Pro 实时对比度检测工具的实用建议。

WCAG 2.1 ratios

WCAG contrast is a relative luminance ratio (for example 4.5:1 for normal text, 3:1 for large text). It is the compliance baseline for many teams and audits — Colorise Pro reports it clearly next to live type.

How the WCAG formula works

Each sRGB channel is converted to linear light, and relative luminance is a weighted sum: L = 0.2126 R + 0.7152 G + 0.0722 B, running from 0 (black) to 1 (white). The ratio is (L1 + 0.05) / (L2 + 0.05) with the lighter color on top, so it runs from 1:1 to 21:1 and does not depend on which color is the text. Under WCAG 2.1 and 2.2, level AA asks for 4.5:1 for normal text and 3:1 for large text, where “large” means at least 18 pt (about 24 px) or 14 pt bold (about 18.7 px). Level AAA asks for 7:1 and 4.5:1. Non-text parts of the interface that are needed to understand it, such as input borders and icons, need 3:1.

APCA Lc

APCA models perceived contrast with polarity awareness (light-on-dark vs dark-on-light). Lc values help when WCAG looks like a “pass” but type still feels weak — a common issue on dark dashboards and dense tables.

Reading Lc: polarity and rough bands

APCA returns a signed Lc (lightness contrast) value, with the text color and the background as separate inputs: positive for dark text on light, negative for light text on dark. Magnitudes run up to roughly 106 to 108. The method is intended to be read together with font size and weight, so any single number is guidance only. As a rough rule from the published draft guidance, an absolute Lc around 75 is a common floor for body text, around 60 for larger content text, and around 45 for large headlines and key UI elements; thin, small type wants more. APCA is a candidate for WCAG 3, which is still a draft, and it is not a legal or compliance requirement.

Computed comparison

Every value below is calculated on this page, with the text color first and the background second. The two metrics usually agree on broad pass or fail, but not always.

WCAG 2.x ratio vs APCA Lc (text on background)
TextBackgroundWCAG ratioAA normalAPCA Lc
#000000#ffffff21.00:1Pass106.0
#767676#ffffff4.54:1Pass71.6
#ffffff#0f172a17.85:1Pass-106.8
#ffffff#f973162.80:1Fail-58.4
#000000#f973167.49:1Pass50.9
#2563eb#ffffff5.17:1Pass74.9
  • Black on white gives exactly 21:1 and an Lc a little above 100, the top of both scales.
  • #767676 on white is the classic borderline pass at about 4.54:1, yet its Lc sits below the ~75 body-text guidance.
  • On orange (#f97316, see the orange hub) the rankings flip: WCAG strongly prefers black text (about 7.5:1 against 2.8:1 for white), while APCA scores white text at a slightly larger magnitude than black. Neither is a great body-text choice, which is the real lesson: look at both, then view the real sample.

Check your own pairs in the Contrast Checker, or browse precomputed text and background combinations in the contrast hub. Dark surfaces are where the difference is usually felt first; the dark-mode colors guide covers that.

A workflow that respects both

Pass WCAG 2.2 AA for anything you must be able to defend in an audit, and treat APCA as a sanity check on how it feels at real sizes. If a pair passes WCAG but scores a low Lc, try more lightness separation before more chroma. When building token ramps, test the text-to-surface steps early, as described in Building OKLCH scales.

Practical rule

  • Ship against WCAG when you need checklist compliance.
  • Tune readability with APCA on real type sizes and weights.
  • Always judge on samples — the Contrast Checker shows both on live UI text, with an Auto-Fix path when a pair fails.

Workflow that sticks

  1. Lock brand colors in OKLCH (Studio or Picker).
  2. Test critical pairs: body, captions, buttons, borders.
  3. Prefer raising L contrast before blasting chroma.
  4. Re-export tokens only after both WCAG and APCA look honest.

The same pair in both directions

A WCAG ratio ignores which colour is the text. APCA does not: the score depends on the order, and the sign tells you the polarity. The table swaps text and background for five pairs. The first column gives the Lc for the first colour as text; the second gives the Lc when the roles are reversed. The WCAG ratio is the same either way, for example 4.83:1 for the first pair.

The two magnitudes differ by between 1.7 and 5.5 Lc across these pairs, and the direction of the gap is not constant. White text on the mid grey (79.0) scores higher than the grey as text on white (73.6), while on the light-grey and slate pair the dark-on-light direction is a little higher (52.7 against 51.0). Enter the real foreground and background in the right order. See the Contrast Checker for live readouts and the dark-mode colors guide for what this means on dark surfaces.

One WCAG ratio, two APCA scores: the first colour as text, then the second colour as text
PairFirstSecondWCAGFirst as textSecond as text
Mid grey and white#6B7280#FFFFFF4.83:1Lc 73.6Lc -79.0
Light grey and dark slate#9CA3AF#1118276.99:1Lc -51.0Lc 52.7
Green and white#16A34A#FFFFFF3.30:1Lc 59.7Lc -65.2
Blue and near-black#3B82F6#0B12205.09:1Lc -37.2Lc 39.4
Pale blue and navy#BFDBFE#1E3A8A7.29:1Lc -72.9Lc 71.0

Positive Lc is dark text on a lighter background; negative is light text on a darker one.

Where 4.5:1 and Lc part ways

To look for disagreement without cherry-picking, the page searched 792 text colours: six hues, lightness from 0.30 to 0.95 in steps of 0.01 at chroma 0.10, each on white and on #111827. Of these, 376 reach 4.5:1, and 166 of those have an absolute Lc below 75, the line the Contrast Checker uses for its body-text flag. Another 106 miss 4.5:1 yet have an absolute Lc of 45 or more, the Checker's UI flag.

The table shows the pair closest to the 4.5:1 edge in each case. The pattern is the useful part: on white, the lowest Lc among passing colours is 71.1, while on #111827 a colour that just passes 4.5:1 scores only 33.9. The same WCAG threshold sits at very different Lc values depending on the surface. This is a sample of two backgrounds and one chroma, not a general law.

Closest pairs to the 4.5:1 edge on white and on #111827, with the Checker's rough APCA flags
CaseTextBackgroundWCAGNormal textLc|Lc| ≥ 45|Lc| ≥ 75
Just passes 4.5:1#008388#FFFFFF4.56:1AA71.1PassFail
Just misses 4.5:1#8E7426#FFFFFF4.49:1Fail71.1PassFail
Just passes 4.5:1#558D57#1118274.51:1AA-33.9FailFail
Just misses 4.5:1#B76B5F#1118274.46:1Fail-33.7FailFail

Text colours are OKLCH chroma 0.10 mapped to sRGB; Lc is for the text colour on the background.

Font size and weight

APCA is designed to be read together with font size and weight: larger and heavier type needs a lower Lc, and small or light type needs a higher one. The published guidance expresses this as a lookup of minimum Lc by size and weight. Colorise Pro does not include that lookup. Its Contrast Checker applies two rough cut-offs to the absolute Lc, 45 for large or UI elements and 75 for body text, and the table above uses the same two.

So treat those flags as a quick screen. For a precise target, check the current APCA guidance for your size and weight, since it is still a working draft and may change, and then view the real sample on screen. WCAG 2.x has its own size rule, which is simpler: 3:1 applies to large text (at least 18 pt, or 14 pt bold) and 4.5:1 to the rest.

The mid-grey problem

Take a neutral grey as the background and choose the better of white or black text. Across all 256 greys, WCAG is weakest at #757575, where the better choice reaches 4.61:1. No grey drops below 4.61:1, so by ratio alone there is always a black or white text colour that clears 4.5:1.

APCA is less generous. Its weakest grey is #A3A3A3, where the better choice gives an absolute Lc of 54.6. 79 of the 256 greys leave both black and white under 75, and 21 leave both under 60. Mid-grey buttons and chips are therefore a place where a WCAG pass says little about comfort: increase the lightness gap, change the surface, or use larger and heavier text.

Grey backgrounds with white and black text; the weakest grey by each method is included
GreyWhite textLcBlack textLcBest ratioBest |Lc|
#5959597.00:189.23.00:119.77.00:189.2
#7575754.61:177.54.56:132.04.61:177.5
#7676764.54:177.04.62:132.54.62:177.0
#8080803.95:172.45.32:137.25.32:172.4
#9595953.00:162.07.01:147.47.01:162.0
#A3A3A32.52:154.68.33:154.58.33:154.6
#A6A6A62.43:152.98.63:156.18.63:156.1

Lc values are absolute; the grey is the background in every row.

Use both: what to report

For compliance, report the WCAG 2.x result: the ratio, the level (AA needs 4.5:1 for normal text, 3:1 for large text and for UI components) and which text size you assumed. That is the threshold audits and policies refer to today. Record APCA as supplementary readability data and label it that way, because it is a candidate method in a draft, not a ratified standard.

The table shows the fields to record, computed with the same helper the Checker uses. For the first pair, WCAG says AA for normal text at 4.83:1, while Lc 73.6 clears the 45 flag and misses the 75 flag. If the two disagree, fix the WCAG failure first, then improve the lightness gap until the real sample reads comfortably. The contrast hub lists precomputed pairs, and the scales guide shows how to plan these pairs into a ramp.

What a review note could record for three pairs, in the order WCAG first, APCA as extra data
TextBackgroundWCAG ratioNormal textLarge text and UIAPCA LcUI flagBody flag
#6B7280#FFFFFF4.83:1AAAAA73.6PassFail
#9CA3AF#1118276.99:1AAAAA-51.0PassFail
#3B82F6#0B12205.09:1AAAAA-37.2FailFail

Last reviewed 2026-11-11.

Try it

Open the Contrast Checker, set foreground and background, and compare WCAG ratio next to APCA Lc before you lock a brand pair. From a palette, use Continue in → Contrast for a one-click handoff.

FAQ

Does APCA replace WCAG for legal compliance?
Not usually. Many orgs still require WCAG 2.x ratios. Use WCAG for audits; use APCA to improve real readability, especially on dark UI.
What Lc should I aim for?
It depends on size and weight. Body text typically needs a higher Lc than large display type. Always verify on the real type sample in Contrast Checker.
Why do dark UIs fail ‘feel’ but pass WCAG?
WCAG is polarity-blind. APCA accounts for light-on-dark vs dark-on-light, which often explains the gap you feel on charcoal surfaces.
Is APCA an official WCAG requirement?
No. APCA is a candidate contrast method in the WCAG 3 working drafts, which are not finished or normative. Legal and procurement requirements today reference WCAG 2.x, so treat APCA Lc as an extra readability signal rather than a compliance result.
Why does the sign of Lc matter?
Lc is positive for dark text on a light background and negative for light text on a dark one. The two directions are not symmetrical in the model, so swapping text and background changes the score. Always enter the text color and the surface in the right order.
Which WCAG level should I target for body text?
AA (4.5:1) is the usual baseline for normal text and is what most policies ask for. AAA (7:1) is a stricter option that is not required for whole sites. Large text, and UI component boundaries or icons, need 3:1 under WCAG 2.1 and 2.2.
Why does a pair that passes 4.5:1 on a dark surface still feel faint?
The 4.5:1 line does not sit at one Lc value. In the search on this page, a colour that only just passes 4.5:1 on white scores about 71.1 Lc, but on #111827 it scores about 33.9. That is a sample, not a rule, yet it explains why dark interfaces can pass WCAG and still look weak.
Which grey background is the hardest for black or white text?
By WCAG ratio it is #757575, where the better of black or white reaches 4.61:1. By APCA it is #A3A3A3, where the better choice gives an absolute Lc of 54.6. WCAG always leaves a passing choice on a grey, but APCA does not, so mid-grey surfaces deserve a visual check.
Does the Contrast Checker change its APCA target for font size and weight?
No. It reports the signed Lc and two rough flags on the absolute value: 45 for UI or large elements and 75 for body text. APCA's own guidance varies the minimum with size and weight, and that guidance is a working draft. Use the flags as a quick screen, then check the real sample at its real size.
What should I put in an accessibility report: WCAG, APCA, or both?
Report the WCAG 2.x ratio and level, because that is what audits and policies currently reference. Add APCA Lc as supplementary data and label it as a candidate WCAG 3 method, not a standard. Include the text size you assumed, since both the large-text rule and APCA guidance depend on it.
If I swap foreground and background, which score changes?
Only the APCA score. The WCAG ratio is identical in both directions, for example 4.83:1 for #6B7280 and white either way. Lc changes sign and also changes size, here by up to 5.5 Lc across five pairs. Always enter the text colour first and the surface second.
How many of the 256 neutral greys leave white and black under Lc 75?
79 of the 256 greys leave both white and black text below an absolute Lc of 75, and 21 leave both below 60, using this repo's APCA helper with the grey as the background. The mid-tones are the problem. Move the surface lighter or darker, or use larger and heavier text, then re-test.

Related

  • Contrast Checker
  • Studio
  • OKLCH vs HSL
  • Dark-mode colors
  • Contrast pairs
  • Explore

Ready to try it? Open the OKLCH picker or jump into Studio.

Colorise Pro

Free OKLCH color workspace: precision color picker, color pairs, WCAG & APCA contrast checker, palette from image, Studio systems, names, gradients, and brand tools. Export HEX, CSS, Tailwind & DTCG.

OKLCH Engine

Product

  • Home
  • Explore
  • Studio
  • Color Names
  • Color Codes

Tools

  • Color Picker
  • Color Pairs
  • Contrast Checker
  • Image Extract
  • Gradient Lab
  • Palette Diff
  • Brand from URL
  • For presentations
  • For business cards
  • For SaaS landings
  • Duo pairs
  • Trio systems

Guides

  • All guides
  • OKLCH vs HSL
  • WCAG vs APCA
  • OKLCH color scales
  • Gamut & sRGB
  • Extract from images
  • HEX to OKLCH
  • Dark mode colors
  • Color meanings

Legal

  • Privacy
  • Terms

© 2026 Colorise Pro. All rights reserved.

© 2026 Colorise Pro. Built for precision color work.

Report infringement: [email protected] (Colorise Pro)

PrivacyTermsOKLCH · WCAG · APCA