All posts

Email Accessibility Checklist: Alt Text, Contrast, Headings and Screen Readers

··3 min read

An accessible email is one a screen reader can read in order and a person with low vision can see. In practice that comes down to a short list: lang on the html tag, role=presentation on layout tables, real alt text, 4.5:1 text contrast, headings in order, and links that make sense on their own. Most templates miss two or three, and the light grey footer is the usual contrast failure.

Sources, read 2 November 2026: W3C's Understanding SC 1.4.3 Contrast (Minimum), Understanding SC 1.1.1 Non-text Content, Understanding SC 3.1.1 Language of Page and Understanding SC 2.4.4 Link Purpose.

The checklist

  1. lang on the html tag (for example lang=en). WCAG 3.1.1 asks for the page's language to be set so assistive technology reads it with the right pronunciation.
  2. A title element. Some clients and screen readers announce it when the email opens in a browser view.
  3. role=presentation on every layout table. Without it, a screen reader may announce "table, 3 rows, 2 columns" before every block.
  4. Alt text on every image. Describe what the image says ("50% off all boots until Sunday"), not what it is ("banner"). Decorative images get an empty alt. A file name like IMG_2041.jpg is read out letter by letter.
  5. Contrast of at least 4.5:1 for body text and 3:1 for large text. WCAG defines large as 18pt, or 14pt bold, which it puts at about 24px and 18.5px.
  6. Headings in order. One h1, then h2s, without jumping from h1 to h4. Screen-reader users navigate by heading.
  7. Descriptive link text. "See the winter collection", not "Click here". Empty links (an icon with no text or alt) are announced as just "link".
  8. Text at a readable size. We flag body text under 14px; it's a common floor in email design rather than a WCAG number.
  9. No justified text. Uneven word spacing makes lines harder to track, especially for dyslexic readers.

Two more that help everyone: send a plain-text version alongside the HTML (the HTML to plain text converter writes one), and don't put the whole message in a single image, which is unreadable with images off as well as to a screen reader.

How to run the check

  1. Copy the HTML from your builder's code view.
  2. Paste it into the email accessibility checker. It flags a missing lang or title, layout tables without role=presentation, missing or file-name alt text, empty or "click here" links, skipped headings, text under 14px, justified text, and contrast below 4.5:1 (3:1 for large text) for inline colours against the nearest background, assuming white where none is set.
  3. Fix, then test with a screen reader: VoiceOver on a Mac or iPhone, or NVDA on Windows, reading the email in your real inbox.

What an automated check can't tell you

It can see that alt text exists, not whether it's accurate. It can measure inline colours, not colours set in a stylesheet class or inside an image. It can't judge reading order in a multi-column layout, or what dark mode does to your colours. Treat a clean result as the floor, not a WCAG audit.

The footer is where most emails fail

Footers are usually small, light grey text: #999999 on white is about 2.8:1, below the 4.5:1 line. Since the footer holds your unsubscribe link and address, it's the part people most need to read. The email footer generator defaults to #555555, which passes, and the CAN-SPAM footer guide covers what the footer has to say.

Where SimpleVerifier fits

The checker is free and runs in your browser. Before you send, check the addresses on the verify page; the first 100 checks are free with a Google sign-in. Pro is $39 a month with the first 100,000 checks a month at full speed, then slower, never cut off. See pricing.

Common questions

What contrast ratio does email text need?

WCAG 2.2 success criterion 1.4.3 asks for at least 4.5:1 for normal text and 3:1 for large-scale text, defined as 18 point or 14 point bold (about 24px and 18.5px).

Should images in email have alt text?

Yes. Images that carry information need alt text describing that information. Purely decorative images, like spacers and dividers, should have an empty alt (alt with no text) so screen readers skip them.

Why use role=presentation on email tables?

Email layouts are built from tables, and screen readers announce tables as data, with row and column counts. role=presentation tells them the table is only for layout, so the content is read as normal text.

Is email accessibility a legal requirement?

It depends on who you are and where you sell; we can't give legal advice. WCAG is the standard most accessibility laws and policies point to, so meeting its basics is the practical target.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.