Skip to content
Back to Blog
AccessibilityWCAGDesign

Build an Accessible Color Palette by Assigning Roles First

Choose surfaces, text, links and state colors as tested pairs, with calculated examples and a handoff checklist.

March 10, 2026· 3 min read·Color Match

Updated : Replaced unsupported prevalence claims and approximate badges with computed role-specific examples.

An accessible palette is a set of usable relationships, not a row of attractive swatches. Start by naming the jobs: page surface, body text, muted text, link, button fill, button label and error message. Then test the pairs that actually touch. A color can succeed in one role and fail in another.

Establish the reading surface

A reproducible text and background example.

Same pair, larger text.

#1F2937 / #FFFFFF

A dark body-text candidate on a white page surface.

14.679118:1 WCAG contrast; 101.4834 Lc APCA.

Normal-text AA: Pass. Large-text AA: Pass. Labels apply to text contrast only.

Reproduce this pair and try a fix

Keep this pair as a reference while introducing accent colors. If the default reading experience is stable, decorative choices are easier to evaluate. Check a card surface separately when it differs from the page background; inherited text tokens do not automatically preserve the same ratio.

Treat muted text as readable text

A reproducible text and background example.

Same pair, larger text.

#9CA3AF / #FFFFFF

A muted-looking candidate that needs a stronger foreground for ordinary body-size text.

2.538841:1 WCAG contrast; 49.7710 Lc APCA.

Normal-text AA: Fail. Large-text AA: Fail. Labels apply to text contrast only.

Reproduce this pair and try a fix

A hint can be less prominent without becoming difficult to read. Try smaller spacing changes, reduced emphasis or a different weight before making the color much paler. If the hint contains information needed to complete a form, record it in the contrast inventory just like the label.

Assign accents to tested roles

A reproducible text and background example.

Same pair, larger text.

#FFFFFF / #2563EB

White label on a blue button fill. Use the calculated result for the actual text category.

5.168556:1 WCAG contrast; -80.2479 Lc APCA.

Normal-text AA: Pass. Large-text AA: Pass. Labels apply to text contrast only.

Reproduce this pair and try a fix

A button introduces at least two relationships: label against fill, and the control or its identifying cue against its surroundings. Do not reuse the text result as a check of the button boundary. Test hover and focus arrangements on the surfaces where the component appears.

Do not make color carry the message alone

An error should have a readable message and an identifying cue, such as an icon or explicit label. A selected item can have a checkmark or a structural change. In a chart, labels and patterns can preserve meaning when colors are hard to distinguish. A color-vision simulation can support review but cannot establish that every person will interpret the design correctly.

Prepare a palette handoff

  • Name each token by role and show its intended surface.
  • List allowed foreground/background pairs and their checked text category.
  • Mark decorative accents so they are not accidentally used for small labels.
  • Record hover, focus, selected and error-state checks.
  • Include the exact values and a reproducible result link.

Build the swatches in Palette Studio, then use the contrast checker for each required pair.

The result is a small set of documented decisions. When a surface or text token changes, retest its listed relationships instead of guessing which screens may have been affected.

Sources and further reading

Editorial and correction policy

Try it yourself

Try this palette in Studio

Start with the article’s page, body, button and muted-text candidates. Assign roles, then test every text/background pair.

Edit this palette

Color Match

Color Match publishes and maintains practical color guides alongside its tools. Check the sources and revision notes on each updated guide, and report reproducible issues through our contact page.

More about Color Match

Related Articles