> ## Documentation Index
> Fetch the complete documentation index at: https://docs.instantcampaign.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Accessibility and dark mode checks

> Check every email against WCAG 2.1 AA and the main dark-mode pitfalls while you edit, see the results before you send, and keep a per-send accessibility report for clients and audits.

InstantCampaign checks your emails for accessibility and dark-mode problems: missing alt text, low contrast, unclear link text, a missing language, layout tables that screen readers misread, and colours that break when a mail app switches to dark mode. The checks are rules applied to the email's HTML, with no AI involved, so the same email always gets the same result.

> [!NOTE]
>
> The checks are **warnings only**. Nothing they find stops a campaign from sending.

## Check an email while you edit

**1. Open the Accessibility panel**

In the email builder, open the **Styles** tab of the right-hand panel. **Accessibility** sits under **Quick check**. For a template written in HTML or MJML, open **Accessibility** under the code editor instead.

**2. Read the score and the issues**

The panel shows a score out of 100 and separate scores for **Accessibility**, **Dark mode** and **Readability**. Issues are grouped into **Errors**, **Warnings** and **Suggestions**. Each one names the WCAG criterion it tests, or says **Beyond WCAG**. The panel checks again a moment after each change. Click **Check again** to re-run it straight away.

**3. Jump to the block**

Click an issue to select the block it comes from. This works when the issue can be matched to a block by its image, its link or its text.

**4. Apply a one-click fix**

Three issues have a fix button:

* **Set the language** marks hand-written HTML with the workspace's default language (or the language you are translating into), so screen readers use the right voice. Emails built from blocks get their language automatically (see below), so you rarely see this one there; a language you set before still wins.
* **Add the dark-mode metas** adds the `color-scheme` and `supported-color-schemes` tags to hand-written HTML. Emails built from blocks always have them.
* **Mark layout tables** adds `role="presentation"` to tables used for layout.

## What is checked

| Check | WCAG 2.1 |
| - | - |
| Images without alt text (an empty `alt=""` is fine for decorative images) | 1.1.1 |
| Linked images with no text, so the link has no name | 1.1.1 |
| No main heading, several main headings, or skipped heading levels | 1.3.1 |
| Layout tables without `role="presentation"` | 1.3.1 |
| Text contrast below 4.5:1 (3:1 for large text: 24px, or 18.66px bold), worked out from the text colour and the background it actually sits on | 1.4.3 |
| Text smaller than 12px | 1.4.4 |
| No document title | 2.4.2 |
| Link text that says nothing ("click here", "read more"), a bare web address, or the same text for different destinations | 2.4.4 |
| No document language | 3.1.1 |

Beyond WCAG, for dark mode and readability:

* **Dark-mode metas missing**: no `color-scheme` / `supported-color-schemes` tags.
* **No dark-mode styles**: light backgrounds are hard-coded but there are no `prefers-color-scheme: dark` rules.
* **Fails under full or partial colour invert**: a text and background pair that passes in light mode but fails when a mail app inverts every colour (Gmail on iOS, Outlook for Windows) or only darkens light backgrounds (Gmail on Android, Outlook.com).
* **Button without its own background**: a button sets its text colour but leaves the background to whatever is behind it.
* **Long all-caps text** (over about 40 characters) and **long lines** (over about 90 characters).

Text hidden from view, such as the preheader, is not checked. Text over a background image is not checked for contrast, because its background cannot be known from the HTML.

### The email's language

Emails built from blocks are marked with their language automatically, so screen readers read them in the right voice: the language of the translation being sent, otherwise your workspace's default language (**Settings → General**), otherwise English. Arabic, Hebrew, Persian, Urdu and Yiddish are also marked right-to-left. Emails you write in HTML keep the language you put in them.

## Before you send

On the campaign plan page, **Ready to send** shows one accessibility line per email: its score, how many errors and warnings it has, and **Open in the editor**, which opens the builder at the Accessibility panel. These lines never change whether the campaign is ready.

## The accessibility report

> [!NOTE]
>
> Viewing the reports, their page and their exports is on the **Essential** plan and above. Reports are recorded on every plan, so when you upgrade you see the history of campaigns you sent before. The editor panel and the plan-page lines work on every plan.

Each time a campaign is sent, InstantCampaign records the checks for the email it went out with: one report for each different version of the email. Open the campaign and click **Accessibility** to see them. The page lists the WCAG 2.1 AA criteria checked, the checks beyond WCAG, each report's scores and issues, and when it was recorded.

Click **Export as HTML** for a standalone page you can send to a client or keep in an audit file, or **Export as JSON** for the raw results.

> [!WARNING]
>
> The European Accessibility Act has applied to many consumer e-commerce services in the EU since 28 June 2025. This report describes what automated checks found in your email. It is not legal advice and does not certify that the email conforms to WCAG or the Act, and some criteria need a person to judge. Ask counsel what applies to you.

## From an AI assistant

The MCP tool `get_accessibility_report` returns a campaign's report scores and counts per rule for an assistant connected to your workspace. It never returns the email's HTML or text. See [MCP server](https://docs.instantcampaign.ai/guides/developers/mcp-server.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.