Level AA Perceivable WCAG 2.0+

Success Criterion 1.4.3: Contrast (Minimum)

Official W3C Definition

The visual presentation of text and images of text has a contrast ratio of at least 4.5:1, except for the following:

  • Large Text: Large-scale text and images of large-scale text have a contrast ratio of at least 3:1;
  • Incidental: Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.
  • Logotypes: Text that is part of a logo or brand name has no contrast requirement.
Web Content Accessibility Guidelines (WCAG) 2.2

Why This Criterion Matters

Low contrast text is difficult or impossible to read for people with visual impairments, including those with low vision, color blindness, or age-related vision loss. Adequate contrast ensures text is readable by the widest possible audience.

Contrast Ratios Explained: Contrast ratio is calculated as the relative luminance of the lighter color divided by the relative luminance of the darker color. Ratios range from 1:1 (no contrast) to 21:1 (maximum contrast, black on white).

Required Contrast Ratios

Text Type Minimum Ratio Definition
Normal Text 4.5:1 Text smaller than 18pt (24px) or 14pt (18.66px) bold
Large Text 3:1 Text at least 18pt (24px) or 14pt (18.66px) bold
Incidental None Disabled controls, decorative text, logos

Who Benefits

Low Vision Users

Adequate contrast makes text readable without magnification.

Color Blind Users

High contrast helps distinguish text regardless of color perception.

Older Adults

Age-related vision changes make low contrast text harder to read.

Users in Bright Light

Good contrast improves readability in challenging lighting conditions.

How to Meet This Criterion

Contrast Examples

Good Contrast Examples

Black on White (21:1)

Dark Gray on Light Gray (15:1)

Dark Teal on White (10.2:1)

White on Blue (7.0:1)

Poor Contrast Examples

Gray on White (2.8:1) - FAIL

Yellow on White (1.5:1) - FAIL

Light Blue on White (2.3:1) - FAIL

Gray on Gray (1.5:1) - FAIL

CSS Implementation

Good Example - Accessible Color Scheme
:root {
    /* High contrast color palette */
    --text-primary: #1a1a1a;      /* Dark gray text */
    --text-secondary: #4a4a4a;    /* Medium gray text */
    --bg-primary: #ffffff;         /* White background */
    --bg-secondary: #f5f5f5;       /* Light gray background */
    --link-color: #0066cc;         /* Blue links (4.5:1 on white) */
    --error-color: #c62828;        /* Red errors (6.5:1 on white) */
}

body {
    color: var(--text-primary);
    background-color: var(--bg-primary);
}

a {
    color: var(--link-color);
}

.error-message {
    color: var(--error-color);
}

Common Failures to Avoid

Failure Problem Solution
Light gray text on white Very common, often below 3:1 Use darker gray (#595959 or darker)
Placeholder text with low contrast Form hints unreadable Ensure 4.5:1 for placeholder text
Text over images without overlay Background varies, contrast inconsistent Add semi-transparent overlay behind text
Brand colors that don't meet ratios Consistency vs. accessibility conflict Adjust shades or use for decoration only
Disabled buttons too low contrast Users can't read disabled options Disabled state is exempt, but consider readability

Testing Methods

Contrast Checking Tools

Testing Steps

  1. Identify all text: Headers, body text, links, buttons, form labels
  2. Check each combination: Use a contrast checker tool
  3. Verify large text: Confirm text size qualifies for 3:1 ratio
  4. Test hover/focus states: Ensure contrast maintained on interaction
  5. Check text over images: Verify contrast at all points

Related Criteria

1.4.1 Use of Color

Color not the only means of conveying information

1.1.1 Non-text Content

Images of text need alternatives

Additional Resources