Skip to content
easeweb
Search topics

Headings set as pictures of text in a brand font

A pottery studio exports its headings as pictures to show a script typeface its licence doesn't let it embed in a website: Level AA allows that, but no reader can restyle those headings, and on a dark theme they almost disappear.

WCAG 2.2
SC 1.4.9AAA
Required by
Not required by Section 508 or EN 301 549
Broken <img src="/type/classes.png" alt="Classes">
The accessibility problem illustrated: Low vision:Where did the heading go?
01

The problem

People who read with their own fonts and colours can't apply them to the headings, and on a dark theme the headings almost disappear.

02

Try it

Turn on your own fonts and colours, and read the headings.

Turn on My fonts and colours. The paragraphs change to a plainer font, larger and light on dark. Do the headings change with them?

Broken Can you fix this?

BrokenEach heading a picture of the brand's script

Wheel and hand-building classes for beginners, every Saturday morning.

The studio is a five-minute walk from the station, open Thursday to Sunday.

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Set every heading as real text in a web font licensed for the site, and keep pictures of words for the logo.

  1. 1Every heading, label and quote can be read as real text, from the start or through a switch at the top of the page.
  2. 2Choose a typeface the site can use as a web font, or a close match that can be.
  3. 3Keep pictures of words for the logo and for lettering that is itself the subject.
Before Each heading a picture of the brand's script
<h2>  <img src="/type/classes.png" alt="Classes" width="168" height="56"></h2><p>Wheel and hand-building classes for beginners, every Saturday morning.</p>…
After

Real text in a web font

<h2 class="lettered">Classes</h2><p>Wheel and hand-building classes for beginners, every Saturday morning.</p>…

Why this fix: Keep words as text

Fixing this with an AI coding assistant? Get this guide as Markdown, or get every guide in your coding agent.

04

Design ideas

A heading can have character and stay text.

Three more looks for a display heading, all real text, and one that only looks like them. Try selecting the words in each.

In the design file

  • Check that each typeface’s licence covers websites before the design is signed off, and write it beside the type styles.
  • Keep every heading as live text in the design file, never outlined or flattened into a picture.
  • Name a fallback font close in width for each display typeface, for while it loads.
  • Keep pictures of words for the logo, and mark it as the logo.

Passes

  • Classes

    Fired twice a week, glazes mixed in the studio.

    Lettering with a gradient fill A warm gradient clipped to real letters. Its lightest end, #b5562c, is 4.85:1 on white, so every part of the word reads, and a reader’s own font and colours still replace it.
  • The kiln

    Fired twice a week, glazes mixed in the studio.

    Letters filled with a photo The studio’s photo shows through heavy letters, under a brown tint that keeps its lightest part at 4.90:1 on white. The word is text: it can be selected, found and translated.
  • Visit us

    Five minutes from the station, open Thursday to Sunday.

    Heading set vertically beside the text The heading runs down the side of its section, set with the writing direction rather than drawn turned. It is text, so it takes the reader’s font and grows with their text size.

Fails

  • Fired twice a week, glazes mixed in the studio.

    Photo-filled letters exported as one pictureWCAG 1.4.9 It looks like the photo lettering above, but try to select it: the letters are pixels with alt text, so no reader’s font, colour or text size reaches them. Clip the photo to real text instead.

    Rule of thumb: Keep words as text

05

Verify the fix

5 checks, no mouse.

Test with: Forced colors, Zoom

0 of 5 checked

Record the OS, browser and assistive-technology versions, the build, the date, and the actual result of each step. Repeat whenever the design changes typeface or a template adds a heading.

Limits

This is a starting pattern, not a guarantee for every application. Paths, font names, colours and class names are placeholders, and the font licence that applies to your typeface is for you to check. 1.4.9 is Level AAA, and WCAG does not recommend requiring Level AAA as a general policy for a whole site; the AA failure for words drawn into a picture is in images of text instead of real HTML text. Whether a remaining picture is a logo or essential lettering is a judgement, so keep it in your design review. Test the complete journey with the settings your users rely on.

This is a recreated teaching example, not a finding about a named client. The code is a starting pattern: test it in your own product. No completed assistive-technology test is claimed here.

Keep this fixed as your code changes.

Turn guides like this into rules your coding agents and CI follow, then have the result retested with a keyboard and screen readers.

How retests work