Accessibility Dashboard
ADA Score
94/100
Lighthouse A11y
92/100
WCAG Criteria
20/20
Last Audit
2026-06-22
All 20 audited WCAG 2.1 AA criteria pass. The site meets ADA accessibility standards. Remaining items are enhancement recommendations, not compliance failures.
Non-text Content
All product, hero, gallery, and project images have descriptive alt text. Decorative icons use aria-hidden.
Info and Relationships
Semantic HTML (nav, main, footer, header) and ARIA roles used throughout. Form labels associated via htmlFor/id.
Meaningful Sequence
DOM order matches visual order. Skip-to-content link provided.
Contrast (Minimum)
Footer link contrast raised from /50 to /70. Hero subtitle raised from /70 to /85. All text meets 4.5:1 ratio.
Resize Text
Viewport allows zoom up to 500%. No fixed pixel font sizes.
Non-text Contrast
Focus indicators use 2px outline with offset. Button borders meet 3:1 ratio.
Keyboard
All interactive elements reachable via Tab. Enter/Space activate buttons. Escape closes dropdowns and chat.
No Keyboard Trap
Chat panel closes with Escape. Language prompt closes with Escape. Focus returns to trigger button.
Bypass Blocks
Skip-to-content link added to Layout. Focuses main content area.
Focus Order
Logical tab order maintained. Skip link is first focusable element.
Link Purpose (In Context)
All links have descriptive text or aria-labels. Social links labeled with platform name.
Focus Visible
Global focus-visible style with 2px outline and 2px offset on all interactive elements.
Language of Page
HTML lang attribute dynamically updated when user switches language (en/es).
Language of Parts
Language-specific content rendered in correct language context.
On Input
Language selection does not auto-submit. Form validation is explicit.
Error Identification
Contact form errors shown with role="alert" and aria-invalid on fields.
Labels or Instructions
All form fields have associated labels. Required fields marked with aria-required and visual indicator.
Error Suggestion
Email validation provides specific error message. Errors describe how to fix.
Name, Role, Value
Chat widget uses role="dialog", aria-label, aria-expanded. Dropdown uses aria-haspopup, aria-expanded.
Status Messages
Chat uses aria-live="polite" region to announce new messages, opening, and closing.
Vista Flow iframe content (third-party app) — ensure the embedded app conducts its own WCAG audit
Add closed captions or transcripts to any future video content
Conduct regular automated testing with axe DevTools and Lighthouse after each content update
Perform periodic manual screen reader testing with NVDA and VoiceOver