Built to be read.
How accessible this site is, what's done, what's still open. The page follows the same convention as the rest of the working file — items have IDs, statuses, and triggers. The bar is WCAG 2.1 Level AA; where we don't yet meet it, the gap is named.
Conformance
WCAG 2.1 AA is the standard both the U.S. Americans with Disabilities Act (ADA, by interpretation) and the EU's European Accessibility Act (EAA, in force June 28, 2025) effectively reference. This site isn't in legal scope for either today — it's a personal working file, not a place of public accommodation or an EAA-listed product or service — but the industry bar is the right design bar.
Where we stand: the foundations are in place. A small number of items remain open and are listed below by ID, with the WCAG success criterion each maps to.
What's in place
<nav>, <header>, <section>,
<article>, <footer> used semantically. Heading
hierarchy (h1 → h2 → h3 → h4) on every page. The 404 page has a real
<h1>; the oversized "404." mark is decorative
(aria-hidden="true").
<html lang="en"> on every page.
The light/dark button uses aria-pressed reflecting the current
theme, with a static aria-label="Toggle light and dark theme".
Screen readers announce "Toggle light and dark theme, toggle button, pressed"
or "not pressed" — the label names the action, the pressed state names the
current result. Decorative SVG icons inside the button carry
aria-hidden="true" so they don't get read separately.
Status badges always pair color with a text label ("Decided",
"In Progress", "Rejected", "Open"). The italic emphasis pattern
carries semantic <em> in addition to the burgundy color
— italic is the structural cue, color is decoration. Draft pages
have a text "Draft" badge in addition to reduced opacity.
@media (prefers-reduced-motion: reduce) in
theme.css collapses transitions to ~0ms and disables
the hover-translate on page cards. Smooth scroll is turned off for the
same users.
The theme toggle is 36 × 36 on desktop, 44 × 44 on mobile (≤640px) — meeting the AAA target-size rule where it matters most. All other interactive elements are text links inside generously-padded cards whose entire surface is the hit area.
Body text and headlines clear AA comfortably in both modes.
Light: --ink-2 on --bg ≈ 10.5:1;
--ink-3 on --bg ≈ 5.5:1.
Dark: --ink-2 on --bg ≈ 9:1;
--ink-3 ≈ 4.7:1 (passes AA for normal text).
Burgundy --accent on cream ≈ 7.2:1. Terracotta in
dark mode ≈ 6.7:1.
Every interactive element is a native <a> or
<button> — no custom tabindex hacks,
no div role="button". Tab order follows source order.
Every page now renders <a class="skip-link" href="#main">Skip
to main content</a> as the first focusable element after
<body>, jumping past the nav to the main content
region. The link is visually hidden until it receives keyboard focus,
then appears at the top-left in accent color. Closed OQ-A2; landed
as a one-file edit to baseof.html (B-029 made the wiring
a single change instead of six).
Every page wraps its primary content in <main id="main">,
giving screen-reader users a single landmark to jump to and serving
as the target for the skip-link (A-009). The 404 page's inner
<main> was demoted to a <div>
to avoid nested landmarks. Closed OQ-A4.
What's still on the table
.open-q-id) are
--amber #a87617 at 10.5px on cream
(#faf7f2), contrast ≈ 3.7:1 — short of the 4.5:1
required for normal text. Trigger to close: deepen light-mode
--amber to ~#8a5e0d (or recolor the OQ-id
to --ink-2 while keeping the amber left-border for
visual cue). Dark-mode amber is unaffected (≈ 9.5:1).:focus-visible styles are now defined in
theme.css (a 2px --accent outline with
offset). Browsers without :focus-visible support fall
back to their built-in ring. Trigger to close: verify keyboard
focus visible on every interactive element in both modes
(currently confirmed for nav, theme toggle, and links).How issues are tracked
Accessibility items use the A-NNN prefix for decisions and
OQ-AN for open questions — distinct from D-NNN
/ B-NNN in the other logs. Each closed item references the
relevant WCAG 2.1
success criterion; each open item names the criterion and
the trigger that would close it.
To report an issue, email hi@BySimms.co with the page URL, what you tried to do, what happened, and your assistive tech (if any). I'll acknowledge within a working week.
For the curious
This site is hand-built HTML rendered through Hugo,
hosted on Cloudflare Pages,
with the full design system documented in the brand book.
The audit decisions live alongside the build decisions in
SITE_DECISIONS.md (the accessibility pass is B-028).
Last audited · May 14, 2026