Does Smaller Text Need More Contrast? How to Choose Colors for Web Text
When text on a web page becomes smaller, even a familiar gray can seem harder to read. Does that mean small text has to meet a higher contrast ratio than large text? Under WCAG, there is no separate numerical requirement that increases every time the font size decreases. Instead, the minimum contrast requirement distinguishes ordinary-sized text from qualifying large text. Using a fictional community-workshop registration confirmation page, this article explains how to assess color alongside font size, weight, and the actual background.
Check 12–14px Text Against the Normal-Text Contrast Requirement
A contrast ratio expresses the relative luminance difference between letters and the background behind them. Under Level AA of WCAG (Web Content Accessibility Guidelines, standards for making web content more accessible), normal-sized text generally requires at least 4.5:1 contrast, while qualifying large text requires at least 3:1. Large text is generally defined as at least 18pt in regular weight (about 24 CSS pixels), or at least 14pt when bold (about 18.7 CSS pixels). The actual typeface and equivalent sizes for languages such as Japanese also matter. Here, px means CSS pixels, a unit used to specify text size on web pages.
For example, both a 13px instruction and a 16px paragraph are normally evaluated against 4.5:1. Shrinking an instruction from 14px to 12px does not introduce a new 6:1 WCAG rule. Still, small letters can be harder to distinguish, especially in a thin font. Passing the minimum contrast threshold does not guarantee comfortable reading. Check the rendered font and increase its size where necessary.
A heading around 24px in regular weight may qualify for the large-text 3:1 threshold. This means the same gray could be insufficient for a 13px instruction but satisfy the numerical threshold when applied to a qualifying large heading. Never label a text color “AA compliant” without specifying its background, size, weight, and use.
Compare Small Text Colors on White and Pale Confirmation Panels
Imagine a fictional workshop registration confirmation showing “Date: October 22,” “Meeting point: East Building, second floor,” and “Please present your registration number on arrival.” These are made-up interface details, not a real booking. The color examples use HEX codes: a hash sign followed by six hexadecimal digits (0–9 and A–F).
Option A: Display 13–14px Instructions on White
- Use white #FFFFFF for the background and deep blue-gray #263746 for the main explanation. The text-to-background contrast ratio is approximately 12.23:1.
- For short 13–14px details near the date or meeting point, try muted blue-gray #536575. Against white #FFFFFF, it has approximately 6.02:1 contrast, exceeding the 4.5:1 normal-text minimum.
- A lighter gray-blue #788691 has only approximately 3.74:1 contrast against white #FFFFFF. It is insufficient for a 13px explanation. In a heading that qualifies as large text, such as about 24px in regular weight, it does exceed the 3:1 numerical minimum.
An even paler gray-blue #9EADB8 has approximately 2.30:1 contrast against white #FFFFFF. This does not meet either the 4.5:1 normal-text threshold or the 3:1 large-text threshold. Avoid using it for meaningful instructions. Contrast is a useful calculation, but also inspect whether the actual shapes of the letters remain recognizable.
Option B: Move the Same Details onto a Pale Information Panel
Now group the workshop details on a pale green-gray #EEF4F2 background. Deep blue-gray #263746 body text contrasts with that panel #EEF4F2 at approximately 10.98:1, while muted blue-gray #536575 instructions provide approximately 5.41:1. Both combinations meet the 4.5:1 minimum for normal-sized text.
The lighter gray-blue #788691 gives only approximately 3.36:1 against the pale panel #EEF4F2, so it still fails for a 13px instruction. Do not judge a pairing simply by whether the two hues look different. The important comparison is between the text color and the surface immediately behind it.
For a genuine link such as “View venue directions,” use deep blue #175B78 with an underline. Its contrast ratio is approximately 6.73:1 on the pale panel #EEF4F2 and 7.49:1 on white #FFFFFF. The underline communicates that the text is actionable without depending on color alone.
After Checking Contrast, Test Text Enlargement and the Actual Font
If the small text does not have enough contrast, darken its color or lighten its background and calculate the ratio again. But do not stop at reaching the numerical threshold. If a 13px label remains hard to read, consider increasing it to 14–16px. Important details such as a meeting point or registration number should not be pushed into tiny, faint lettering simply to save space.
WCAG Level AA also includes a requirement that text can generally be enlarged to 200% without loss of content or functionality. Check the page on desktop and mobile with enlarged text: labels should not be clipped, and field values should not overlap their headings. If the responsive layout changes the foreground or background colors during enlargement, reassess the resulting pairings.
All contrast figures here were calculated for solid, opaque colors. For letters placed over photographs or made translucent with opacity, test them against the actual rendered background instead. For small text, the practical goal is not merely to make everything darker; it is to provide enough contrast and a font size people can actually read.