Skip to content

Legibility & Contrast

Legibility and contrast are fundamental to usable interfaces. Text that’s hard to read creates cognitive load, excludes users with visual impairments, and causes abandonment. Good typography isn’t decorative—it’s functional design that respects human visual capabilities.

Legibility: How easily individual characters and words can be distinguished and recognized at a glance. Affected by typeface design, size, weight, spacing, and contrast.

Readability: How easily extended text can be read and comprehended over time. Affected by line length, line height, alignment, paragraph spacing, and overall layout.

Both matter. Legible text that’s poorly laid out is still hard to read. Readable layouts with illegible text fail just as badly.

Contrast is the difference in luminance (brightness) between text and its background. Insufficient contrast makes text difficult or impossible to read.

WCAG 2.2 Level AA (minimum standard):

  • 4.5:1 for normal text (under 24px or 18.5px bold)
  • 3:1 for large text (24px+ or 18.5px+ bold)
  • 3:1 for UI components and graphical objects

WCAG 2.2 Level AAA (enhanced):

  • 7:1 for normal text
  • 4.5:1 for large text

Why these numbers? Research shows users with moderately low vision (20/40) can read text at 4.5:1. Higher ratios benefit users with more significant vision loss.

Luminance contrast (brightness difference):

  • Most effective for all users
  • Works for colorblind users
  • Use this as your primary contrast mechanism

Chromatic contrast (color/hue difference):

  • Supplementary to luminance contrast
  • Ineffective for colorblind users (~8% of males, 0.5% of females)
  • Never rely on hue alone

Example: Red text on green background might have different hues but similar luminance—effectively invisible to many users.

  • Light gray text on white backgrounds (prevalent in placeholders)
  • Colored text on colored backgrounds without sufficient luminance difference
  • Low-contrast disabled states that are unreadable
  • Overlaid text on images without sufficient background treatment
  • Transparent/semi-transparent backgrounds reducing effective contrast

Body text: 16px minimum for web interfaces

  • Why: Smaller text requires higher contrast and is harder for aging eyes to read
  • Mobile: May need 17-18px due to viewing distance
  • Fine print: Never below 14px; increase contrast to compensate

Headings: Create clear hierarchy with size differences

  • Minimum 1.2× scaling between levels (better: 1.25× to 1.5×)
  • Largest heading should be significantly larger (2-3× body size)

Interactive elements: Touch targets should be 24×24px minimum (WCAG 2.2), ideally 44×44px for thumbs

Text should scale with:

  • Viewport size: Use relative units (rem, em) not fixed pixels
  • User preferences: Respect browser/OS text size settings
  • Viewing distance: Larger text for TV interfaces, smaller for desktop

Don’t prevent users from zooming text to 200% without breaking layout (WCAG 1.4.4).

Sans-serif vs. serif: Research shows no significant difference for general readability, but:

  • Sans-serif slightly better for accessibility (simpler letterforms)
  • Serif traditional for long-form print; less critical for screens
  • Consistency within the interface matters more than the specific choice

Avoid:

  • Decorative or script fonts for body text
  • Ultra-thin weights (200, 300) at small sizes
  • Condensed fonts that reduce letterform clarity

Good fonts have:

  • Distinct letterforms: I, l, 1 should be clearly different
  • Generous apertures: Open spaces in c, e, a, s improve legibility at small sizes
  • Sufficient x-height: Taller lowercase letters improve readability
  • Multiple weights: For creating hierarchy without relying solely on size

Studies show that personalized fonts can improve reading speed by 35% and comprehension significantly. Font selection is increasingly recognized as individual—what works best varies by reader.

Recommended: 1.4 to 1.6× the font size for body text

  • Tighter (1.2×) for large headings
  • Looser (1.75×) for interfaces with diverse users or long-form content

Why: Adequate line height prevents lines from “crowding” each other, making it easier to track from one line to the next.

Optimal: 45-75 characters per line (CPL) for body text

  • Maximum: 90 CPL before readability drops significantly
  • Minimum: 30 CPL before text feels choppy

Why: Eyes fixate 7-9 times per line. Lines that are too long cause fatigue and re-reading. Lines that are too short disrupt reading rhythm.

Letter spacing (tracking):

  • Normal for body text; never tighten
  • Slightly increased (0.5-1px) for all-caps text
  • Generous spacing for dyslexic readers (some specialized fonts)

Word spacing:

  • Default is usually fine (1× space width)
  • Slightly increased spacing improves scanning
  • Avoid justified text (creates uneven spacing)

Left-aligned (for LTR languages):

  • Standard for body text—provides consistent starting point
  • Easiest to scan and read
  • Strongly preferred for accessibility

Center-aligned:

  • Acceptable for short headings or callouts
  • Avoid for body text (no consistent starting edge)

Right-aligned:

  • Use sparingly (dates, numerical data)
  • Avoid for body text in LTR languages

Justified:

  • Creates uneven word spacing (rivers of whitespace)
  • Avoid unless using hyphenation and sophisticated algorithms

High contrast is essential:

  • Pure black (#000000) on white can be too stark for some users
  • Slightly off-black (#1a1a1a or #333333) often more comfortable
  • Ensure decorative colors still meet 4.5:1 minimum

Link differentiation:

  • Don’t rely on color alone—underline by default
  • Ensure visited links are distinguishable
  • Maintain adequate contrast in all states (hover, focus, visited)

When implementing dark mode:

  • Don’t just invert colors: Reduce contrast slightly (pure white on pure black is harsh)
  • Target 15.8:1 maximum contrast in dark mode (less eyestrain)
  • Test thoroughly: Contrast that worked in light mode may fail in dark mode
  • Support user preference: Respect prefers-color-scheme
  • Provide high contrast mode: Optional AAA-level contrast (7:1+)
  • Support text resizing: Up to 200% without layout breaking
  • Avoid images of text: Use actual text whenever possible
  • Ensure focus indicators: 3:1 contrast against adjacent colors
  • Generous spacing: Line height 1.5×, letter spacing slightly increased
  • Shorter lines: 45-60 CPL range
  • Clear fonts: Sans-serif with distinct letterforms
  • Allow user overrides: Let users choose their preferred fonts
  • Don’t rely on color alone: Use icons, labels, patterns
  • Use luminance contrast: Works for all CVD types
  • Test with simulators: Color Oracle, Sim Daltonism
  • Larger default sizes: 18px+ for primary content
  • Higher contrast: Target AAA when possible
  • Clear hierarchy: Strong size and weight differences
  • Reduce glare: Off-white backgrounds, matte finishes

Recent research demonstrates measurable benefits:

  • Reading speed: High contrast improves speed by up to 32%
  • Accuracy: Proper typography improves reading accuracy by up to 20%
  • Eye strain: Good spacing reduces reading fatigue by 25-30%
  • Comprehension: Personalized fonts show 35% boost in reading speed
  • Abandonment: Low contrast leads to reader fatigue and task abandonment
  • Test with actual text: Don’t just check color swatches
  • Test in context: Overlaid text, different backgrounds, varying lengths
  • Test in sunlight: Glare significantly reduces perceived contrast
  • Test in dark mode: Ensure contrast works in both themes
  • Test with zoom: Verify layout doesn’t break at 200%
  • Test with users: People with low vision provide invaluable feedback
  • Add contrast checking to your CI/CD pipeline
  • Catch violations before they reach production
  • Use tools like axe-core or pa11y for automated testing

Research investigates how font choice, font size, letter spacing, and contrast significantly impact legibility. Studies show these typographical factors affect the ease with which text can be read and comprehended.

Research demonstrates that high contrast between text and background can improve reading speed by up to 32%, while low contrast leads to reader fatigue and abandonment. Typography in UX: Best Practices Guide emphasizes WCAG standards of 4.5:1 contrast ratio, scalable text, and proper spacing.

A recent study shows font readability is very individual, with fonts tailored to the user not only speeding up reading but improving comprehension. Switching to a more appropriate typeface resulted in a 35% boost in reading speed.

Research shows single-column layouts, short paragraphs, and high contrast backgrounds optimize reading comprehension and user engagement. Research and accessibility guidelines strongly favor left alignment for continuous text, as it provides a consistent starting point for each line and supports smooth reading flow.

With advancements in artificial intelligence and machine learning, real-time typography optimization is now possible, allowing for adjustments to font size, line spacing, and font styles based on user interactions and engagement metrics.

WCAG Standards:

Recent Research:

Foundational Work:

  • Schneiderman, B. et al. — Designing the User Interface (visibility & legibility)

Practical Resources:

Testing Tools: