Prototype. A working redesign prototype for the Yolo-Solano Air Quality Management District, prepared by Stoa Works LLC as part of the June 4, 2026 Website Redesign & Development Services proposal. Not the live District website.
Davis now
Vacaville now
Burn day: loading… Details →

Accessibility · WCAG 2.1 AA · DOJ Title II Final Rule (April 2024)

Live accessibility audit.

The numbers below are real, reproducible axe-core findings on both sites. The current ysaqmd.org pages were audited from production; the prototype pages were audited from this preview build. No hand-curation, no marketing softening. The full JSON output and the audit script are linked at the bottom.

Current ysaqmd.org

89

axe-core violations across 8 pages

Stoa prototype

0

axe-core violations across 20 pages

Last audited May 20, 2026. Tool: axe-core 4.11.3 (via JSDOM). Scope: WCAG 2.1 Level A and AA rules. See how this was run.

Breakdown by severity

Site Critical Serious Moderate Minor Total
Current ysaqmd.org 4 3 82 0 89
Stoa prototype 0 0 0 0 0

axe-core impact levels map to user harm: critical blocks people with disabilities from completing core tasks; serious creates a significant barrier; moderate degrades the experience; minor is a guideline-only nit.

What axe-core flagged, and how the redesign answers it

The current site's 89 violations cluster around four rules. Each row below shows the rule, where it shows up today, and the concrete change the redesign makes.

moderate

All page content should be contained by landmarks

axe rule: region · Deque docs →

Current: 81 occurrences across 8 pages

Prototype: 0 occurrences

Today on ysaqmd.org: Page content lives in plain <div> wrappers, so assistive tech has nothing to anchor landmark navigation against.

In the redesign: Every page uses semantic HTML5 landmarks: <header role="banner">, <nav aria-label="Primary">, <main id="main">, <footer role="contentinfo">. A skip-to-main-content link appears as the first focusable element on every page.

critical

Images must have alternative text

axe rule: image-alt · Deque docs →

Current: 4 occurrences across 1 page

Prototype: 0 occurrences

Today on ysaqmd.org: Carousel hero images on the home page ship with empty alt attributes, so screen reader users hear nothing where the photos sit.

In the redesign: Decorative imagery is marked aria-hidden. Every meaningful image will receive descriptive alt text written by content authors in the CMS, with character-limit hints and an examples drawer.

serious

Links must have discernible text

axe rule: link-name · Deque docs →

Current: 2 occurrences across 1 page

Prototype: 0 occurrences

Today on ysaqmd.org: Social icons and carousel controls render as bare anchors with no discernible text.

In the redesign: Every interactive element ships with an accessible name, either a visible label or an aria-label. Icon-only buttons require an explicit accessible name in the component contract.

moderate

Heading levels should only increase by one

axe rule: heading-order · Deque docs →

Current: 1 occurrence across 1 page

Prototype: 0 occurrences

Today on ysaqmd.org: Headings skip levels (e.g., an <h2> followed by an <h4>), which breaks document outline for screen reader users.

In the redesign: Heading levels are validated at build time. The redesign uses a strict outline: one <h1> per page, <h2> per section, <h3> per card, no skipping.

serious

Frames must have an accessible name

axe rule: frame-title · Deque docs →

Current: 1 occurrence across 1 page

Prototype: 0 occurrences

Today on ysaqmd.org: Embedded iframes ship without a title attribute, so assistive tech cannot announce what the frame contains.

In the redesign: Every iframe in the redesign carries a descriptive title attribute (e.g., "YSAQMD Board meeting video, June 2026"). Embeds without a meaningful name are routed through component wrappers that require a title.

Per-page comparison

Eight high-traffic pages on the current site, eight matching audience or task pages on the prototype.

Current ysaqmd.org

  1. Home 14 violations
  2. Wildfire smoke info 50 violations
  3. Permits 4 violations
  4. Forms & applications 5 violations
  5. Incentives 4 violations
  6. Make a complaint 4 violations
  7. About the District 4 violations
  8. Contact 4 violations

Stoa /ysaqmd/* prototype

  1. Home 0 violations
  2. Smoke & wildfire 0 violations
  3. Permits & complaints 0 violations
  4. Grants & incentives 0 violations
  5. Burn day status 0 violations
  6. Fresh Air For All 0 violations
  7. Fresh Air For All (ES) 0 violations
  8. Search 0 violations
  9. Accessibility 0 violations
  10. Today's air 0 violations
  11. Forms-finder 0 violations
  12. Board meetings 0 violations
  13. Humo de incendios (ES) 0 violations
  14. ¿Puedo quemar hoy? (ES) 0 violations
  15. Permisos y quejas (ES) 0 violations
  16. Redesign notes 0 violations
  17. File a complaint 0 violations
  18. Presentar una queja (ES) 0 violations
  19. Subscribe to alerts 0 violations
  20. Reviewer walkthrough 0 violations

Commitments

WCAG 2.1 Level AA at launch

Conformance to WCAG 2.1 Level A and AA across every page and every published form. Per FAQ #10 the District is targeting 2.1 AA; we will also meet the 2.2 superset wherever it costs us nothing extra to do so.

DOJ Title II Final Rule (April 2024)

The DOJ Final Rule on web and mobile accessibility (89 FR 31320) requires public entities under 50,000 residents to meet WCAG 2.1 Level AA by April 24, 2027. The District's 354,000-resident service area is covered by the larger-entity deadline of April 24, 2026. Our schedule lands launch a full month ahead of the compliance line.

No accessibility overlay

The current site ships clean source HTML and does not use UserWay, AccessiBe, EqualWeb, or any similar overlay. The redesign keeps that posture, because overlays have been the subject of repeated DOJ enforcement and class-action settlements. We meet accessibility requirements in the underlying markup, not with a third-party widget.

PDF remediation, scoped honestly

Per FAQ #6, the District has 500+ legacy PDFs. We will triage them with District staff into three buckets: (1) archive (no longer referenced), (2) convert to a web page, (3) remediate as PDF. The remediation tail extends past launch, with a target of April 17, 2027 for the prioritized subset (one week before the DOJ deadline).

How we ran this audit (and how you can re-run it)

Audit tool: axe-core 4.11.3, the same engine used by Deque, Microsoft Accessibility Insights, and the Lighthouse accessibility category. We ran it through JSDOM so that the static HTML of every page is parsed and scanned with the WCAG 2.1 Level A and AA rule set enabled.

Caveat: static scans capture about 30–40% of real accessibility issues. Automated tooling cannot catch every keyboard trap, every misnamed icon, every misleading heading. Our launch-readiness checklist also includes a manual keyboard pass, screen reader spot checks (VoiceOver and NVDA), and a Cal/EJ-aligned content review.

# Re-run the same audit against any site
git clone https://github.com/stephenstanwood/stoa-works   # (or your own checkout)
cd stoa-works
npx tsx scripts/audit-ysaqmd.ts                            # writes ysaqmd-accessibility-audit.json

Download the raw JSON →