Back to reviews and guides

WCAG 1.4.8 Visual Presentation: Designing Text for Better Accessibility

WCAG 1.4.8 Visual Presentation is a Level AAA criterion in WCAG 2.1 that sets minimum spacing and resizing rules for blocks of text. This article explains the requirements, gives CSS patterns, testing steps, common mistakes, and a practical checklist to implement or test the criterion.

WCAG 1.4.8 Visual Presentation is a Level AAA success criterion that focuses on how blocks of text are presented and whether users can read and control spacing and size. Good implementation makes paragraphs easier to scan and lets people with low vision or reading differences customise text without losing content.

What WCAG 1.4.8 requires

The criterion applies to the visual presentation of blocks of text. It expects authors to allow or provide the following for those blocks of text:

  • Line height (line spacing) of at least 1.5 times the font size.
  • Paragraph spacing of at least 2 times the font size.
  • Letter spacing (tracking) of at least 0.12 times the font size.
  • Word spacing of at least 0.16 times the font size.
  • Text can be resized without assistive technology up to 200% with no loss of content or functionality and without requiring horizontal scrolling for blocks of text.

These are Level AAA requirements in WCAG 2.1. Aim to meet them when you target the highest accessibility level, or when users with reading or low-vision needs are a priority.

Why this matters

  • Increased line and paragraph spacing improves legibility for readers with visual stress and dyslexia.
  • Proper letter and word spacing prevent crowding that makes characters blend together.
  • Allowing 200% resize and reflow ensures people who need large text can read without horizontal scroll or clipped content.

How to meet WCAG 1.4.8 — a step-by-step guide

1. Use relative units for all text and spacing

Set font sizes, line-height, margins, and spacing with em or rem rather than px. Relative units scale when the user zooms or changes base font size.

2. Apply the spacing minimums

For body text blocks, use these CSS baseline values so they scale with font size:

  • line-height: 1.5;
  • margin-bottom: 2em; (paragraph spacing)
  • letter-spacing: 0.12em;
  • word-spacing: 0.16em;

3. Prevent layout that breaks on 200% text zoom

Confirm content reflows vertically without horizontal scrolling. Avoid fixed-width containers and fixed-height text boxes. Use max-width in characters (ch) or percentages and flexible layouts such as CSS grid or flexbox with wrapping.

4. Do not override user stylesheet settings

Do not force line-height, letter-spacing, or font-size in ways that block a user’s browser or custom stylesheet. Allow browser zoom and user font-size changes to take effect.

5. Test with real browser settings

  1. Increase page text to 200% using browser zoom or by setting the root font-size.
  2. Check that text blocks do not require horizontal scrolling and remain readable.
  3. Change browser default font and line spacing where possible to ensure your design still holds.

Practical CSS patterns

Below are safe, simple CSS snippets that follow the spacing guidance while staying flexible.

  • Base styles:

    html { font-size: 100%; } /* use 100% so user scaling works */
    body { font-family: system-ui, sans-serif; line-height: 1.5; }
  • Paragraph spacing and tracking:

    p { margin-bottom: 2em; letter-spacing: 0.12em; word-spacing: 0.16em; }
  • Flexible container:

    .content { max-width: 60ch; width: 100%; box-sizing: border-box; }

Notes: Use rem/em for any size adjustments. Avoid fixed pixel heights on text containers. Do not use transforms that remove text from normal flow.

Testing checklist for WCAG 1.4.8

  • Set browser zoom to 200% and verify no horizontal scrolling within blocks of text.
  • Verify line-height is at least 1.5 across body text and article paragraphs.
  • Verify paragraph spacing is roughly double the font-size.
  • Confirm letter-spacing near 0.12em and word-spacing near 0.16em for main text, or that users can override them.
  • Test with different fonts to ensure no collapse of spacing or overlap.
  • Check responsive breakpoints so the text container reflows naturally on narrow viewports.

Common mistakes and how to avoid them

  • Fixing text in pixels. Use rem or em instead.
  • Using narrow fixed-width columns that force horizontal scroll at 200% zoom.
  • Applying letter-spacing that is too tight on headings and body text.
  • Using text inside elements with overflow: hidden or transforms that clip text when resized.

When you cannot meet Level AAA

WCAG 1.4.8 is Level AAA. Many projects aim for Level AA as the baseline. If full AAA is not feasible, document the reasons and provide alternative supports. Good alternatives include:

  • Ensure WCAG Level AA text-size and contrast requirements are met.
  • Offer a user-accessible control to increase text size and switch to a high-contrast, readable theme.
  • Provide downloadable stylesheets or use an accessibility settings panel that adjusts spacing and font size on demand.

Summary checklist to hand to designers and engineers

  1. Use relative units for fonts and spacing.
  2. Set recommended minimums: line-height 1.5; paragraph spacing 2× font size; letter-spacing 0.12em; word-spacing 0.16em.
  3. Allow 200% browser zoom without loss or horizontal scroll for text blocks.
  4. Test with several fonts, on multiple viewports, and with user styles enabled.
  5. Keep a documented fallback when AAA is not achievable.

Meeting WCAG 1.4.8 improves readability for many people. The work is mostly CSS and layout discipline. Small changes to spacing and flexible sizing give a big boost to usability.