Your newsletter is read by people using screen readers, magnification, high-contrast modes, and email clients that block images by default. An accessible email reaches all of them; an inaccessible one quietly loses part of your list on every send. The fixes are concrete and mostly about structure and discipline rather than design talent.
This guide is written for marketers who build campaigns in tools like Mailchimp, Klaviyo, or HubSpot, not for accessibility specialists. It covers the five things that matter most: semantic structure, alt text, colour contrast, link text, and never relying on images alone. Each maps to a real WCAG success criterion you can check before you hit send.
Why accessible email is a marketing problem, not just a legal one
Many readers have a permanent or situational reason your campaign is hard to use: a screen reader, a magnifier, bright sunlight, a cracked phone screen, or a connection that never loads your hero image. When an email is built as one giant graphic with a line of fine print underneath, all of those readers get nothing actionable. That is lost revenue, not just a compliance gap.
There is a legal dimension too. The European Accessibility Act has applied since 28 June 2025, with WCAG 2.2 Level A and AA as the baseline via EN 301 549. Email itself sits in a grey zone, but the destinations your campaigns drive to, sign-up forms, account pages, checkout, are clearly in scope. Building the email accessibly keeps the whole funnel consistent and holds the landing page you link to the same standard.
Semantic structure: build the email like a document, not a poster
Screen readers navigate by structure. If your newsletter is a flat stack of text with no headings, a user cannot skim for the section they care about; they must listen to every word in order. Give the email real headings using actual heading tags (an <h1> for the main title, <h2> for section titles) rather than bolded, enlarged text. Most drag-and-drop builders have a heading block; use it instead of a text block with the font size cranked up.
Set the language attribute on the email (lang="en", or whatever you send in) so screen readers use the correct pronunciation engine. Keep a logical reading order: the visual top-to-bottom flow should match the underlying HTML order, which matters when multi-column layouts collapse on mobile. And give the message a descriptive <title> and a meaningful preheader, the short snippet shown after the subject line, so the preview text is useful rather than a stray 'View in browser.'
- Use heading blocks for headings; do not fake them with bold text.
- Set the
langattribute on the email body. - Match visual order to source order, especially in columns.
- Write a real preheader instead of leaving template filler.
Alt text: describe the message, not the picture
Every meaningful image needs alt text that conveys what the image communicates. The test is simple: if the image failed to load, would the reader still understand the email? For a product photo, name the product. For a banner with text baked in, put that text in the alt attribute verbatim, a banner reading 'Spring Sale, 25% off, code SPRING25' should carry that exact offer and code, because it is otherwise invisible to a screen reader user and to anyone whose client blocks images.
Decorative images, spacers, divider lines, background flourishes, should get empty alt text (alt="") so assistive tech skips them instead of announcing 'image' over and over. Never leave alt off by accident, though: a missing attribute makes some screen readers read out the filename, so your subscriber hears 'IMG underscore 4471 dot jpg.' Run a page through the alt text checker to catch images that are missing or mislabelled.
Contrast: make every word and button legible
Low-contrast text is the single most common accessibility failure in email, and it is trivial to avoid. Body and heading text needs a contrast ratio of at least 4.5:1 against its background; large text (at least 18pt, or 14pt bold) can drop to 3:1. That trendy light-grey paragraph on a white card almost always fails, and so does white text on a pale brand-colour button.
Buttons and links have a second requirement under WCAG 1.4.11 Non-text Contrast: the control's edge or fill must reach 3:1 against the surrounding email background so it reads as a control. Check both the text-on-button and the button-on-background pairs. Run your palette through the contrast checker before you lock the template, and test in dark mode, hosted images on transparent backgrounds can vanish.
- Normal text: at least 4.5:1 against its background.
- Large text (>=18pt or 14pt bold): at least 3:1.
- Button or input boundary vs background: at least 3:1 (WCAG 1.4.11).
- Preview in dark mode; check logos and PNGs with transparency.
Link text and CTAs: 'click here' tells no one anything
Screen reader users often pull up a list of all links in a message to navigate. If every CTA says 'Click here' or 'Read more,' that list is useless, ten identical entries pointing nowhere obvious. Write link text that describes the destination out of context: 'Read the Q3 product roadmap,' 'Shop the summer collection,' 'Update your email preferences.' This helps sighted skimmers too, so it is one of the rare accessibility wins marketing metrics tend to reward directly.
Make the link target large enough to tap: WCAG 2.2's 2.5.8 Target Size (Minimum, AA) asks for at least 24 by 24 CSS pixels, and on mobile a comfortable button is closer to 44 pixels tall. Do not rely on colour alone to signal a link, an inline link distinguished only by a slightly different blue fails for colour-blind readers; underline it or otherwise mark it. Keep the most important CTA reachable as live text early in the email, not buried inside an image at the bottom.
The cardinal rule: never rely on images alone
Tie the previous points together with one principle. If a piece of information exists only inside an image, the offer, the discount code, the date, the call to action, then it does not exist for anyone whose client blocks images, for screen reader users when the alt text is thin, or for readers at high zoom where the image degrades. Render all copy as live HTML text and use images to illustrate, not to carry, the message.
Build a quick pre-send routine: real headings, alt text on every image, contrast checked, descriptive links, and a plain-text version that mirrors the HTML so text-only clients still convey the full offer. Send yourself a test, turn images off, and read it top to bottom, if it still makes sense and you could act on it, you are most of the way there. For a broader pre-launch sweep across your site and landing pages, work through the accessibility checklist, and scan the page your campaign links to with AccessScan to catch contrast, heading, and alt-text issues automatically before traffic arrives.