A NSW Government website
Search for a command to run...
Every government email must be readable, understandable and actionable – for everyone. This includes people using screen readers, high-contrast modes or keyboard navigation.
Globally, more than 285 million people live with visual impairments, and 36 million are blind. Colour vision deficiency affects 1 in 12 men and 1 in 200 women. This is a significant group we cannot overlook.
Accessible emails are not just inclusive – they also reduce legal risk. The Web Content Accessibility Guidelines (WCAG), referenced in Australian law, set the minimum standard.
Unlike websites, HTML emails rely on nested tables, simplified CSS and inconsistent client support. Without care, this can:
Key practices recommended by Campaign Monitor and Vision Australia include:
The NSW Email Design System embeds accessibility into email templates by default. Here are some essential techniques:
Use real headings (<h1> to <h3>) and lists. Use role="presentation" or role="none" on layout tables so screen readers ignore visual structure.
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td>
<h2>Feature highlight</h2>
<p>Short intro text that explains the section.</p>
</td>
</tr>
</table>Define the page language and use role="article" with aria-roledescription="email".
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>NSW Monthly Update</title>
</head>
<body>
<div role="article" aria-roledescription="email">
<!-- email content -->
</div>
</body>
</html>Use dir="rtl" on containers where needed to ensure correct reading order and alignment.
<table role="presentation" width="100%" dir="rtl" cellpadding="0" cellspacing="0">
<tr>
<td align="right">
<h2>مرحبا بك</h2>
<p>هذا قسم باللغة العربية.</p>
</td>
</tr>
</table>Use colour combinations that meet WCAG AA contrast ratios: 4.5:1 for normal text and 3:1 for large text. Never rely on colour alone to convey meaning. Underline links for clarity.
<p>
For details, see our
<a href="https://digital.nsw.gov.au/features" style="color:#00558B; text-decoration:underline;">
new features page
</a>.
</p>alt text for informative images.alt="" and role="presentation" for decorative images.<!-- Informative image -->
<img src="https://example.com/team.jpg" width="640" height="360"
alt="NSW project team presenting the new dashboard">
<!-- Decorative image -->
<img src="https://example.com/divider.png" width="640" height="24"
alt="" role="presentation">Ensure buttons meet the minimum 24x24 CSS pixel target size (recommended: ~44x44px) and maintain AA contrast.
<a href="https://digital.nsw.gov.au/register"
style="
display:inline-block;
padding:14px 28px;
background:#00558B; /* ensure AA contrast with the text */
color:#FFFFFF;
font-size:16px;
font-weight:700;
line-height:1;
text-decoration:none;
border-radius:8px;
">
Register now
</a>Use classes like .mobile-12 and .mobile-center to stack content on smaller screens and preserve reading order.
<!-- Two columns that stack on mobile -->
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td class="mobile-12" width="50%" style="padding:12px;">
<h3>Update</h3>
<p>Key news item goes here.</p>
</td>
<td class="mobile-12" width="50%" style="padding:12px;">
<h3>Action</h3>
<p><a href="https://example.gov.au" style="text-decoration:underline;">Start now</a></p>
</td>
</tr>
</table>
<!-- Center on mobile -->
<p class="mobile-center" style="margin:0;">
<a href="https://example.gov.au/book" style="text-decoration:underline;">Book an appointment</a>
</p>Disable auto-detection for phone numbers and enable dark mode support using meta tags.
<head>
<meta charset="utf-8">
<meta name="format-detection" content="telephone=no, date=no, address=no, email=no, url=no">
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<title>Service NSW — Reminder</title>
</head>Avoid flashing animations. Use finite loops and descriptive alt text for animated GIFs.
<!-- Subtle, finite-loop GIF with descriptive alt.
Avoid flashing more than 3 times per second. -->
<img src="https://example.com/celebrate.gif" width="600" height="200"
alt="Celebrating the 2025 launch (subtle confetti animation)">
<p style="margin:8px 0 0 0; font-size:14px; color:#444;">
Animation loops briefly, then stops.
</p>Include a well-structured plain-text alternative to improve compatibility across clients and assistive technologies.
NSW Digital Newsletter
Key updates inside.
Register now: https://digital.nsw.gov.au/register
Unsubscribe: https://digital.nsw.gov.au/unsubscribeUse tools like Axe and Lighthouse CI to catch common WCAG 2.1 issues.
# Pre-build docs
npm run build
# Run Axe on static HTML in ./docs
npm run a11y:axe
# Run Lighthouse CI (lhci) against ./docs
npm run a11y:lighthousenpm run a11y:axe or npm run a11y:lighthouseAutomated accessibility tools like Axe and Lighthouse are built for websites. When used on HTML emails, they may flag issues that don't apply to the email environment.
One common example is the meta viewport warning. Most responsive HTML emails include this line in the <head> section:
<meta name="viewport" content="width=device-width, initial-scale=1">This tag helps mobile devices scale the content correctly in some email clients, particularly Apple Mail. However, many email clients ignore or strip this tag altogether—so it's not essential for rendering and often not relied upon to fix layout issues.
Many email clients use their own rendering engines or modify HTML before displaying it. As a result:
<html> or <main> landmarks) may not apply, because email clients don't support full HTML5 semantics or browser-style accessibility APIs.Before suppressing any audit warnings, verify whether the flagged issue affects email accessibility or is only relevant for websites.
These trusted resources can help you assess email client support and accessibility:
Use these tools to decide whether an issue affects real users in real email clients–not just websites. This approach ensures that you don't overlook genuine accessibility barriers while avoiding irrelevant warnings.
Automated tools miss some issues. Also perform manual checks:
Even with accessible frameworks, developers must ensure:
lang and dir attributesThese choices require human judgement – but the right tools make them easier.
Accessible emails ensure government messages reach all Australians. Start with WCAG–aligned defaults and design with empathy.
Make sure everyone can perceive your content:
Make content easy to navigate and use:
Help users understand and interact with content:
Ensure compatibility with current and future technologies: