Email accessibility

Create email campaigns that are accessible for everyone.

Gareth Burroughes avatar
Written by Gareth Burroughes
Updated over a week ago

Adding accessible code to your email campaigns is essential for contacts who use screen readers to access the contents of their inbox.

The majority of these subscribers are people who are blind or have a severe vision impairment.

Accessible email code might be used by your contacts for various reasons:

  • Visual impairments such as blindness or colour blindness.

  • Impairments such as dyslexia or age-related issues.

  • A requirement to use screen readers to read emails.

Tables for presentation

A piece of code is automatically added to every table by EasyEditor. The code must be on the outer table and every table within a table too.

Example

<table role="presentation">

This code tells screen readers to ignore table code tags and only to read the table's content.

Limitation

Role=presentation does not work on tables with borders.

ARIA code

You can add ARIA code to hide certain parts of your email from screen readers, such as decorative graphics and duplicate content.

aria-hidden="true"

Use aria-hidden= "true" to make the email experience cleaner. Do not use it on focusable elements in an email – these are interactive sections which contacts can interact with using keyboard navigation, for example, buttons, links, or anything a contact clicks or selects.

Inbox preview text

Apple Siri

Siri can read emails to the recipient. It tells them who sent the email, what the subject line is, and then reads the inbox preview text.

Siri reads 500 characters. If the inbox preview text is too short, it will read the following items in the HTML code. These could be tags or links. This gives a very bad user experience.

For this reason, either make sure your inbox preview text is long enough or use clearspace lengthening code.

Editable hidden preview text with clearspace

Insert this code as the first item in the body of your email. Add it to a single-column block at the top of the build.

<table cellpadding="0" cellspacing="0" class="col-font-reset ee_element 
ee_textelement ee-hide-on-desktop ee-show-on-desktop" width="100%" ee-
type="element" data-title="Text" style="table-layout: auto;"><tbody><tr>
<td valign="top" align="left" class="element-pad element-bord root-
element-pad"><div class="ee_editable"><p style="line-height: 18px; text-
align: center; font-size: 11px; color: rgb(195, 194, 196);">Editable
hidden inbox preview text</p></div><div style="display: none; max-height:
0px; overflow: hidden;">&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp
;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&
nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nb
sp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp
;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&
nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nb
sp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp
;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌</div></td></tr></tbody></table>

The spacing ensures that the next item of text in the email does not appear after the inbox preview text, as this could be confusing and look bad. For example, the next item could be the alt text of a logo.

The above can also be used with non-hidden editable preview text, whenever you want to stop unwanted content showing in the inbox preview text. You need to copy the below div and paste it after the div containing your editable inbox preview text in your template (like in the example above).

<div style="display: none; max-height: 0px; overflow: hidden;">&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp
;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&
nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nb
sp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp
;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&
nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp;‌&nbsp;‌&nb
sp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;&nbsp
;‌&nbsp;‌&nbsp;‌&nbsp;‌&nbsp;‌</div>

Images

ALT text

Always include ALT attributes on images. This is because screen readers need something to read so they can describe images.

ALT attribute has no negative impact on deliverability.

TITLE attribute

It's recommended to use ALT text in addition to or instead of a TITLE attribute for the following reasons:

  • Someone who uses a keyboard to navigate websites, such as a person who lacks the fine motor control required by a mouse, will never see your title attributes because they have no way to hover over elements.

  • People who use a screen reader because they are blind or have poor vision will likely never have the title attribute read to them. Some screen readers don't support the title attribute, and those that do don't read the title attribute by default. It requires changing a setting for the title to be read, which not all users do.

  • Touchscreen devices such as phones and tablets don't support title attributes, creating an accessibility issue for everyone, not just those with a disability.

Design and code tips

Zoom in

Always test content scaled at 200% in the browser. As visually impaired people may view their devices zoomed in.

Testing should happen in a test send and not in EasyEditor, which should always be used at 100%.

Font sizes

  • Minimum regular font-size 14px.

  • Minimum light font-size 16px.

  • Disclaimer copy can be smaller, as screen readers will still read it.

Ease of visibility

  • Check contrast ratio. Use an accessibility contrast checker such as https://webaim.org/resources/contrastchecker/

  • Keep links underlined or use a visual identifier such as bold.

  • It might not be aesthetically pleasing to underline links, but it is helpful for visually impaired users.

Header tags for titles

  • Only use one <h1> heading per email.

  • Always follow a logical downward hierarchy for subheadings: h2, h3, h4. Avoid skipping header numbers, as screen readers follow them.

  • You can use multiple <h2> and <h3> tags as long as there is a sensible hierarchy within email sections.

  • Recipients using keyboard navigation can jump between sections to find what they need. You can adjust the size and styling of header tags in the CSS to meet visual needs, but to support accessibility and avoid screen reader confusion, only use them as headings and not as a way to format text.

Language tag

<html lang="en">

This attribute is very important for accessibility in multilingual email campaigns. If you have an international audience or are segmenting your list based on language, it helps screen readers, as well as browser and email clients, determine how to interpret and render the content correctly.

Add the language tag to the top header of your source code, for example:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" lang="en">

Reading

Avoid centre alignment with large bodies of text as people with some learning difficulties –such a dyslexia– might struggle to scan text when reading.

Graphics vs live text

  • Buttons added as graphical elements aren’t as accessible as buttons which use HTML and CSS with live text for the calls to action.

  • Use <H> tags rather than including headers as part of images.

Did this answer your question?