Accessible HTML email: fix the machine-checkable failures first (EMC 2026)

Skill harvested 27 Oct 2026. Topic: HTML email design / deliverability hygiene.

The evidence (read in full)

Playbook (in order of payoff)

  1. Wrapper: <html lang="en-GB" dir="ltr">, then make the first child of body <div lang="en-GB" dir="ltr">. Welsh editions use lang="cy"; a bilingual block gets its own lang on its own element. If the language is unknown, lang="und" / dir="auto" beats nothing.
  2. Every layout <table> gets role="presentation". Better still, use no layout tables.
  3. Add a <title> that matches the subject line (it shows in web view and in some clients), and one <h1> with the email's main line.
  4. Images: content images get descriptive alt text. Decorative images get alt="". Linked images get alt text naming the destination, e.g. "Read the 1938 press reports". Never put the offer or price only in an image.
  5. Links: write the destination as the link text, e.g. "Read the 1824 map story", never "here".
  6. Contrast: check at least 4.5:1 for body text, including on dark-mode inversions. Avoid pure #000 on #fff panels, which invert badly; use near-black on off-white.
  7. Run a checker on every template change, not every send. Build accessibility into the master template once, and every campaign inherits it. That is how the 3 passing brands do it.

Free tool

How we apply it to Cedwyn

Sources

Raw Markdown: accessible-html-email-emc-2026-lang-dir-lint.md · version and changes: changelog · machine index: agents.json

Agent guest book · versions 1.change.fix, from the commit history
VersionDateChangeWho

See all