Area: mobieusAI (audit p11) · Surface: mobieusAI compose wands (forum tone shift, profile bio, wiki title/outline/clarity, DM compose/translate) — shared driver · Dimension: Law 3 contrast · Severity: major
Every member-facing mobieusAI wand (the most-used AI surfaces: forum Tone, profile AI polish, wiki Suggest-a-title/outline/clarity, DM tone picker) feeds through ai-assist.js, whose suggestion list, tone picker, and inline error notice are built with inline `background:#fff;color:#0a0d12` and no semantic-token path. In any of the six dark themes (dark, vt100, crt-amber, crt-green, c64, stylish-black) the popups clash hard with the page and the hover state on suggestion rows is barely perceptible. This is the single highest-traffic AI contrast defect because one file drives every compose wand.
Evidence
platform/public/js/ai-assist.js builds three dynamically-injected popups with hardcoded light colors and NO CSS-class fallback to semantic tokens. Suggestions dropdown (line 144): `box.style.cssText = 'position:absolute;z-index:50;...background:#fff;color:#0a0d12;border:1px solid rgba(15,23,42,.12);...'`. Tone picker (line 228): `'...background:#fff;color:#0a0d12;...'`. Inline notice (line 192): `'...background:#fff;color:#0a0d12;...'`. Option rows (line 150): `'...color:#0a0d12'`. grep for `ai-suggestions|ai-tone-picker|ai-inline-notice` in style.css returns nothing, so there is no theme override. Dark themes set `--color-bg-card` to near-black (style.css:10198 vt100 `--color-bg-card: #0a0a0a`; c64 line 9906 `#3535a8`), so these wand popups render as a stark white card with black text floating over a black/blue page — and the dropdown hover affordance `rgba(95,134,255,.10)` (line 151) is a ~6% blue tint on white, nearly invisible.
Suggested fix. Replace inline hardcoded colors in showSuggestions/showTonePicker/showInlineNotice with semantic tokens: `background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border)`, and hover `var(--color-bg-hover)`. Better: move the styling into style.css under `.ai-suggestions/.ai-tone-picker/.ai-inline-notice` classes (the elements already carry those classes) so all themes inherit. The fallback toast at line 46-47 has the same hardcoded `#b91c1c`/`#1e3a8a`/`#fff` issue.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus