Resolution at a glance
All 25 confirmed findings have been remediated and verified. This section is the before-and-after summary; every finding below is resolved as of July 17, 2026.
Remediation progress by severity 25 of 25 resolved · 100%
High severity 8 of 8 resolved
Medium severity 13 of 13 resolved
Low severity 4 of 4 resolved
Before → after — independent re-scan on the deployed site
Same axe-core + Lighthouse harness, same seven pages, re-run against creekteam.org after remediation. Remaining axe “incomplete” items (third-party Leaflet controls, embedded Google Form) are covered by the manual + WAVE pass and disclosed in the published Accessibility Statement.
Independent automated scan — the objective baseline
Before any fixes, the live site was scanned with axe-core (the open-source engine behind axe DevTools, run with a zero-false-positive policy) and Lighthouse, across all seven in-scope pages. This is machine-generated, reproducible, third-party evidence — the identical scan is re-run after remediation to produce the “after” comparison. Scan date: 2026-07-17 · target: https://creekteam.org.
Lighthouse accessibility score by page
| Page | Score | Axe rules | Instances |
|---|---|---|---|
| home | 90 | 2 | 15 |
| calendar | 90 | 2 | 5 |
| timeline | 89 | 2 | 5 |
| map | 85 | 3 | 11 |
| evidence | 89 | 2 | 15 |
| volunteer | 91 | 2 | 5 |
| contact-bos retired | 92 | 2 | 13 |
contact-bos was part of the 2026-07-17 audit and was retired on 2026-07-23 after agenda item S10A concluded. Its row is kept and struck through so the totals above still reflect what was measured.
Axe violations (all rated “serious”)
| Rule | WCAG | Impact | Count | Pages |
|---|---|---|---|---|
color-contrast | 1.4.3 | Serious | 51 | 7/7 |
link-in-text-block | 1.4.1 | Serious | 16 | 7/7 |
aria-command-name | 4.1.2 | Serious | 2 | 1/7 |
Sample findings, as flagged on the live site
Each element below is highlighted exactly where axe located it. The full set of 29 annotated screenshots and the raw axe / Lighthouse JSON are archived alongside this record.
#ff6b1a orange = 2.85:1 (needs 4.5:1). color-contrast · 1.4.3Independent validation — WAVE, a second engine
The method was deliberate: axe first, then WAVE on top. axe-core (§02) drove the remediation — scan, then fix every finding. Once axe was clean, the remediated site was validated with a second, independent tool, WAVE by WebAIM, which uses different detection logic and a human-in-the-loop model. An initial WAVE pass confirmed 0 Errors and surfaced only benign “redundant link” advisories; we cleared the structural ones and re-ran. This final WAVE audit returns 0 Errors and 0 Contrast Errors on all 8 pages, with a perfect AIM Score of 10 out of 10 across the board.
| Page | Errors | Contrast errors | Alerts | Features | AIM score |
|---|---|---|---|---|---|
| Home | 0 | 0 | 2 | 4 | 10/10 |
| Calendar | 0 | 0 | 1 | 6 | 10/10 |
| Timeline | 0 | 0 | 1 | 4 | 10/10 |
| Spray Map | 0 | 0 | 2 | 40 | 10/10 |
| Evidence | 0 | 0 | 1 | 4 | 10/10 |
| Contact the BOS retired | 0 | 0 | 1 | 6 | 10/10 |
| Volunteer | 0 | 0 | 1 | 4 | 10/10 |
| Accessibility Statement | 0 | 0 | 1 | 4 | 10/10 |
“Contact the BOS” was retired on 2026-07-23 after agenda item S10A concluded; its row is retained for the audit record.
Final WAVE summary panels, page by page
Captured directly from the WAVE evaluation tool on each page of the deployed site. Full-resolution images are archived alongside the axe and Lighthouse evidence.
Findings & remediation status
Each finding carries its ID, the WCAG 2.2 success criterion it fails, the affected location in the source, and a dated status. Severity is shown by the left stripe and label; status is shown by an icon and text, never by color alone.
High severity — 8 findings
-
F-C1SC 1.4.3High
Orange brand palette fails contrast (systemic)
--orange #ff6b1ais 2.85:1 on white;--orange-hot #ff4500is 3.44:1. Used for links, button fills, labels and text site-wide — this single palette decision drives most of the contrast findings.style.css — global links, .btn-primary, banner, BOS labelsResolved 2026-07-17 -
F-C2SC 1.4.3High
Calendar “View full size” button was white-on-white (~1:1)
The
.btn-secondary(white text + faint white border) sat on the white calendar section, making it effectively invisible.Fixed → switched to.btn-darkResolved 2026-07-13 -
F-SKSC 2.4.1High
No skip link on any page
Keyboard and screen-reader users were forced through the logo, up to 9 nav links, and the banner before reaching content;
<main>also had no id target.Fixed → skip link +<main id tabindex>Resolved 2026-07-13 -
F-ITSC 1.1.1 · 1.4.5High
Calendar was an image of text
All event dates, times and locations existed only inside a PNG. Screen-reader, Braille and text-resize users got zero event content.
Fixed → HTML event list; text verified 2026-07-17Resolved 2026-07-13 -
F-MAP1SC 4.1.2High
Waterway accordion exposes no expanded/collapsed state
Open/closed state is a CSS class only; the toggle sets no
aria-expanded/aria-controls, so assistive tech cannot perceive it.map.html · spray-map.jsResolved 2026-07-17 -
F-MAP2SC 4.1.2High
Selected waterway exposes no pressed/current state
Selection is a
.selectedCSS class only; the real value lands in a hidden input that AT users cannot perceive.map.html · spray-map.jsResolved 2026-07-17 -
F-MAP3SC 4.1.3High
Report-form status message is not a live region
Success and error text is injected via
textContentwith norole/aria-live, so it is never announced.map.html #form-message · spray-map.jsResolved 2026-07-17 -
F-MAP4SC 3.3.1High
Invalid submit errors aren’t announced and focus isn’t moved
JS checks (missing waterway, pin outside Orange County) render only visually in the non-live message.
spray-map.jsResolved 2026-07-17
Medium severity — 13 findings
-
F-NC1SC 1.4.11Med
Form control borders ~1.25:1
--light-gray #e8e4deborders on white are effectively invisible (need ≥3:1). Affects report-form inputs, textarea and the waterway picker.style.cssResolved 2026-07-17 -
F-NAVSC 4.1.2Med
Hamburger toggle missing expanded state
The mobile nav toggle changed a CSS class only; state was invisible to assistive tech.
Fixed → setsaria-expanded/aria-controlsResolved 2026-07-13 -
F-MAP5SC 1.3.1 · 3.3.2Med
Orphan group labels on the map form
“Select a Waterway” and “Pin the Location” are bare
<label>s with nofor, wrapping no control; the picker group has no accessible name.map.htmlResolved 2026-07-17 -
F-MAP6SC 1.3.5Med
Missing
autocompleteon name / email fieldsReport-form personal fields don’t advertise their purpose to the browser or AT.
map.htmlResolved 2026-07-17 -
F-MAP7SC 2.1.1Med
“Verified Reports” table rows are click-only
Rows get a click handler (fly-to + open popup) with no
tabindex/role/key handler — mouse-only.spray-map.jsResolved 2026-07-17 -
F-H1SC 1.3.1Med
Timeline heading skip (h1 → h3)
Each event jumps from the page
h1to anh3with noh2.timeline/list.htmlResolved 2026-07-17 -
F-H2SC 1.3.1Med
Evidence heading skip (h1 → h3)
All 9 document categories are
h3with no interveningh2.documents.htmlResolved 2026-07-17 -
F-L1SC 2.4.4 · 3.2.4Med
Ambiguous repeated link text
“View in Google Drive →” appears 9× with different destinations; a links list reads it identically nine times.
documents.htmlResolved 2026-07-17 -
F-CO1SC 1.4.1Med
Active nav link indicated by color only
The current page’s nav link differs only by opacity (0.7 → 1.0) — no underline, border or weight change.
style.cssResolved 2026-07-17 -
F-CO2SC 1.4.1Med
In-prose links distinguished by color alone
text-decoration:noneis set globally, so inline links in body copy rely on color only.style.cssResolved 2026-07-17 -
F-T1SC 2.5.8Med
Banner hide button 22.4px on mobile
At ≤700px the fundraiser-banner hide button fell under the 24×24 CSS-px minimum target size.
Fixed → enlarged to 24pxResolved 2026-07-13 -
F-C3SC 1.4.3Med
Footer tagline ~3.78:1
rgba(255,255,255,0.4)on navy at 12px normal weight falls below 4.5:1.style.cssResolved 2026-07-17 -
F-C4SC 1.4.3Med
Map form status text below 4.5:1
Error
#e63318on#ffeaea≈ 3.8:1; success#2e7d32on#e8f5e9≈ 3.9:1 — both ~15px normal.style.cssResolved 2026-07-17
Low severity — 4 findings
-
F-IMG1SC 1.1.1Low
Decorative inline SVGs missing
aria-hiddenHome Instagram icon, footer icons, and map disclaimer/warning icons may surface as unnamed graphics to screen readers.
index.html · baseof.html · map.htmlResolved 2026-07-17 -
F-HPSC 4.1.2Low
Honeypot has a broken
for/id<label for="website">targets a nonexistent id (the input id isreport-hp). No user impact — the wrapper isaria-hidden— but invalid markup.map.htmlResolved 2026-07-17 -
F-C5SC 1.4.3Low
Required asterisk orange 2.8:1
The
.requiredasterisk carries “required” meaning as normal text but fails contrast on white.style.cssResolved 2026-07-17 -
F-FVSC 2.4.7Low
Form inputs use
outline:nonewith a weak focus substituteBOS and map report-form inputs suppress the outline for only a faint border/glow — verify a perceivable focus state on screen.
style.cssResolved 2026-07-17
No findings match this filter.
Verified as conformant
Recording what already passes is part of a credible audit. These were confirmed in the source and are cited in the accessibility statement.
- Landmarks & structure — header, nav, main, footer correctly nested; one h1 per page.
- Language & titles —
<html lang="en">and a per-page<title>. - Dragging movements (2.5.7) — map pin has click-to-place and keyboard alternatives.
- Contact-the-BOS form — real label/id pairs,
autocomplete, and a correctrole="status"confirmation. - Fundraiser banner controls — manage
aria-expanded/aria-controlsand move focus (the pattern being copied elsewhere). - Semantics — real lists,
<details>/<summary>, table<th>, and<figure>/<figcaption>. - Keyboard operability — the interactive map report form (accordion, waterway selection, error focus, results table) was verified operable by keyboard end-to-end.
Automated engines (axe-core, Lighthouse, WAVE) validate contrast, labeling, ARIA, and structure on every page. Screen-reader and high-zoom spot-checks are performed as part of routine, ongoing maintenance, since the web platform, assistive technologies, and embedded third-party content evolve over time.