WCAG 2.2 Level AA · Remediation Record

Website Accessibility Audit & Remediation Record

A dated, page-by-page record of every accessibility barrier found on the Creek Team OC website, its current remediation status, and the fixes shipped to date — maintained as evidence of an ongoing, good-faith conformance effort. The method was axe-core first — scan, then fix every finding — followed by an independent WAVE (WebAIM) pass to validate the result.

Target standard
WCAG 2.2 Level AA
Initial audit
July 2, 2026
Full re-audit
July 6, 2026
Last updated
July 17, 2026
Method
5-reviewer source audit + live testing
Pages in scope
7 (site-wide chrome + 6 pages)
01

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.

25Confirmed findings
25Resolved & verified
0Open / in progress
3Independent tools clean (axe · Lighthouse · WAVE)

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

Axe violations 690
Avg Lighthouse a11y 8999
Pages passing axe 07/7

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.

Notable correction (July 6, 2026): the initial audit flagged the spray map as drag-only, a WCAG 2.5.7 failure. A full read of the map JavaScript verified that click-to-place and keyboard waterway selection both set the pin, so 2.5.7 passes and the finding was retracted. Recording corrections like this is part of the audit trail.
02

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.

89Avg Lighthouse a11y score (before)
3Distinct axe rules failed
69Total violation instances
74%Cleared by the palette fix alone

Lighthouse accessibility score by page

PageScoreAxe rulesInstances
home90215
calendar9025
timeline8925
map85311
evidence89215
volunteer9125
contact-bos retired92213

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

RuleWCAGImpactCountPages
color-contrast1.4.3Serious517/7
link-in-text-block1.4.1Serious167/7
aria-command-name4.1.2Serious21/7
Automated scan and manual audit agree — and cover different ground. Axe independently flagged the exact contrast and color-only-link problems the manual review found, corroborating them with a zero-false-positive engine. But axe surfaced 3 machine-detectable rules where the manual audit found 25: the keyboard, focus-order, heading, ARIA-state and image-of-text barriers are invisible to automation. That is why this record pairs the objective scan with a manual expert audit — the combination WCAG evaluators recommend.

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.

Annotated screenshot of an accessibility violation flagged by axe-core, highlighted with a red outline on the live Creek Team OC site.
Home — “DONATE” button: white text on #ff6b1a orange = 2.85:1 (needs 4.5:1). color-contrast · 1.4.3
Annotated screenshot of an accessibility violation flagged by axe-core, highlighted with a red outline on the live Creek Team OC site.
Contact the BOS — orange field label / accent below the 4.5:1 threshold. color-contrast · 1.4.3
Annotated screenshot of an accessibility violation flagged by axe-core, highlighted with a red outline on the live Creek Team OC site.
In-prose link distinguished by color alone — no underline (fails when color is removed). link-in-text-block · 1.4.1
Annotated screenshot of an accessibility violation flagged by axe-core, highlighted with a red outline on the live Creek Team OC site.
Spray map — an interactive control exposes no accessible name to assistive tech. aria-command-name · 4.1.2
03

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

0WAVE Errors (all 8 pages)
0WAVE Contrast Errors
10/10WebAIM AIM Score, every page
Final WAVE (WebAIM) audit per page, after axe-driven fixes and redundant-link cleanup.
PageErrorsContrast errorsAlertsFeaturesAIM score
Home002410/10
Calendar001610/10
Timeline001410/10
Spray Map0024010/10
Evidence001410/10
Contact the BOS retired001610/10
Volunteer001410/10
Accessibility Statement001410/10

“Contact the BOS” was retired on 2026-07-23 after agenda item S10A concluded; its row is retained for the audit record.

What about the remaining alerts? The only items WAVE flags are “Redundant link” alerts — two intentional links to the same destination in different page regions (the persistent nav “Donate” alongside the fundraiser-banner Donate; on two pages, an in-content Instagram link alongside the footer icon). Alerts are advisory, not errors or WCAG failures; these links were reviewed and kept deliberately. Structural redundancies (a duplicate “Home” link, a doubled sponsor link, a duplicated calendar-image link) were removed, which is why the alert counts and AIM scores improved to a perfect 10/10.

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.

WAVE (WebAIM) summary panel for the Home page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Home — 0 Errors · 0 Contrast Errors · AIM 10/10
WAVE (WebAIM) summary panel for the Calendar page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Calendar — 0 Errors · 0 Contrast Errors · AIM 10/10
WAVE (WebAIM) summary panel for the Timeline page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Timeline — 0 Errors · 0 Contrast Errors · AIM 10/10
WAVE (WebAIM) summary panel for the Spray Map page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Spray Map — 0 Errors · 0 Contrast Errors · AIM 10/10
WAVE (WebAIM) summary panel for the Evidence page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Evidence — 0 Errors · 0 Contrast Errors · AIM 10/10
WAVE (WebAIM) summary panel for the Contact the BOS page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Contact the BOS — 0 Errors · 0 Contrast Errors · AIM 10/10
WAVE (WebAIM) summary panel for the Volunteer page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Volunteer — 0 Errors · 0 Contrast Errors · AIM 10/10
WAVE (WebAIM) summary panel for the Accessibility Statement page showing 0 Errors, 0 Contrast Errors, and AIM Score 10 out of 10.
Accessibility Statement — 0 Errors · 0 Contrast Errors · AIM 10/10
04

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 #ff6b1a is 2.85:1 on white; --orange-hot #ff4500 is 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 .selected CSS 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 textContent with no role/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 #e8e4de borders 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 → sets aria-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 no for, wrapping no control; the picker group has no accessible name.

    map.htmlResolved 2026-07-17
  • F-MAP6SC 1.3.5Med

    Missing autocomplete on name / email fields

    Report-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 h1 to an h3 with no h2.

    timeline/list.htmlResolved 2026-07-17
  • F-H2SC 1.3.1Med

    Evidence heading skip (h1 → h3)

    All 9 document categories are h3 with no intervening h2.

    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:none is 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 #e63318 on #ffeaea ≈ 3.8:1; success #2e7d32 on #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-hidden

    Home 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 is report-hp). No user impact — the wrapper is aria-hidden — but invalid markup.

    map.htmlResolved 2026-07-17
  • F-C5SC 1.4.3Low

    Required asterisk orange 2.8:1

    The .required asterisk 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:none with a weak focus substitute

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

05

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 correct role="status" confirmation.
  • Fundraiser banner controls — manage aria-expanded/aria-controls and 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.