Accessibility Audit: Executive Summary

   
Site URL https://apps.dcyf.wa.gov/MERIT/
Audit Date 2026-03-28
Pages Audited 9
Standards Reference WCAG 2.2 AA
Auditor Claude Code (automated)

Overall Compliance

Metric Value
Total Standards Evaluated 2,484 (across 9 pages)
Total Pass 974 (39%)
Total Fail 185 (7%)
Total N/A 1,325 (53%)
Critical Findings 10
High Findings 28
Medium Findings 87
Low Findings 60

Critical and High Findings

Deduplicated across all pages. Site-wide issues appear once with all affected pages listed.

Critical

# Finding WCAG Pages Affected Proposed Fix
1 CAPTCHA image has no alt text – completely invisible to screen readers, blocking password reset 1.1.1 ForgotPassword Replace CAPTCHA with accessible alternative (reCAPTCHA v3, Cloudflare Turnstile)
2 CAPTCHA has no audio alternative – blind users entirely blocked from resetting passwords 1.1.1 ForgotPassword Provide audio CAPTCHA or alternative verification method
3 CAPTCHA is a cognitive function test with no alternative 3.3.8 ForgotPassword Remove CAPTCHA requirement or provide non-cognitive alternative
4 Form labels not programmatically associated – text nodes adjacent to inputs, not <label> elements 1.3.1 All 9 pages (forms on 7) Use <label for="id"> on every form input
5 Combobox accessible name mismatch – “Training Delivery Method Training Topics” vs visible “Training Delivery Method” 2.5.3 FindTrainingSearch Fix accessible name to match visible label
6 Password requirement icons have no alt text – 6 images convey pass/fail status with no accessible name 1.1.1 SignInRegister Add alt="Met" / alt="Not met" to each icon
7 ForgotPassword page title is generic – “DCYF Managed Education and Registry Information Tool (MERIT)” doesn’t identify the page 2.4.2 ForgotPassword Change to “Reset Password - MERIT”

High

# Finding WCAG Pages Affected Proposed Fix
1 No skip link on any page 2.4.1 All 9 pages Add visually-hidden skip link as first focusable element
2 No <main> landmark on Welcome and ForgotPassword pages 2.4.1 Welcome, ForgotPassword Wrap primary content in <main>
3 “MERIT Help” link with href="#" goes nowhere – non-functional help mechanism 2.4.4 All 9 pages Point to valid help resource or remove
4 No <form> element wrapping search controls on form pages 1.3.1 6 form pages Wrap controls in <form> with role="search" where applicable
5 “click here” link text is non-descriptive 2.4.4 SignInRegister, RecoverUsername Replace with descriptive text like “recover your username”
6 H1 “MERIT” text contrast over hero background not guaranteed – variable photographic background 1.4.3 Welcome Add semi-transparent overlay behind heading
7 Color alone conveys password criteria status – green check/red X with no text alternative 1.4.1 SignInRegister Add text labels (“Met”/”Not met”) alongside icons
8 Password fields render as textbox not password input type 3.3.2 SignInRegister Use type="password" on password inputs
9 Missing autocomplete on personal data fields (email, name, DOB) 1.3.5 SignInRegister, RecoverUsername, FindStarsId Add appropriate autocomplete values
10 Validation messages not linked to inputs via aria-describedby 3.3.2 SignInRegister Associate error messages with inputs programmatically
11 ForgotPassword uses table-based layout – legacy .aspx page with no semantic HTML 1.3.1 ForgotPassword Migrate to modern CSS layout
12 Date format instructions only in placeholder – disappears on input, not reliably announced 3.3.2 FindTrainingSearch Add persistent visible format hint via aria-describedby

Compliance by Standards Section

Section Items Evaluated Pass Fail N/A Pass Rate
1. Structure & Semantics 291 193 41 57 82%
2. Links & Navigation 301 170 58 73 75%
3. Images & Visual Design 361 253 34 74 88%
4. User Input, Forms & Dynamic Content 965 275 68 622 80%
5. Multimedia, Animations & Motion 434 18 0 416 100%
Total 2,352 909 201 1,242 82%

Page-by-Page Summary

Page Route Critical High Medium Low Report
Welcome /MERIT/Home/Welcome 0 4 7 4 View
Find Training (Hub) /MERIT/Search 0 0 6 5 View
Find Training (Search) /MERIT/Search/Trainings 2 3 9 4 View
Find Trainers /MERIT/Search/Trainers 1 2 10 3 View
Find Organizations /MERIT/Search/Organizations 1 2 11 1 View
Sign In / Register /MERIT/Home/SignInRegister 3 9 4 1 View
Recover Username /MERIT/Home/RecoverUsername 0 2 6 3 View
Forgot Password /MERIT/Public/ForgotPassword.aspx 4 6 5 3 View
Find STARS ID /MERIT/Home/FindStarsId 0 2 7 3 View

Recommendations

Immediate Action (Critical / High)

  1. Replace the CAPTCHA on the Forgot Password page – The image CAPTCHA with no alt text and no audio alternative completely blocks blind and deafblind users from resetting their passwords. This is the most severe accessibility barrier found. Replace with reCAPTCHA v3, Cloudflare Turnstile, or another accessible alternative. Affects 1 page. WCAG 1.1.1, 3.3.8.

  2. Add <label for="id"> associations to ALL form inputs site-wide – Every form page uses plain text adjacent to inputs rather than programmatic <label> elements. This is the most pervasive issue, affecting 7 of 9 pages and impacting screen reader users on every form interaction. This single fix resolves WCAG 1.3.1, 2.5.3, and 3.3.2 across the entire site.

  3. Add a skip link as the first focusable element on every page – No page has a functional skip link. Add <a href="#main-content" class="skip-link">Skip to main content</a> site-wide. Affects all 9 pages. WCAG 2.4.1.

  4. Fix the Sign In / Register page – 3 Critical + 9 High findings make this the most non-compliant page that users must interact with. Priority fixes: form label associations, password field types, password criteria icons (alt text + text alternatives), autocomplete attributes, and validation message associations.

  5. Fix or remove “MERIT Help” dead linkhref="#" on every page represents a broken help mechanism. Either point it to a real help resource or remove it entirely. WCAG 2.4.4, 3.2.6.

Short-Term (Medium)

  1. Wrap forms in <form> elements with role="search" where applicable – Enables assistive technology to identify and navigate to form regions. Affects 6 form pages.

  2. Add <nav> landmarks to navigation lists (header sub-nav, footer links) and semantic breadcrumbs with <nav aria-label="Breadcrumb">. Affects all inner pages.

  3. Add aria-expanded to collapsible controls – “Search Options” toggle and “Advanced Options” buttons need button role and expanded/collapsed state. Affects 4 search pages.

  4. Migrate the Forgot Password page from legacy .aspx/table-based layout to the modern MVC template used by the rest of the site. Addresses layout tables, missing <main>, inconsistent navigation, and generic page title simultaneously.

  5. Add autocomplete attributes to personal data fields (email, name, DOB) on SignInRegister, RecoverUsername, and FindStarsId pages. WCAG 1.3.5.

Improvement (Low)

  1. Increase footer text size from 11px to at least 14px site-wide.

  2. Improve Access Washington logo link – change alt text to describe destination, not image content.

  3. Add “You Are Here” indicator on active navigation items with aria-current="page".

  4. Hide decorative icon spans (aria-hidden="true") in card buttons on the Find Training Hub.


Limitations

This automated audit evaluates WCAG 2.2 AA standards to the extent possible via DOM inspection, visual screenshot analysis, computed style extraction, and basic keyboard interaction. The following require manual verification:

  • Exact color contrast ratios – Calculated from getComputedStyle() values; may not account for gradients, background images, opacity layers, or text over images
  • Screen reader behavior – ARIA attributes are checked for correctness but actual screen reader output is not verified
  • Touch/gesture interactions – Not testable via desktop Playwright browser session
  • Cognitive load and readability – Subjective assessments requiring human judgment
  • Audio/video content quality – Presence of captions and controls is verified but content accuracy is not
  • Windows High Contrast Mode – Not tested in this automated audit
  • Dynamic content timing – Page state at time of capture may not reflect all dynamic behaviors
  • Keyboard interaction depth – Tab sequence covers ~15 elements; exhaustive testing of every interactive element was not performed
  • Auth-gated pages – Only publicly accessible pages were audited; logged-in functionality was not evaluated

Severity Definitions

Severity Criteria
Critical Required standard violated; completely blocks access for one or more disability groups (e.g., keyboard trap, no form labels, missing alt text on functional images)
High Required standard violated; significant barrier that makes the feature very difficult to use (e.g., poor contrast on primary content, missing heading structure, focus indicator absent)
Medium Required standard violated with moderate impact, OR Best practice violated with significant user impact (e.g., heading levels skipped, link purpose unclear from context, insufficient target size)
Low Best practice not followed; minor impact on usability (e.g., title could be more concise, landmark count could be reduced, hover indicator could be enhanced)

This site uses Just the Docs, a documentation theme for Jekyll.