Perceivable · 1.4 Distinguishable

Visual Presentation WCAG 1.4.8 · Level AAA

For text blocks, a mechanism must let users pick text and background colors and get lines of at most 80 characters (40 for CJK), unjustified text, line spacing of at least 1.5 with paragraph spacing at least 1.5 times that, and 200 percent text resize without horizontal scrolling in a full-screen window.

Level
AAA
Since
WCAG 2.0
Principle
Perceivable
Guideline
1.4 Distinguishable

Live demo

Read the story, then enlarge it

The same task, done two ways: switch between the version that passes and the one that fails, or put them side by side. Everything in the box is live, so try it with a keyboard, a pointer or a screen reader.

Compare how easy each story is to read. Then set the text to 200%, narrow the frame, or turn on the spacing control.

Live example

Passes

City library extends its opening hours

From Monday, the central library will stay open until 9 pm on weekdays and until 6 pm on Saturdays. The council says the change follows a survey in which more than 4,000 residents asked for evening access to study space and computers.

Staff numbers will rise by twelve to cover the longer day. The children's section will keep its current hours, and the cafe on the ground floor will close at 7 pm.

What happened

    Why it passes

    Lines stop at about 70 characters, the text is left aligned with even gaps, and the lines are well spaced. At 200% the text wraps, so each line fits on screen.

    Why it fails

    Lines run to well over 100 characters, justified with uneven gaps and tight spacing, so it is easy to lose your place. At 200% the fixed width needs sideways scrolling to read each line.

    Examples

    Code that fails, and the fix

    Five examples, each one running: the usual ways this criterion fails, and code that passes. Listen to them, measure them, or copy the code.

    01

    Fails

    Justified body text

    Live preview

    CSS
    .story p {  text-align: justify;}

    Justified text stretches the gaps between words unevenly. People with dyslexia can lose their place in the channels of white space that run down the paragraph.

    Passes

    Left-aligned text in a narrower column

    Live preview

    CSS
    .story {  max-width: 32em; /* under 80 characters per line */}.story p {  text-align: start;}

    Text aligned to its starting edge keeps even word spacing, and the column keeps lines under 80 characters while still narrowing with the window.

    02What changes 3 lines

    Fails

    Tight lines in a fixed wide column

    Live preview

    CSS
    .story {  width: 1100px;  line-height: 1.1;}.story p {  margin: 0 0 0.25em;}

    The lines sit almost on top of each other and the paragraphs barely separate. The fixed 1100px width also forces sideways scrolling when the page is zoomed to 200%.

    Passes

    Line height 1.5 and wider paragraph gaps

    Live preview

    CSS
    .story {  max-width: 32em;  line-height: 1.5;}.story p {  margin: 0 0 2.25em;}

    Line spacing is 1.5, and the space after each paragraph is 2.25em, 1.5 times the line spacing. The column shrinks with the window, so zoomed text wraps.

    Passes

    Reader-chosen text and background colors

    Live preview

    HTML
    <fieldset class="reading-colors">  <legend>Reading colors</legend>  <label><input type="radio" name="scheme" value="default" checked> Site default</label>  <label><input type="radio" name="scheme" value="cream"> Dark text on cream</label>  <label><input type="radio" name="scheme" value="night"> Light text on black</label></fieldset>

    With a script that applies the choice, this lets readers pick the text and background colors of the article. Not overriding the browser's own color settings is another way to meet this part.

    Why it matters

    Who it helps

    People with low vision, dyslexia or other reading and cognitive disabilities can set up text so it is easier to track and read, with shorter lines, more spacing or their own colors.

    W3C: Understanding 1.4.8
    • Level AAA

      Level AAA is the highest level. It is not required for whole sites, but it is worth meeting where you can.

    • In WCAG versions

      Part of WCAG 2.0 since December 2008, and of every version after it.

      No WCAG 1.0 checkpoint maps to it.

    • Where it is required

      No law on this site requires Level AAA criteria for whole sites.

    How to test

    Checking it

    A few concrete steps. Automated tools find some failures; most need a person.

    1. Confirm users can change text and background colors for blocks of text, through the page or the browser, without losing content.
    2. Check that text is not justified and that lines can be set to 80 characters or fewer.
    3. Confirm line spacing can reach 1.5 and that text at 200 percent wraps without horizontal scrolling.

    Common failures

    Where it breaks

    • Body copy is fully justified, creating uneven gaps between words.
    • Long paragraphs sit in wide containers with no way to narrow lines to 80 characters.
    • At 200 percent text size, fixed-width columns force horizontal scrolling to read each line.