Automated WCAG 2.1 Level A / AA assessment of riversidefamilydental.example, prepared against the technical standard adopted by the U.S. Department of Health and Human Services under Section 504 of the Rehabilitation Act.
HHS has adopted WCAG 2.1 Level AA as the binding technical standard for the websites and mobile applications of entities that receive federal financial assistance from HHS. Because Medicare and Medicaid participation brings a practice within scope, this reaches the large majority of U.S. clinical practices, not only hospitals and health systems.
The compliance dates are May 11, 2027 for recipients with 15 or more employees and May 10, 2028 for those with fewer than 15. Enforcement runs through the HHS Office for Civil Rights, which acts on individual complaints. A single patient who cannot book an appointment online is enough to start one.
What this report is. A measured position as of today, and a sequence for addressing it. Conformance itself is established through manual and assistive-technology evaluation, and the scope note below sets out exactly which part of the standard automated testing reaches.
Failures appear on every page scanned, indicating site-wide template issues.
The scan detected 211 accessibility failures across 8 pages, falling under 6 WCAG 2.1 success criteria. Because most of these pages share the same templates, a fix applied once usually resolves the same failure everywhere it appears.
Success criteria with failures: 1.1.1 Non-text Content (A) · 1.4.1 Use of Color (A) · 1.4.3 Contrast (Minimum) (AA) · 1.4.4 Resize Text (AA) · 2.4.4 Link Purpose (In Context) (A) · 4.1.2 Name, Role, Value (A)
Automated testing is reliable, repeatable, and catches a substantial share of real barriers. It is not a complete assessment. Independent research consistently finds that automated tools detect roughly 30–40% of WCAG issues; the remainder require human judgement.
| Covered by this report | Requires manual testing |
|---|---|
| Missing image alternatives, unlabelled form fields and buttons, colour contrast, page language, heading structure, ARIA errors, landmark structure, frame titles, duplicate IDs, zoom restrictions | Whether alt text is accurate, keyboard operability end to end, focus visibility and order, screen reader announcement quality, error recovery in forms, video captions and audio description, PDF and document accessibility, cognitive load and plain language |
A defensible compliance position needs both. The manual checklist at the end of this report is the next step, and it is the part most practices skip.
These 7 issue types are rated critical or serious. They block or substantially impair a patient's ability to use the site. Fix these first.
Ensure all elements with a role attribute use a valid value
ARIA roles used must conform to valid values. Reference: https://dequeuniversity.com/rules/axe/4.13/aria-roles?application=axeAPI
<div class="example">representative markup</div>
<div class="example">representative markup</div>
<div class="example">representative markup</div>
<div class="example">representative markup</div>
What this means for a patient. A patient using a screen reader hears nothing where your image is. If the image is a provider photo, a map, an insurance logo, or a "Book Appointment" graphic, that information simply does not exist for them.
Add an alt attribute to every <img>. Describe the purpose, not the file: alt="Dr. Chen, pediatric dentist". If the image is purely decorative, use alt="" so assistive tech skips it. Never leave alt off entirely.
Estimated effort: Low
<img src="/uploads/2024/06/practice-logo-white.png">
<img src="/uploads/2024/06/practice-logo-white.png">
<img src="/uploads/2024/06/practice-logo-white.png">
<img src="/uploads/2024/06/practice-logo-white.png">
What this means for a patient. This is the single most common barrier for older patients and anyone with low vision, cataracts, or diabetic retinopathy, a population heavily represented in most practices. Light grey text on white is unreadable for them.
WCAG 2.1 AA requires a contrast ratio of at least 4.5:1 for normal text and 3:1 for text 18pt/24px or larger (or 14pt/18.66px bold). Darken the text colour or lighten the background until the ratio passes. Pay special attention to placeholder text, footer text, and text over hero images.
Estimated effort: Medium
<p style="color:#9aa3ad;background:#ffffff">Monday to Thursday, 8am to 5pm</p>
<p style="color:#9aa3ad;background:#ffffff">Monday to Thursday, 8am to 5pm</p>
<p style="color:#9aa3ad;background:#ffffff">Monday to Thursday, 8am to 5pm</p>
<p style="color:#9aa3ad;background:#ffffff">Monday to Thursday, 8am to 5pm</p>
What this means for a patient. Screen reader users navigate by pulling up a list of links. Empty or icon-only links appear as "link" or a raw URL, so the patient cannot find your patient portal or contact page.
Add visible text, or aria-label on icon links (social icons, phone icons, logo links). Avoid "click here". Use the destination, e.g. "New patient forms".
Estimated effort: Low
<a href="https://facebook.com/example"><i class="fa fa-facebook"></i></a>
<a href="https://facebook.com/example"><i class="fa fa-facebook"></i></a>
<a href="https://facebook.com/example"><i class="fa fa-facebook"></i></a>
<a href="https://facebook.com/example"><i class="fa fa-facebook"></i></a>
What this means for a patient. Custom date pickers and comboboxes, common in appointment booking, are unusable.
Add aria-label or aria-labelledby to elements with input roles.
Estimated effort: Medium
<div class="example">representative markup</div>
<div class="example">representative markup</div>
<div class="example">representative markup</div>
<div class="example">representative markup</div>
What this means for a patient. Embedded maps, appointment schedulers, and videos are announced as "frame" with no explanation. Third-party booking widgets are the most common offender on practice sites.
Add title="Appointment booking" (or similar) to every <iframe>.
Estimated effort: Low
<iframe src="https://www.google.com/maps/embed?pb=..." width="600" height="450"></iframe>
What this means for a patient. A colour-blind patient cannot see which words are links, so they miss your appointment request or patient portal link entirely.
Underline links inside body text, or ensure a 3:1 contrast difference against surrounding text plus a non-colour cue on hover and focus.
Estimated effort: Low
<p>Please review our <a href="/policy" style="color:#2b6cb0">financial policy</a> before your visit.</p>
These 1 issue type are rated moderate or minor. They degrade the experience for patients using assistive technology and still count as WCAG failures, but they rarely block a task outright.
What this means for a patient. A low-vision patient physically cannot enlarge your text on a phone. This is one of the most common and most damaging mobile failures.
Remove user-scalable=no and maximum-scale=1 from the viewport meta tag.
Estimated effort: Low
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
| Page | Issue types | Instances |
|---|---|---|
| /insurance Insurance | Riverside Family Dental |
6 | 38 |
| /new-patient-forms New Patient Forms | Riverside Family Dental |
8 | 35 |
| /contact Contact | Riverside Family Dental |
6 | 27 |
| /services Services | Riverside Family Dental |
6 | 24 |
| /appointments Request an Appointment | Riverside Family Dental |
6 | 24 |
| /about About the Practice | Riverside Family Dental |
6 | 22 |
| /team Our Team | Riverside Family Dental |
6 | 22 |
| / (home page) Riverside Family Dental | Riverside Family Dental |
5 | 19 |
Address the critical and serious findings above in your site templates: labels, button and link names, page language, frame titles, skip link. Because these live in shared templates, this single pass typically removes the majority of the instance count across every page at once.
Correct contrast in your theme's colour tokens, then fix image alternatives and heading order in page content. Contrast is a design-system change; alt text is an editorial task your existing content staff can own with brief guidance.
Work through the manual checklist below on your highest-traffic patient journeys: appointment request, new-patient forms, contact, and patient portal entry. This is where the failures that automation cannot see are found.
Remediate or replace inaccessible PDFs, starting with new-patient paperwork. Ask your scheduling, payment, and portal vendors for their current accessibility conformance reports in writing. Embedded third-party widgets remain your responsibility to your patients.
Re-scan monthly. Sites regress every time content is added, and a position established once is lost within a few months without monitoring. Keep dated scan records: documented, ongoing effort is exactly what OCR looks for if a complaint is ever filed.
None of the following can be verified by any automated tool. Work through them on your appointment request and new-patient form pages first.
8 pages of riversidefamilydental.example were loaded in a current desktop Chrome browser at 1440×900, allowing client-side scripts to render fully, and then tested with axe-core, the open-source engine maintained by Deque Systems, restricted to WCAG 2.1 Level A and AA rules. Pages were selected automatically from the site's sitemap and homepage navigation, weighted toward patient-facing paths such as appointment, contact, forms, insurance, and provider pages. Findings are reported as rule failures with the number of distinct page elements affected.
Every finding listed corresponds to a real element on a real page, cited above, and each was measured rather than inferred. The inverse does not hold: the absence of a finding on a criterion automated testing cannot reach says nothing about that criterion, which is what the manual checklist is for.