Automated scanning and targeted manual testing across 5 representative pages identified 47 WCAG 2.1 Level AA violations — 3 critical barriers that block task completion for keyboard and screen reader users, 11 high-severity issues that significantly degrade the assistive technology experience, and 33 medium/low findings. The booking form on /book-appointment/ cannot be completed using only a keyboard: the date picker traps keyboard focus with no escape path, and form error messages are not announced to screen readers. The site's primary call-to-action buttons (coral text on white background) fail WCAG contrast requirements at a 2.8:1 ratio against the required 4.5:1 minimum.
The date picker component on /book-appointment/ captures keyboard focus when the user Tabs into it. Arrow keys navigate between dates, but there is no keyboard mechanism to exit the date picker and continue to the next form field. The Escape key does not close the date picker. Tab does not move focus out of the component. The only way to continue filling out the form is to use a mouse.
Any user who relies on keyboard navigation (motor impairment, screen reader users, power users who prefer keyboard) cannot complete an appointment booking. This is a complete blocker for the site's primary conversion action for an entire category of users.
The date picker is a jQuery UI Datepicker with default configuration that does not implement the ARIA grid pattern keyboard interaction model. The component lacks role="dialog" or role="grid" with appropriate aria-label, and does not manage focus return on close.
Replace the jQuery UI Datepicker with an accessible date picker component that implements the WAI-ARIA Datepicker Dialog pattern: arrow keys navigate dates, Escape closes the picker and returns focus to the trigger, Tab moves to the next form field. If replacing the component is not feasible short-term, provide a manual text input alternative (mm/dd/yyyy) that bypasses the date picker entirely.
Medium — 2–4 hours to replace the component; 30 minutes for a text input fallback.
When the /book-appointment/ or /contact/ forms are submitted with validation errors, error messages appear visually next to the relevant fields but are not announced by screen readers (VoiceOver, NVDA). Focus does not move to the error summary or first errored field after submission.
A screen reader user who submits the form with missing or invalid data receives no feedback that errors occurred. They hear the page appear to reload but have no indication that fields need correction, which fields have errors, or what the expected input format is. The user cannot independently recover from a validation error.
Error messages are injected as <span class="error"> elements via JavaScript but are not ARIA live regions (no aria-live="assertive" or role="alert" attribute). Focus management after form submission does not programmatically move focus to the error container.
Add role="alert" or aria-live="assertive" to the error summary container so screen readers announce errors immediately when they appear. Add aria-describedby on each form field linking to its specific error message. After failed submission, programmatically move focus to the error summary or the first field with an error.
Low — 1–2 hours to add ARIA attributes and focus management to the form handler.
The 'Book Now' and 'Schedule Appointment' buttons across all 5 pages use coral (#E94560) text on a white (#FFFFFF) background, producing a contrast ratio of 2.8:1. WCAG 2.1 Level AA requires 4.5:1 for normal-sized text and 3:1 for large text (18px+ bold). These buttons use 14px bold text, requiring the 4.5:1 ratio.
Users with low vision, color vision deficiency, or who are viewing the site on a low-contrast screen (bright outdoor sunlight, older monitor) cannot reliably read the CTA text. The call-to-action buttons are the most important interactive elements on every page — making them hard to read directly impacts conversion.
The coral brand color at #E94560 on white does not meet WCAG AA contrast ratios. The theme's color palette was likely chosen for aesthetic reasons without checking accessibility compliance.
Darken the CTA text or switch to a filled button style — white text on the coral background passes at 4.6:1. Alternatively, darken the coral to #C42B46 which achieves 4.5:1 on white while maintaining brand proximity. Apply the fix globally through the theme's CSS custom properties.
Low — 15 minutes to update the CSS color value.
14 images across the 5 tested pages have no alt attribute or have alt="". These include the team photo on /about/, provider headshots on /about/, and procedure images on /services/.
Screen reader users hear either nothing or the image filename (e.g., 'IMG underscore 4521 dot jpg') instead of meaningful content. Provider headshots without alt text mean a screen reader user cannot identify who the providers are.
WordPress media library allows alt text to be set per image, but it was not populated for these uploads. The theme does not enforce alt text at the template level.
Add descriptive alt text to all informational images. Provider headshots: 'Dr. Sarah Chen, DDS — General Dentist.' Procedure images: 'Patient receiving dental crown procedure.' Mark purely decorative images with alt="" explicitly.
Low — 1 hour to audit and add alt text to all 14 images.
None of the 5 tested pages include a skip-navigation link at the top of the page. The site's navigation contains 14 links — a keyboard user must Tab through all 14 links on every page before reaching the main content area.
For keyboard-only users, navigating 14 links before reaching content is a significant friction point. On pages visited repeatedly (like the booking page), this adds cumulative frustration. Screen reader users must listen to the entire navigation announced before hearing page content.
The WordPress theme does not include a skip-navigation component. No accessibility plugin is installed.
Add a visually hidden skip link as the first focusable element in the body: <a href="#main" class="skip-link">Skip to main content</a> with CSS that makes it visible only on focus. Add id="main" to the main content container.
Low — 30 minutes to implement.
| # | Action | Priority | Effort |
|---|---|---|---|
| 1 | Replace date picker with accessible component or add text fallback Unblocks appointment booking for keyboard and screen reader users. |
Critical | 30 min – 4 hrs |
| 2 | Add ARIA live regions and focus management to form errors Enables screen reader users to detect and recover from form validation errors. |
Critical | 1–2 hrs |
| 3 | Fix CTA button color contrast to meet 4.5:1 ratio Makes the most important interactive elements readable for all users. |
Critical | 15 min |
| 4 | Add meaningful alt text to 14 images Provides image content to screen reader users. |
High | 1 hr |
| 5 | Add skip-navigation link Allows keyboard users to bypass 14-link navigation on every page. |
Medium | 30 min |
5 representative template pages tested with automated WCAG scanning (WAVE, axe-core), keyboard-only navigation testing of the appointment booking flow, and screen reader spot checks (VoiceOver) on forms, images, and dynamic content. Testing covers WCAG 2.1 Level AA criteria.
This is not a formal WCAG audit, ADA compliance certification, or legal determination. Testing covered 5 of 112 pages. Not all WCAG 2.1 Level AA success criteria were exhaustively tested. Cognitive accessibility, reading level analysis, and plain language assessment are outside scope.
Automated scanning tools generate false positives and miss real issues. The reviewer validated every automated finding and removed false positives. Manual testing targeted the highest-risk user journeys but did not exhaustively test every interaction on every page.
The Accessibility Barrier Removal remediation (#20) addresses the highest-risk findings — keyboard trap resolution, ARIA attribute correction, color contrast remediation, alt text addition, and focus management fixes. If the practice requires formal ADA compliance documentation for legal or insurance purposes, a dedicated WCAG audit engagement with compliance certification is recommended beyond the scope of this risk snapshot.