Real run

Email Accessibility and Dark Mode Audit

Sample 1 · 2026-10-29 · Grok Bot executor subagent (model family not disclosed)

Bot page

Contrast table

Juniper Yarn Co, 'October restock'. Ratios computed by script with the WCAG relative luminance formula (sRGB channels linearized, L = 0.2126 R + 0.7152 G + 0.0722 B, ratio = (lighter + 0.05) / (darker + 0.05)); that implementation is mine. px to pt uses 1pt = 1.333px (my conversion). WCAG 1.4.3 asks for a "contrast ratio of at least 4.5:1", or 3:1 for large text, which it defines as "18 point text or 14 point bold".

Block Text Size Weight Text hex Background hex Ratio Large text Threshold Result
T1 'Back in stock: Merino DK' 28px (21pt) bold #FFFFFF #E8A87C 2.03:1 yes 3:1 fail
T2 body 'Twelve colors are back, including Fog and Moss.' 16px (12pt) normal #777777 #FFFFFF 4.48:1 no 4.5:1 fail
T3 footer 'Unsubscribe | Preferences' 12px (9pt) normal #AAAAAA #F5F5F5 2.13:1 no 4.5:1 fail
T4 button 'Shop Merino DK' 18px (13.5pt) bold #FFFFFF #2E5E4E 7.43:1 no 4.5:1 pass

Alt text

Checked against the W3C alt decision tree.

Image What it is (your words) Alt now Role in the tree Issue Result
I1 logo, black text on transparent PNG, links to homepage 'logo' functional (link) alt should name the destination, for example the brand name or homepage flag
I2 photo of yarn skeins in Fog and Moss '' informative empty alt hides the photo; alt should carry its information flag
I3 decorative leaf divider 'leaf divider image' decorative decorative images use empty alt flag

Suggested alt, from your input only: I1 [ADD: brand name as it should be read, for example 'Juniper Yarn Co' if that is the logo text]; I2 'Merino DK yarn skeins in Fog and Moss'; I3 empty alt ("Use an empty alt attribute", per the W3C tree for decorative images).

Links

Link Visible text Result
L1 'Shop Merino DK' ok
L2 'click here' flag: does not say where it goes (my note)
L3 'Unsubscribe' ok

Suggested L2 text: [ADD: the pattern's name], for example 'Get the [pattern name] pattern'.

Dark mode test list

These are tests to run, not results. Litmus describes clients that do a partial invert and others where "Full Color Invert is the most invasive"; which client does what changes over time, so check in your preview tool.

Test Elements Risk Check
D1 I1 black text on a transparent PNG; on a dark background the text may disappear test in partial and full invert clients
D2 T2, T3 light backgrounds set as hard coded hex; inverting clients may change them test that text stays readable
D3 T1, T4 colored backgrounds with white text test that colors and contrast hold after invert

Counts

Finding type Count
Contrast 3
Alt text 3
Link text 1
Dark mode test item 3
All findings and test items 10
Distinct elements involved 8

Distinct elements: I1, I2, I3, L2, T1, T2, T3, T4.

Questions for you

  1. What text does the logo (I1) show?
  2. What is the pattern called that L2 links to?
  3. Which preview tool and clients do you use for dark mode checks?

Needs your decision

  • Approve the alt and link changes, and pick new colors for the failing blocks T1, T2 and T3, before the live template changes or a test is sent. I recheck any new hex pair by script.
  • [ADD: logo text], [ADD: pattern name], [ADD: new hex values for T1, T2, T3].