Checklists · 21 checks
21 Email Checks to Run Before You Send
Email is the one channel you cannot fix after publishing. Once it is sent, it is sent, so the checking has to happen first.
21 Email Checks to Run Before You Send
- Checks
- 21
- Time
- About 20 minutes on a new template, less on every send after
- Last reviewed
- August 31, 2026
For the marketer or comms person building campaigns in Mailchimp, Klaviyo, HubSpot, or a hand-rolled template.
Email has a constraint no web page has, which is that you cannot push a fix. A broken link on your site gets corrected in a minute. A broken email sits in fifty thousand inboxes forever. The apology send goes to the same fifty thousand people.
It also has much weaker technology underneath it. Email clients strip CSS, ignore ARIA, and render the same HTML a dozen different ways depending on which one your reader opened it in. So the accessible move in email is nearly always the simple one, and a campaign that survives being stripped back is a campaign that survives everything else too.
Ten of these 21 checks are WCAG obligations wearing email clothing, and each of those names the rule underneath it. The other 11 belong to email itself, to the enhanced level, or to the record you keep afterwards, and between them they are the reason this list exists separately from the website one.
Structure inside the message
Screen reader users navigate an email by heading in exactly the way they navigate a web page, which surprises people who think of a campaign as a picture with words on it. The structure has to be real. Otherwise none of it works.
Use real heading elements
Your section headings need to be h1 and h2 tags rather than styled table cells or big bold spans. Anything presented as a heading has to be marked up as one, and in a long campaign the heading list is how somebody decides whether to keep reading or delete it.
WCAG 1.3.1
Set the language on the html element
One lang attribute carrying your language decides which voice and which pronunciation a screen reader uses for the whole message. Most email builders set it from your account, so this is usually a check rather than a task, and it is worth doing because getting it wrong makes the message unintelligible rather than merely worse.
WCAG 3.1.1
Mark layout tables as presentation
Email layouts are still built out of nested tables, because tables are what the clients reliably support. Add role="presentation" to each layout table and a screen reader treats it as arrangement rather than data. Leave it off and your reader hears "table, three columns, five rows" before a word of your message.
WCAG 1.3.1
Write a descriptive subject line and preheader
The subject is announced first and the preheader second, which makes them the two most-read lines in the campaign and the two most often left to fill themselves. "View this email in your browser" spends your best line on nothing.
Images and image blocking
Plenty of people read email with images off by default, which is a privacy setting rather than an accessibility one. So this group reaches far more people than screen reader users. An image-only campaign is invisible to more of your list than you would guess.
Never build the whole email as one image
With images blocked, a single-image campaign arrives as a blank rectangle with one alt string in it, and no amount of alt text carries a layout. Build the message as real text with images beside it. Real text zooms, reflows and translates. A picture of your headline never will.
WCAG 1.1.1
Give every meaningful image alt text
Describe what the image tells the reader at that point in the message, including the ones inside buttons and banners, because those are the ones carrying an action. Read the surrounding words first, though. Where the same information already sits beside it as text, the image is redundant and takes an empty alt.
WCAG 1.1.1
Give spacers and dividers an empty alt
Spacer images and decorative rules need an alt attribute with nothing inside it, so they are skipped rather than announced. Leaving the attribute off is a different thing and a worse one, because several clients then read the filename, and a campaign built with a dozen spacers becomes a dozen filenames read out loud.
WCAG 1.1.1
Set a background color behind images
Text placed over an image needs a background color on the cell behind it, so that when the image is blocked the words land on that color instead of on white. Without it, white text over a blocked hero image disappears. Your reader opens an empty block.
Color and type in email
Email gets read on a phone, in sunlight, on an old monitor at work, and in a dark-mode client that may recolor everything you sent. Give it more contrast than you think it needs. You control less of the rendering here than anywhere else.
Clear 4.5 to 1 contrast on body text
Take your text and background pairs to the contrast checker before the campaign is built, because a color that fails is a template change rather than a copy change. Gray text on a pale gray band is the usual failure, and it is usually inherited from a template somebody picked for looking calm.
WCAG 1.4.3
Set body text at 14px or larger
Sixteen is better. Fourteen is the floor worth defending. Small type in email is one of the most common complaints reaching a support inbox. There is no reliable zoom to rescue it either, because many clients handle text scaling badly or not at all.
Carry meaning by more than color
A sale price shown in red is a price shown in red, to anybody who cannot pick that color out. Pair it with a word instead. "Was $40, now $25" works in every client, in dark mode, and with the images switched off, which is three problems solved by one edit.
WCAG 1.4.1
Left-align body text
Justified text opens rivers of white space that make lines hard to track, and centered paragraphs move the start of every line, which costs anybody reading through a magnified window. WCAG addresses this at the enhanced level rather than at AA, so take it as advice with evidence behind it rather than as an obligation.
Links and buttons
Screen reader users often pull up a list of every link in a message and read it on its own, with no surrounding sentence attached. Most email link text says nothing in that list. Most email buttons are pictures. This is the group that costs you clicks.
Write link text that names the destination
"See the spring range" works on its own in a list. "Click here" and a bare address do not, and the address gets read out character by character in places. The rule lets the sentence around a link supply its purpose, and a link list strips that sentence away, so write for the list.
WCAG 2.4.4
Build buttons as real links rather than images
A button built from HTML and CSS survives image blocking, scales when somebody enlarges their text, and stays readable in dark mode. A button that is a picture of a button does none of those things, and it is the commonest reason a campaign's main action disappears entirely.
Make tap targets at least 44 by 44 pixels
Two numbers matter here and they are not the same. The AA obligation is 24 by 24 CSS pixels, with a spacing route out for anything smaller. The 44 by 44 we recommend is the enhanced level. Apple asks for 44 points and Google for 48 density-independent pixels, which is platform guidance rather than anything a WCAG audit measures. Most email is read on a phone, so aim at the larger number and treat the AA one as your floor.
WCAG 2.5.8
Include a real plain-text version
Read what your platform generated rather than trusting it, because the automatic version usually arrives as a dump with the addresses inline and the structure gone. A written plain-text alternative is also the most robust accessible version of a campaign there is, since it survives every client, every blocked image and every stripped style.
What the run leaves behind as evidence
A check you ran and cannot describe afterwards is a feeling. These five fields turn the same twenty minutes into a record, so the next campaign inherits an answer instead of restarting the argument. Fill them in while you test rather than from memory later.
Name the clients and versions you tested in
Write the client, its version and the operating system, so Outlook 365 on Windows 11 rather than Outlook. The desktop, web and mobile versions of the same product render differently, and so do two versions of the desktop one. Take the list from your own campaign reports rather than from an article about popular clients, because your list is not everybody's list.
Record the template and version this evidence belongs to
Evidence attaches to a template, not to a campaign. Give the template a version number, write it here, and every later send built on that version inherits the result. Change the template and the record expires, which is the whole reason for writing the version down.
Name the screen reader and the pairing, not just the product
A screen reader problem reproduces on a combination rather than on a product, so NVDA reading Outlook on Windows is a different test from VoiceOver reading Apple Mail. Record which pairing found what. "It works for me in VoiceOver" is how a real fault gets closed as fixed.
Note whether images were blocked and dark mode was on
Those two settings change the answer more than anything else on this list. Several clients recolor a message on their own, which can take a pair you measured at 4.5 to 1 and land it somewhere that fails, and your contrast check tested one rendering of it. Run the message with images on and off, in light and in dark, and record all four.
Write down which clients you did not test
This is the field that keeps the record honest, and it is the one everybody leaves out. A list of what you covered is only useful beside a list of what you skipped. When somebody asks in six months whether the campaign worked in a client nobody opened, the answer belongs on the sheet rather than in a memory of a Tuesday.
One honest limit
Email clients vary enormously in what they support, and no checklist survives contact with all of them. There is no universal compatibility to certify and nobody can sell you one, so test your template in the three or four clients your own list actually uses, write down which ones those were, and keep the design simple enough that a stripped-down rendering still carries the message.
Keep going
Other checklists
Ticked every box and want it verified?
The full audit tests all 55 WCAG 2.2 A and AA rules with a pass or fail on each, adds an expert review, and puts a real blind screen-reader user on your key journeys. $499, report in 5 business days.