Skip to content
Back to Guides
WCAG 2.2 ACCESSIBILITY GUIDE • UPDATED FOR 2026

WCAG Font Size Requirements 2026:
The Complete Guide to Accessible Typography

I spent years setting body text at 14px because "it looked cleaner." Then a 67-year-old user sent me an email that changed how I build everything. Here's what WCAG actually requires — and what I wish I'd known years ago.

Live Font Size Tester

Adjust the slider to see how different font sizes affect readability. The red zone shows sizes that fail WCAG recommendations.

Font Size: 16px
8px12px16px20px24px28px32px

The quick brown fox jumps over the lazy dog. This is what your body text looks like at this size. Can you read it comfortably without squinting?

⚠️ TOO SMALL 12px is below recommended minimum for body text

The Email That Changed How I Code

In 2023, I launched a website for a client — clean, modern, minimal. Body text set at 13px because it looked "sophisticated."

Three days later, I got an email from a woman named Margaret. She was 67, a loyal customer of the client, and she couldn't read the site. "I have to zoom in to 200% and then scroll sideways for every paragraph," she wrote. "I used to love this brand. Now I feel like they don't want me as a customer."

That email sits in a folder called "Lessons." I look at it every time I'm tempted to use small text for "aesthetic reasons." Since then, I've made it my mission to understand WCAG requirements — not as a checklist, but as a way to include people like Margaret.

This guide is what I wish I'd read before that launch.

1. WCAG Font Size: What the Guidelines Actually Say

Here's the surprising truth: WCAG doesn't specify a minimum font size in pixels. Not 16px, not 14px, not any number.

Why? Because accessibility depends on so many factors — font design (x-height matters more than point size), viewing distance, user vision, and device resolution. A 14px font with a large x-height can be more readable than a 16px font with a tiny x-height.

However, WCAG has clear requirements about resizability:

WCAG SC 1.4.4 (Level AA): Text must be resizable up to 200% without loss of content or functionality. No horizontal scrolling required. No overlapping text.

This means your layout must accommodate users who set their browser zoom to 200% or set a default font size of 24px in their browser settings. If your design breaks at 200% zoom, you fail WCAG.

2. The 16px Rule (And Why It's Not Arbitrary)

So if WCAG doesn't mandate 16px, why does everyone recommend it?

Because 16px is the default browser font size. When users don't change their settings, 1rem = 16px. When users do change their settings (for accessibility), 1rem scales proportionally.

Here's the breakdown:

  • 16px (1rem): The accessibility gold standard. Respects user preferences. Readable by most people.
  • 14px (0.875rem): Acceptable for secondary text if x-height is large. Pushing it for main body text.
  • 12px (0.75rem): Too small for body text. Only use for captions, footnotes, or legal disclaimers.
  • Below 12px: Fails WCAG for anything other than non-essential decorative text.
Never set body text below 14px. Margaret — and millions like her — can't read it. Use our Typography QA Lab to test your font sizes at different scales.

3. WCAG Font Size Chart by Element

Element
Minimum Size
Recommended
WCAG Level
Body Text
14px
16px+
AA
Secondary Text
13px
14px+
AA
Captions / Footnotes
12px
13px+
A
Headings (H1-H6)
1.5rem (24px)
Clamp(1.5rem, 3vw, 3rem)
AA
Mobile Body Text
15px
16px+
AA
Form Labels
14px
16px
AA
Buttons
14px
16px
AA
Legal Text / Disclaimers
11px
12px
A

4. px vs rem vs em: What WCAG Requires

This is where most accessibility failures happen — not because designers don't care, but because they don't understand the difference between CSS units.

px

Pixels (Absolute)

Fixed size. Does NOT respect user browser font settings.

❌ Not accessible

"I set body text to 14px. User sets default to 20px. Text stays at 14px. Margaret can't read it."

rem

Root EM (Relative)

Relative to root (<html>) font size. Respects user settings.

✅ Most accessible

"I set body text to 1rem. User sets default to 20px. Text scales to 20px. Margaret reads comfortably."

em

EM (Relative)

Relative to parent element. Can cascade unpredictably.

⚠️ Use carefully

"em compounds — a nested element's size multiplies by each parent. Use rem for predictable scaling."

/* ACCESSIBLE CSS — ALWAYS USE REM FOR TEXT */
html {
    font-size: 100%; /* 16px default, respects user settings */
}

body {
    font-size: 1rem;    /* 16px — accessible default */
    line-height: 1.6;
}

h1 {
    font-size: 2.5rem;  /* 40px — scales with user settings */
}

/* For responsive text that respects accessibility */
.responsive-text {
    font-size: clamp(1rem, 1rem + 0.5vw, 1.25rem);
    /* minimum 16px, scales smoothly, maximum 20px */
}

5. Responsive Font Sizing That Respects Users

Mobile users have different needs than desktop users. But WCAG applies regardless of device. Here's how to handle responsive typography accessibly:

Test on your phone:

Viewport: 375px

This is how your body text appears at this screen width. On mobile, 16px is the recommended minimum.

Caption text (should be at least 12px, ideally 13px)

Pro tip for responsive accessibility: Use clamp() for fluid typography that never goes below accessible minimums. Example: font-size: clamp(1rem, 1rem + 0.5vw, 1.25rem); This ensures text never falls below 16px on mobile, scales smoothly, and never exceeds 20px on large screens.

6. How to Test Font Size Accessibility (The Margaret Test)

I call this the "Margaret Test" — because she's the reason I started doing it.

1

Set browser zoom to 200%

Chrome: Cmd/Ctrl + (plus). If text overlaps, cuts off, or requires horizontal scrolling — you fail.

2

Change default font size in browser settings

Chrome → Settings → Appearance → Font size → Large (20px). Check that your site uses rem and respects this setting.

3

Test on an actual phone

Emulators lie. Put your phone in bright sunlight and try to read. If you squint, your users will too.

4

Use automated testing tools

Our Typography QA Lab includes a legibility tester that flags font sizes below 14px and checks WCAG compliance.

7. Common Font Size Accessibility Mistakes

❌ Mistake 1 — Using px for text sizes

"I set body text to 14px." That's 14px forever. User sets default to 20px. Your text stays at 14px. They can't read it. Use rem instead.

❌ Mistake 2 — Mobile text smaller than 16px

Mobile users often read in bright sunlight, on trains, while walking. 14px on mobile is a readability disaster. Always use 16px minimum for mobile body text.

❌ Mistake 3 — Fixed containers that don't scale

Your text might be 16px, but if it's in a fixed-width container that doesn't expand at 200% zoom, text will overflow or get cut off. Use max-width with relative units.

❌ Mistake 4 — Assuming users can zoom

Not all users know how to zoom. Many don't know browser settings exist. Design for default accessibility, not as a fallback.

WCAG Font Size Checklist

Body text — minimum 16px (1rem) using rem units
Secondary text — minimum 14px (0.875rem)
Captions — minimum 12px (0.75rem), ideally 13px
Line height — 1.5–1.7 for body text
Rem units — used for all text sizes (not px)
200% zoom test — no horizontal scroll, no overlapping text
Mobile test — body text readable in bright sunlight
Browser font setting test — text scales when user changes default
Clamp() for responsive — never below minimum, scales smoothly

Frequently Asked Questions

What is the minimum WCAG compliant font size?

WCAG doesn't specify a hard minimum, but the industry standard is 16px for body text, 14px for secondary text, and 12px for captions. Text must be resizable to 200% without breaking the layout.

Is 12px font size WCAG compliant?

12px is generally too small for body text under WCAG. It may be acceptable for captions, footnotes, or legal disclaimers if contrast is high (7:1 minimum) and users can zoom. For main content, use at least 16px.

What is the best unit for accessible font sizes?

rem. It's relative to the root font size and respects user browser settings. Avoid px for text. Use em sparingly (it compounds unpredictably).

Does WCAG require different font sizes for mobile?

WCAG doesn't distinguish between devices — the same 200% zoom requirement applies everywhere. However, best practice recommends 16px minimum for mobile body text due to smaller screens and varied lighting conditions.

How do I test if my font size is accessible?

Set your browser zoom to 200%. If text overflows, gets cut off, or requires horizontal scrolling, you fail WCAG. Also test by changing your browser's default font size to Large (20px) — if your site uses rem, it will scale correctly.

MA

Muhammad Afsar Khan

Founder of FontPreview.online — building free typography tools for designers, developers and business owners. Created this guide after Margaret's email made him realize that "clean design" doesn't mean "exclusive design."

Read more about FontPreview →

Related Guides

WCAG-Ready Font Licensing
Need Licensed Accessible Fonts for Your Team?
Meeting WCAG requirements? Make sure your fonts are fully licensed for production — Monotype's team plans cover web, app and commercial use with accessibility-first typefaces.
See Team Plans →

Affiliate link — we may earn a small commission at no extra cost to you