1. The summary page
The report's opening summary, shortened a little, with the practice's name, website and anything else that would identify it taken out.
Accessibility evaluation
A dental practice's website
WCAG 2.1 Level AA. Home, appointments and contact pages, as saved on November 6, 2026.
We checked the home, appointments and contact pages against WCAG 2.1 Level AA, the standard named in the HHS Section 504 web rule. Two automated rule engines tested the page code. Testing software then drove a real browser through each page using only the keyboard, at 200% zoom, at a 320-pixel phone width and with wider text spacing, and checked focus visibility and pause controls.
On the saved copy we found 40 problems that fail a WCAG 2.1 success criterion, 29 at Level A and 11 at Level AA. Of these, one is critical, 15 serious, 16 moderate and 8 minor. Together they fail 16 of the 50 criteria.
- 16 high impact on patients
- 16 medium
- 8 low
The ones that affect patients most:
- The quick contact form at the bottom of every page has no labels, and its two text-message choices have no words at all.
- Keyboard focus is invisible almost everywhere, so a keyboard user can't see where they are.
- The About, New Patients and Services drop-down menus open only with a mouse.
- The home page video and both sliders move with no way to pause them.
- The rating stars, the social icons and the doctor's photo are links with no name, so a screen reader says only "link".
All 40 are in the practice's own site. 20 were found beyond the automated scan, by the browser checks or by reading the page code. We wrote a fix for each one and applied all of them to the saved copy.
This report covers three pages as they were saved on November 6, 2026. It does not show that the whole site meets WCAG 2.1 AA, and it does not promise any legal result.
3. Three of the 40 findings, as the report shows them
Each finding has the same parts. The first paragraph is in plain words for you. "Where", "How found" and the fix are for whoever runs your website. We've shortened some lines, put file names in plain words and taken out the practice's name.
KEY-01. Keyboard focus is invisible on almost every link, button and form field Serious
- Pages
- Home, Appointments, Contact
- Criteria
- 2.4.7 Focus Visible; 1.4.11 Non-text Contrast (Level AA)
- Controlled by
- The practice's own site (theme, plugins or form settings)
- Impact on patients
- High
People who use a keyboard instead of a mouse can't see which link, button or form box they are on, because the theme switches off the outline browsers draw around it and puts nothing in its place. They lose their place on every page, including in the appointment and contact forms.
Where: Every page: the header, main menu, page content, both forms, the sliders, the footer and the cookie notice. The cause is the rule :focus{outline:0} in the child theme's stylesheet, and outline:none in the slider's stylesheet.
How found: browser checks: a keyboard walk through each page, with a picture of every stop. Automated rules: IBM style_focus_visible (a possible failure, confirmed in the pictures). Reading the page code.
Where to fix it in WordPress: The child theme's stylesheet (Appearance > Theme File Editor > style.css): delete :focus{outline:0} and add a :focus-visible outline, or add the rule under Appearance > Customize > Additional CSS. Clear the caching plugin's cache afterwards.
CSS (in the fix pack's stylesheet):
/* Restore a clear keyboard focus ring. Two tones, a white inner
edge and a dark blue outer ring, so one of them always stands
out on white, photo and blue backgrounds. */
:focus-visible {
outline: 3px solid #0040a3 !important;
outline-offset: 2px !important;
box-shadow: 0 0 0 5px #fff !important;
}
Fixed in the demo copy. Afterwards, focus was visible at every one of the 177 keyboard stops we measured.
KEY-02. Drop-down menus open only on mouse hover Serious
- Pages
- Home, Appointments, Contact
- Criteria
- 2.1.1 Keyboard (Level A)
- Controlled by
- The practice's own site (theme, plugins or form settings)
- Impact on patients
- High
Keyboard users can't open the About, New Patients and Services drop-down menus, so the 35 pages listed in them (for example Financial Information, Online Forms and every service page) can't be reached from the main menu without a mouse. The fix adds a small arrow button beside each of those menu names. Enter or Space opens the list, Esc closes it, and a closed list stays out of the Tab order. The menu names stay links to their pages, and the mouse still opens the lists on hover.
Where: The header's main menu on every page, at desktop widths: the drop-downs under About (4 links), New Patients (3) and Services (24 more links in 6 groups). The theme shows the sub-menus only while the mouse hovers over them, so every keyboard walk went from About straight to New Patients.
How found: browser checks: the keyboard walk and the accessibility tree, where the sub-menu links were never shown. Reading the page code.
Where to fix it in WordPress: The header menu: a button after each menu item that has a drop-down, with aria-expanded and aria-controls, printed by the theme or added by the fix pack's script, loaded from the child theme's functions.php. The menu items themselves stay in Appearance > Menus.
Script (an excerpt from the fix pack, slightly simplified): the button it adds after each menu name
var btn = document.createElement('button');
btn.setAttribute('type', 'button');
btn.className = 'a11y-submenu-toggle';
btn.setAttribute('aria-expanded', 'false');
btn.setAttribute('aria-controls', sub.id);
btn.setAttribute('aria-label', linkText + ' sub-menu');
Fixed in the demo copy.
IMG-04. Facebook, Google and Instagram icon links have no names Serious
- Pages
- Home, Appointments, Contact
- Criteria
- 1.1.1 Non-text Content; 2.4.4 Link Purpose (In Context); 4.1.2 Name, Role, Value (Level A)
- Controlled by
- The practice's own site (theme, plugins or form settings)
- Impact on patients
- High
The Facebook, Google and Instagram buttons are icons only, so screen reader and voice-control users get unlabeled links and don't know which site each one opens.
Where: The footer's social icons on every page, plus the same three links in the home page's phone-only call bar. Each link holds only an empty icon-font span. The Google icon opens the practice's Google Maps listing.
How found: automated rules: axe-core link-name; IBM a_text_purpose. Browser checks: the accessibility tree and the keyboard walk.
Where to fix it in WordPress: The theme's footer template (footer.php) and the home page's phone-only call bar. If the theme builds these icons from its social-profile options, add the label in the template loop that prints them.
Page markup, 12 edits (Home 6, Appointments 3, Contact 3). The first one, on Home:
Before
<a href="https://www.facebook.com/[practice]/" class="header-facebook" target="_blank">
<span class="fa fa-facebook"></span>
After
<a href="https://www.facebook.com/[practice]/" class="header-facebook" target="_blank"
aria-label="[Practice name] on Facebook">
<span class="fa fa-facebook" aria-hidden="true"></span>
Fixed in the demo copy.