12 pages, 8 posts, site search. No skip link. Blog posts have no h1. Contact form is placeholder-only. Homepage title is only “accessperts”.
WordPress + Elementor + Complianz + CF7 + UserWay
Remote HTML audit of accessperts.com (EN) and accessperts.de (DE), 28 August 2026. Target is Level AA (EAA / BFSG / EN 301 549). Source: WCAG 2.2.
Count of WCAG 2.2 A/AA success criteria for the set of pages. A fail on any URL counts as Fail for the set. Source: remote HTML parse, 28 Aug 2026.
Number of Level A/AA criteria scored Fail, grouped by WCAG principle. Robust has one clear fail (4.1.2).
A/AA fails · criteria
17 documented findings (F1–F17). Blockers prevent core tasks.
Contrast ratio (WCAG relative luminance) from specified CSS colors. Dashed line is the AA normal-text minimum (4.5:1). Scan CTA pink on navy fails badly. Source: CSS extracted 28 Aug 2026; hero-on-image not sampled.
Contrast ratio · :1 · Source: CSS extracted 28 Aug 2026
12 pages, 8 posts, site search. No skip link. Blog posts have no h1. Contact form is placeholder-only. Homepage title is only “accessperts”.
WordPress + Elementor + Complianz + CF7 + UserWay
16 pages, 13 posts, website index. Skip link exists but is in English. Kontakt duplicates phone/scanner IDs. Stronger headings than EN.
Same stack, German theme instance
| Pattern | Where |
|---|---|
| html lang set | en-US / de on every page |
| header / nav / main#mainContent / footer | Site-wide landmarks |
| Inquiry / Bestellen forms | Labels, autocomplete, live regions, 44px targets |
| Scanner field label + status/alert | Most templates; CSS prefers-reduced-motion |
| /website-index/ | DE only — supports 2.4.5 Multiple Ways |
Highest-impact barriers first. Criteria listed are WCAG 2.2. Severity: Blocker = Level A task failure; Serious = AA / BFSG expectation.
| ID | Issue | Severity | SC | Where |
|---|---|---|---|---|
| F1 | CF7 fields: placeholder only, no label, no autocomplete | Blocker | 1.3.1, 1.3.5, 3.3.2, 4.1.2 | /contact/ · /kontakt/ |
| F2 | Homepage video has no captions or transcript | Blocker | 1.2.2, 1.2.3, 1.2.5 | Both homepages |
| F3 | EN has no skip link; DE skip link is English | Serious | 2.4.1, 3.1.2 | All .com; all .de wording |
| F4 | Phone hidden behind onclick fake button | Serious | 2.1.1, 2.4.4, 3.2.6, 4.1.2 | /contact/, /kontakt/ (twice) |
| F5 | Two mobile menus; aria-expanded hard-coded true | Serious | 4.1.2, 2.4.3, 1.3.1 | Site-wide |
| F6 | UserWay FAB + Complianz dialog likely hide focus | Serious | 2.4.11, 2.1.2, 3.2.6 | Site-wide overlays |
| F7 | EN blog missing h1; footer uses h5 for designer credit | Serious | 1.3.1, 2.4.6 | EN posts, /blog/, footer |
| F8 | Blog card thumbnails are unnamed links | Serious | 2.4.4, 4.1.2 | EN singles; DE /blog/ |
| ID | Issue | Severity | SC |
|---|---|---|---|
| F9 | Scan CTA #d10075 on #123b82 = 2.01:1 | Serious | 1.4.3, 1.4.11 |
| F10 | Mixed EN/DE UI (CF7 lang=en-US on DE, Absenden on EN scanner) | Serious | 3.1.2 |
| F11 | Hidden reCAPTCHA badge; footer typo reCAPTHA | Moderate | 1.1.1 |
| F12 | Untitled GTM iframes | Low | 4.1.2 |
| F13 | Second scanner on /kontakt/; aria-label “Enter email” on domain field | Moderate | 1.3.1, 2.4.6 |
| F14 | Inquiry/Bestellen mostly pass; submit disabled until consent | Low | 3.3.1, 2.1.1 |
| F15 | TOC button wraps an h2; glossary li aria-level | Moderate | 1.3.1, 4.1.2 |
| F16 | Carousel drag + Elementor grow animation — live check | Live | 2.5.7, 2.3.3 |
| F17 | Help/phone not consistent; order vs inquiry vs contact prefill | Mixed | 2.4.5, 3.2.4, 3.2.6 |
Contact Form 7 (EN) — no id, label, or autocomplete:
placeholder="First name" name="FirstName" · Email, Phone, Company, Message the same. DE uses German placeholders inside lang="en-US".
Phone control is <a href="#" role="button"> with onclick rewriting to tel:+498003030848. Accessible name stays “Click here to call us”.
Video userway_accessibility_demo.mp4 has no <track kind="captions">. EN play CTA visible name is English; aria-label is German.
| Template | Extra issues beyond shared chrome |
|---|---|
| Home EN/DE | Weak EN title; uncapped video; mixed-language play control |
| Products / Widget | Carousel — confirm non-drag alternative (2.5.7) |
| Scanner EN | German Absenden / placeholder |
| Contact / Kontakt | F1, F4; DE duplicate IDs and second scanner |
| Inquiry / Bestellen | Best form on the site (F14 remaining gaps) |
| Blog index EN | Empty h1 |
| Blog singles EN | No h1; empty thumbs; heading inside TOC button |
| Blog DE | Unnamed thumbnail links; better headings |
| Legal | Scanner still injected |
| Glossary DE | One term; invalid aria-level on li |
| Website index DE | Good for 2.4.5; ZWSP in title |
| Search | EN: no h1. DE: English document title |
The nine criteria new in WCAG 2.2, then A/AA fails that already exist in 2.1. 4.1.1 Parsing is obsolete in 2.2 and is not scored.
| SC | Level | Status | Notes |
|---|---|---|---|
| 2.4.11 Focus Not Obscured (Minimum) | AA | Likely fail | Cookie dialog, UserWay FAB, header overlays |
| 2.4.12 Focus Not Obscured (Enhanced) | AAA | Live check | No part of focused component may be hidden |
| 2.4.13 Focus Appearance | AAA | Live check | Inquiry/scanner 3px gold outline is promising |
| 2.5.7 Dragging Movements | AA | Live check | Carousel prev/next exist; confirm they replace drag |
| 2.5.8 Target Size (Minimum) | AA | Partial | Inquiry/scanner 44px. CMP close, hamburger, footer unmeasured |
| 3.2.6 Consistent Help | A | Fail | Phone is a help mechanism but is hidden and not in the footer |
| 3.3.7 Redundant Entry | A | Fail | Product path splits across /inquiry/, /order/, /contact/?Message= |
| 3.3.8 Accessible Authentication (Minimum) | AA | N/A | No public login. Hidden reCAPTCHA v3 must not block submit |
| 3.3.9 Accessible Authentication (Enhanced) | AAA | N/A | No authentication |
| SC | Level | Issue |
|---|---|---|
| 1.1.1 Non-text Content | A | Unnamed blog thumbs; video without text alternative |
| 1.2.2 Captions (Prerecorded) | A | Homepage MP4 has no captions track |
| 1.2.3 Audio Description or Media Alternative | A | No transcript or AD |
| 1.2.5 Audio Description | AA | Same video |
| 1.3.1 Info and Relationships | A | CF7 labels, dual menus, heading skips |
| 1.3.5 Identify Input Purpose | AA | Contact fields lack autocomplete |
| 1.4.1 Use of Color | A | Inquiry invalid state is border-color only |
| 1.4.3 Contrast (Minimum) | AA | Scan CTA 2.01:1 |
| 1.4.11 Non-text Contrast | AA | Same scan CTA / UI chrome |
| 2.1.1 Keyboard | A | Phone onclick; CMP close is a div; dual menus |
| 2.4.1 Bypass Blocks | A | No EN skip link; repeated scanner/CMP |
| 2.4.2 Page Titled | A | EN home title is only “accessperts” |
| 2.4.3 Focus Order | A | Two menus + overlay + scanner + CMP |
| 2.4.4 Link Purpose (In Context) | A | Click here; empty thumbs |
| 2.4.6 Headings and Labels | AA | Missing EN h1; domain field labeled email |
| 2.5.3 Label in Name | A | EN video: visible EN vs German aria-label |
| 3.1.2 Language of Parts | AA | Mixed EN/DE strings |
| 3.2.4 Consistent Identification | AA | Order vs inquiry vs contact |
| 3.2.6 Consistent Help | A | Phone not in repeated help region |
| 3.3.2 Labels or Instructions | A | Placeholder-only CF7 |
| 3.3.7 Redundant Entry | A | Split product request flows |
| 4.1.2 Name, Role, Value | A | Menus, phone role=button, duplicate IDs |
Work top to bottom. Items 1–6 are the AA go-live bar. Inquiry/Bestellen is the form pattern to copy, not Contact Form 7.
| ID | Action |
|---|---|
| 13 | Inquiry: do not disable submit; add text errors; id on consent |
| 14 | Descriptive EN homepage title |
| 15 | Title or aria-hidden on GTM iframes |
| 16 | Scanner only on Home, Scanner, Contact |
| 17 | Expand DE glossary / abbreviations (AAA quality) |
| 18 | EN HTML sitemap or header search |
| 19 | Site-wide prefers-reduced-motion |
| 20 | Fix reCAPTHA typo; hidden badge not a tab stop |
| 21 | NVDA + VoiceOver on Home, Contact, Inquiry, cookie, UserWay, nav, scanner |
| 22 | 320px reflow, 200% zoom, text spacing |
| 23 | 2.4.11 against sticky header + FAB + banner |
| 24 | Measure 2.5.8 on hamburger, CMP, carousel, footer |
