Accessibility · Statement

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.

Target

Conformance

Target WCAG 2.1 · Level AA Partial

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.

Closed

What's in place

A-001Semantic HTML throughoutWCAG 1.3.1
Decided

<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").

A-002Language declaredWCAG 3.1.1
Decided

<html lang="en"> on every page.

A-003Theme toggle announces stateWCAG 4.1.2
Decided

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.

A-004Color is never the only cueWCAG 1.4.1
Decided

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.

A-005Reduced motion honouredWCAG 2.3.3
Decided

@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.

A-006Mobile touch targets ≥ 44 × 44WCAG 2.5.5
Decided

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.

A-007Color contrast — body and headlinesWCAG 1.4.3
Decided

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.

A-008Keyboard navigableWCAG 2.1.1
Decided

Every interactive element is a native <a> or <button> — no custom tabindex hacks, no div role="button". Tab order follows source order.

A-009Skip-to-main-content link wiredWCAG 2.4.1
Decided

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).

A-010Main landmark on every pageWCAG 1.3.1 · 2.4.1
Decided

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.

Open

What's still on the table

OQ-A1 · WCAG 1.4.3
Amber color used as text fails AA contrast in light mode
The open-question ID labels (.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).
OQ-A3 · WCAG 2.4.7
Focus styles rely on browser defaults
: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).
OQ-A5 · Convention
No third-party automated audit yet
axe-core / Lighthouse / Pa11y haven't been run against the deployed site. Trigger to close: at first publish, run Lighthouse + axe DevTools against home, brand-book, and 404; file any findings as new OQ-AN entries.
Convention

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.

Stack note

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