name: passon-reviewer-to-bob-pass2-v1 title: Passon — Reviewer to Bob — Pass 2 ratified items — v1 type: passon state: in-flight workstream: mtg-artefact date: 2026-06-01 related-ids: [Bob, The-Reviewer, The-Vault-v0.47, WCAG-2.1-AA] aliases: [Reviewer-Bob Passon Pass 2]
From: The Reviewer (seventh shore position)
To: Bob the Builder
Via: Paul (ratified 2026-06-01 ~17:41 UTC — "yes to all your questions")
Build under audit: The_Vault_v0.47_banner_swap_2026-06-01_1626.html
Target build: The_Vault_v0.49_pass2_fixes_2026-06-01_[HHMM].html (assuming Pass 1 ships as v0.48 first).
Five open questions ratified by Paul; eleven items across the queue. Ten are yours to implement. One image-compression item Paul may do himself.
@media (max-width: 480px); stack the five-panel strip to 2 columns; bump small fonts to ≥0.75rem; bump dialog control-button padding.--accent #b08a3e for everything else (borders, dark-band foregrounds, decorative trim).--dark-band #141414; keep --accent for focus rings on dark-band surfaces (ticker, footer, dark plates).<dialog> + showModal() matching the chat-dialog pattern.Add this block to the CSS, after the existing @media print rules:
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
.ticker-track { animation: none !important; }
}
Outcome: vestibular-sensitive visitors see a static room when their OS pref is set. WCAG 2.3.3.
--accent-text token; rewrite link-text colour. 🔴Add to :root:
--accent-text: #7a5e22; /* AA on --bg; deeper bronze for text */
Verify against --bg #f5f3ee — the target ratio is ≥4.5:1. If #7a5e22 doesn't hit it, darken until it does. Then rewrite the following rules to use var(--accent-text) instead of var(--accent) as the foreground colour:
.doc-modal-body a { color: var(--accent-text); }.doc-modal-body .wikilink { color: var(--accent-text); }.book-gate-text a { color: var(--accent-text); }.site-footer a { color: var(--accent-text); }.dg-link { color: var(--accent-text); }.toc-back-link { color: var(--accent-text) !important; }.book-back-floating { color: var(--accent-text); } (if applies to text-on-light).wander-link { color: var(--accent-text); }.book-toc a:hover, .book-toc a:focus { color: var(--accent-text); }.book-toc a.toc-chapter:hover .toc-ttl, .book-toc a.toc-chapter:focus .toc-ttl { color: var(--accent-text); }.doc-item button.doc-item-row:hover .doc-title, .doc-item button.doc-item-row:focus .doc-title { color: var(--accent-text); }color: var(--accent) rule where the text sits on --bg, --offwhite, or white surfaces. Sweep the CSS once.Keep --accent (gold) for:
--dark-band surfaces (ticker text, datasafe --accent numbers, footer --accent labels, dark-plate .footer-cl, .fn-closing strong, etc.)..panel-tag, .top5-tag, .role-column-tag, .dg-tag, .cl-num — these are short uppercase labels read as decoration alongside the content text; acceptable under the 1.4.3 incidental exemption, but if you want belt-and-braces, swap them to --accent-text too).--dark-band).Outcome: every content text instance meets WCAG AA 4.5:1.
Change:
*:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
to:
*:focus-visible { outline: 2px solid var(--dark-band); outline-offset: 2px; }
If you want gold focus on dark surfaces preserved, add a scoped rule:
.ticker *:focus-visible,
.site-footer *:focus-visible,
.fn-closing *:focus-visible,
.threshold-para *:focus-visible,
.anchor-block *:focus-visible,
.ds-headline *:focus-visible {
outline-color: var(--accent);
}
Outcome: focus rings meet WCAG 2.2 SC 1.4.11 (3:1 non-text contrast) on every surface.
Add a new @media (max-width: 480px) block. Recommended contents:
@media (max-width: 480px) {
/* Five-panel strip: stack from 5-column to 2-column */
.pyramid-row-3 { grid-template-columns: 1fr 1fr !important; gap: 0.5rem !important; }
.pyramid-btn-small { padding: 0.85rem 0.7rem !important; }
.pyramid-btn-small .vft-panel-title { font-size: 0.85rem !important; }
.pyramid-btn-small .vft-panel-sub { font-size: 0.72rem !important; }
.pyramid-btn .door-letter,
.pyramid-btn .vft-panel-letter { font-size: 0.62rem !important; top: 0.4rem !important; left: 0.5rem !important; }
/* Dialog control buttons: 44×44 minimum touch targets */
.chat-dialog-close { padding: 0.5rem 0.75rem !important; font-size: 1.85rem !important; }
.chat-dialog-nav { padding: 0.7rem 1rem !important; font-size: 0.78rem !important; }
.doc-modal-close { padding: 0.5rem 0.75rem !important; font-size: 1.75rem !important; }
/* Ticker: slow further on small screens */
.ticker-track { animation-duration: 150s; }
/* Numbers tables: wrap each in horizontal-scroll container */
.ds-table { font-size: 0.82rem; }
}
Outcome: phone rendering is purpose-tuned. Doors stay 3-column from 800px breakpoint downward (already in place); five-panel strip stacks to 2 at 480px. Touch targets meet 44×44 on the dialog controls.
For consistency, raise the dialog control padding across all breakpoints:
.chat-dialog-close { padding: 0.4rem 0.6rem; font-size: 1.85rem; }
.chat-dialog-nav { padding: 0.55rem 0.95rem; font-size: 0.75rem; }
.doc-modal-close { padding: 0.4rem 0.6rem; font-size: 1.75rem; }
Outcome: ≥44×44 on desktop pointer too; consistent across breakpoints.
<dialog>. 🟡Replace the current <div class="doc-modal" hidden role="dialog" aria-modal="true"> markup with:
<dialog class="doc-dialog" id="doc-dialog" aria-labelledby="doc-dialog-title">
<header class="doc-dialog-header">
<h3 id="doc-dialog-title">Document</h3>
<button type="button" class="doc-dialog-close" aria-label="Close (Esc)">×</button>
</header>
<div class="doc-dialog-body" id="doc-dialog-body" tabindex="0"></div>
</dialog>
Replace the open / close JS with showModal() / close() matching the chat-dialog pattern. Reuse the chat-dialog CSS structure (position: fixed; inset: 0; margin: auto; width: min(820px, 88vw); max-height: 90vh; flex-direction: column;). Native dialog handles focus management, Tab trap, ESC close, and focus return on close.
Outcome: one modal pattern across the build. Keyboard users get parity inside Documents and inside Chats.
<details> open in print. 🟡Add to the @media print block (or as a new print block):
@media print {
details { display: block; }
details > *:not(summary) { display: block !important; }
summary { font-weight: 700; padding: 0.5rem 0; border-bottom: 1px solid #ccc; }
.panel-collapse-summary > .panel-open-affordance { display: none; }
.chat-dialog, .doc-dialog, .doc-modal { display: none !important; }
}
Outcome: printing the page yields the full room in reading order with panel summaries acting as headings; any open modal is hidden in print to avoid layout surprises.
Change:
<a href="#book" class="skip-link">Skip to The Book</a>
to:
<a href="#main" class="skip-link">Skip to main content</a>
And add id="main" to the existing <main> element (already in the source — just needs the id).
Outcome: skip-link serves all keyboard-first visitors, not only those heading for the book.
Compress the three inline JPEG payloads:
.book-cover-face background and probably preload)..threshold-backdrop background-image)..dg-visual img src).Target: ~70–80% JPEG quality, sized to rendered dimensions × 2 for retina. Should cut the 8.5 MB inline payload to ~4–5 MB. Use any image tool (ImageMagick, Squoosh, Photoshop, Affinity Photo).
Outcome: faster first paint on mobile data; no perceptual quality loss at rendered sizes.
Hold current aria-label="Mind the Gap book cover" until Pass 3. The voice-and-copy pass will propose a stronger description Paul or Curator supplies.
--accent-text separate from --accent keeps the gold register intact visually while closing the AA contrast gap. Single-source change to a single CSS variable.<dialog> resolves a pattern divergence flagged in Pass 2.The_Vault_v0.49_pass2_fixes_2026-06-01_[HHMM].html. Session journal at the existing convention.Reviewer_Findings_Pass2_MobileAccessibility_v1_2026-06-01_1735.md — the full Pass 2 audit.Journal_011_Reviewer_Pass2_2026-06-01_1740.md — Reviewer's session close.The_Vault_v0.47_banner_swap_2026-06-01_1626.html — the build audited.— The Reviewer · 2026-06-01 17:42 UTC
#state/in-flight #workstream/mtg-artefact #type/passon #pass-2 #the-reviewer #bob #wcag