Back to Proof · Download the PDF
https://russellspc.com/
On October 12, 2026, the pages listed below at https://russellspc.com/ would conform to Web Content Accessibility Guidelines (WCAG) 2.2 at Level AA if the following parts were removed: The Cloudflare Turnstile human-check widget on /site-check and /automated-audit, which is third-party content and pages behind Cloudflare Access under /admin, which are not public. This claim relies on the following technologies: HTML, CSS, JavaScript, WAI-ARIA, and SVG.
This is an independent evaluation by Russell SPC LLC of the pages listed below, on the date stated above. No organization certifies WCAG conformance and the W3C does not run a certification program, so this document is not a certification. It should be presented as the evaluator’s statement and nothing more. Conformance applies to the pages and the date listed. A later change to the site is outside it.
| # | Page or template | Description |
|---|---|---|
| 1 | / | Home |
| 2 | /services | Services |
| 3 | /methodology | Methodology |
| 4 | /proof | Proof |
| 5 | /about | About |
| 6 | /site-check | Free site check |
| 7 | /request-audit | Request an audit |
| 8 | /faq | FAQ |
| 9 | /privacy | Privacy policy |
| 10 | /terms | Terms of service |
| 11 | /automated-audit | Automated site audit |
| Guidelines | Web Content Accessibility Guidelines (WCAG) 2.2, version 2.2 |
|---|---|
| Conformance level | Level AA (all Level A and Level AA success criteria) |
| Technologies relied upon | HTML, CSS, JavaScript, WAI-ARIA, and SVG |
| Excluded from scope |
|
| Automated tools | axe-core 4.13.0, Russell SPC audit engine (HTTP and document checks) 2026-10, Playwright keyboard pass 2026-10 |
|---|---|
| Manual review | Yes |
| Keyboard-only testing | Yes |
| Assistive technology | NVDA 2026.2 (Guidepup build 0.2.1-2026.2) with Chrome on Windows, scripted run with the spoken transcript on file |
| Browsers | Chrome, Firefox, Safari |
44 passed · 0 failed · 12 not applicable, of 56 success criteria at Level A and Level AA.
| Criterion | Level | Result | Note |
|---|---|---|---|
| 1.1.1 Non-text Content | A | Pass | Automated evidence (2026-10-09): axe image-alt, svg-img-alt and role-img-alt report 0 violations on all 11 pages at 1280 and 390. 2 images and graphics and 5 aria-labels listed for a reading of whether each name says what the image means. Reviewed the settle sheet and accepted on 2026-10-12. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not applicable | Automated evidence (2026-10-09): No audio or video content on any of the 11 pages. No audio, video, object, embed, media iframe or autoplay element at 1280 or 390. |
| 1.2.2 Captions (Prerecorded) | A | Not applicable | Automated evidence (2026-10-09): No audio or video content on any of the 11 pages. No audio, video, object, embed, media iframe or autoplay element at 1280 or 390. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not applicable | Automated evidence (2026-10-09): No audio or video content on any of the 11 pages. No audio, video, object, embed, media iframe or autoplay element at 1280 or 390. |
| 1.2.4 Captions (Live) | AA | Not applicable | Automated evidence (2026-10-09): No audio or video content on any of the 11 pages. No audio, video, object, embed, media iframe or autoplay element at 1280 or 390. |
| 1.2.5 Audio Description (Prerecorded) | AA | Not applicable | Automated evidence (2026-10-09): No audio or video content on any of the 11 pages. No audio, video, object, embed, media iframe or autoplay element at 1280 or 390. |
| 1.3.1 Info and Relationships | A | Pass | Automated evidence (2026-10-09): axe structure rules report 1 best-practice violations and 0 undecided results to read. Reviewed the settle sheet and accepted on 2026-10-12. |
| 1.3.2 Meaningful Sequence | A | Pass | Automated evidence (2026-10-09): The keyboard pass (2026-10-09T19:23:51.701Z) found focus order follows DOM order on all 11 pages at both widths. The first 12 text blocks per page in DOM order are listed for a reading of whether that order makes sense. Reviewed the settle sheet and accepted on 2026-10-12. |
| 1.3.3 Sensory Characteristics | A | Pass | Automated evidence (2026-10-09): No instruction on all 11 pages relies on shape, position, color or sound alone. The visible text was scanned for "on the left or right", "green, red or round button", "the button above or below" and "to the left or right of" with no match. |
| 1.3.4 Orientation | AA | Pass | Automated evidence (2026-10-09): No stylesheet on all 11 pages has an orientation media query that hides content, no script calls screen.orientation.lock, and axe css-orientation-lock reports 0 violations. |
| 1.3.5 Identify Input Purpose | AA | Pass | Automated evidence (2026-10-09): 8 fields on all 11 pages collect a name, email, phone, organization or URL; 8 carry the matching autocomplete token. Honeypot fields hidden from people were skipped (/ #c-website, /request-audit #ra-website). |
| 1.4.1 Use of Color | A | Pass | Automated evidence (2026-10-09): axe link-in-text-block reports 0 violations and 0 undecided results on all 11 pages at 1280 and 390. Form errors appear as text (see 3.3.1) and focus is shown by an outline, not by color alone (keyboard pass 2.4.7). |
| 1.4.2 Audio Control | A | Not applicable | Automated evidence (2026-10-09): No audio or video content on any of the 11 pages. No audio, video, object, embed, media iframe or autoplay element at 1280 or 390. |
| 1.4.3 Contrast (Minimum) | AA | Pass | Automated evidence (2026-10-09): axe color-contrast reports 0 violations on all 11 pages at 1280 and 390 and 80 elements it could not decide (mostly text over a gradient or a decorative pseudo element), grouped by page and reason below for an eyeball check. Reviewed the settle sheet and accepted on 2026-10-12. |
| 1.4.4 Resize Text | AA | Pass | Automated evidence (2026-10-09): At 200 percent zoom (a 1280 window rendered at 640 CSS pixels) none of the 11 pages scrolls sideways and no text is cut off inside a box with hidden overflow. |
| 1.4.5 Images of Text | AA | Pass | Automated evidence (2026-10-09): 0 images whose file name or name suggests text (logo, badge, banner, screenshot, chart). Logos are exempt. Every other image is listed under 1.1.1. Reviewed the settle sheet and accepted on 2026-10-12. |
| 1.4.10 Reflow | AA | Pass | Automated evidence (2026-10-09): At 320 by 720 CSS pixels none of the 11 pages scrolls sideways and no text is cut off inside a box with hidden overflow. |
| 1.4.11 Non-text Contrast | AA | Pass | Automated evidence (2026-10-09): The keyboard pass found a visible focus change on every stop. 7 distinct focus styles measured against the background behind them, all at 3:1 or better. Borders of form fields and buttons are covered by the same reading. Reviewed the settle sheet and accepted on 2026-10-12. |
| 1.4.12 Text Spacing | AA | Pass | Automated evidence (2026-10-09): With line height 1.5, letter spacing 0.12em, word spacing 0.16em and paragraph spacing 2em forced on every element, none of the 11 pages scrolls sideways or cuts off text at 1280 or 390. |
| 1.4.13 Content on Hover or Focus | AA | Pass | Automated evidence (2026-10-09): 1 title tooltip and 0 hover rules that reveal content, to read whether the revealed content is dismissible, hoverable and persistent. A title tooltip drawn by the browser itself is outside 1.4.13. Reviewed the settle sheet and accepted on 2026-10-12. |
| Criterion | Level | Result | Note |
|---|---|---|---|
| 2.1.1 Keyboard | A | Pass | Automated evidence (2026-10-09): Keyboard pass (scripts/audit/keyboard-pass.mjs, 2026-10-09) clean on all 11 pages at 1280 and 390: Tab reached every visible interactive element. |
| 2.1.2 No Keyboard Trap | A | Pass | Automated evidence (2026-10-09): Keyboard pass (scripts/audit/keyboard-pass.mjs, 2026-10-09) clean on all 11 pages at 1280 and 390: Tab ran from the first stop to the end of the document with no stop repeating, so focus is never trapped. |
| 2.1.4 Character Key Shortcuts | A | Not applicable | Automated evidence (2026-10-09): No keyboard shortcut uses a single character on all 11 pages: no accesskey attribute and no keydown handler for a single printable key (the only key handler is Escape on the mobile menu). |
| 2.2.1 Timing Adjustable | A | Not applicable | Automated evidence (2026-10-09): No time limits on all 11 pages: no meta refresh, no timed redirect and no session timeout. The public site has no login or session. |
| 2.2.2 Pause, Stop, Hide | A | Pass | Automated evidence (2026-10-09): Nothing moves, blinks or updates on its own for more than 5 seconds on all 11 pages: no autoplay, no marquee, and no CSS animation that repeats forever. The reveal animations run once and assets/site.css turns them off under prefers-reduced-motion. |
| 2.3.1 Three Flashes or Below Threshold | A | Pass | Automated evidence (2026-10-09): Nothing flashes on all 11 pages: no GIF or video, and no CSS animation runs faster than 3 times a second (the fastest repeating one is 2000ms). |
| 2.4.1 Bypass Blocks | A | Pass | Automated evidence (2026-10-09): Keyboard pass (scripts/audit/keyboard-pass.mjs, 2026-10-09) clean on all 11 pages at 1280 and 390: the first Tab lands on the skip link and Enter moves focus into main. |
| 2.4.2 Page Titled | A | Pass | Every page has a title that names the page and the site. Checked on all 11 pages. |
| 2.4.3 Focus Order | A | Pass | Automated evidence (2026-10-09): Keyboard pass (scripts/audit/keyboard-pass.mjs, 2026-10-09) clean on all 11 pages at 1280 and 390: every Tab moved forward in DOM order. |
| 2.4.4 Link Purpose (In Context) | A | Pass | Automated evidence (2026-10-09): 249 links on all 11 pages; 0 use a generic text such as "click here" or "read more". Every link text per page is listed to read whether each says where it goes. Reviewed the settle sheet and accepted on 2026-10-12. |
| 2.4.5 Multiple Ways | AA | Pass | Automated evidence (2026-10-09): More than one way to reach every page: the site navigation and the footer links are on all 11 pages, and sitemap.xml lists the pages. With 11 pages a site search is not needed. |
| 2.4.6 Headings and Labels | AA | Pass | Automated evidence (2026-10-09): Every heading outline and form label, to read whether each describes its topic or purpose. Reviewed the settle sheet and accepted on 2026-10-12. |
| 2.4.7 Focus Visible | AA | Pass | Automated evidence (2026-10-09): Keyboard pass (scripts/audit/keyboard-pass.mjs, 2026-10-09) clean on all 11 pages at 1280 and 390: every stop changes its outline, shadow or border when focused. |
| 2.4.11 Focus Not Obscured (Minimum) | AA | Pass | Automated evidence (2026-10-09): Keyboard pass (scripts/audit/keyboard-pass.mjs, 2026-10-09) clean on all 11 pages at 1280 and 390: no focused element is more than half covered by the fixed nav or the floating call to action. |
| 2.5.1 Pointer Gestures | A | Not applicable | Automated evidence (2026-10-09): No multipoint or path-based gestures on all 11 pages: no touch, gesture or pointermove handler in any script. |
| 2.5.2 Pointer Cancellation | A | Pass | Automated evidence (2026-10-09): Every action fires on click (the up-event): no mousedown, pointerdown or touchstart handler in any script on all 11 pages. |
| 2.5.3 Label in Name | A | Pass | Automated evidence (2026-10-09): axe label-content-name-mismatch reports 0 violations and 0 undecided results on all 11 pages at 1280 and 390. |
| 2.5.4 Motion Actuation | A | Not applicable | Automated evidence (2026-10-09): No function on all 11 pages is operated by moving the device: no devicemotion or deviceorientation listener. |
| 2.5.7 Dragging Movements | AA | Not applicable | Automated evidence (2026-10-09): No dragging movements on all 11 pages: no draggable attribute and no drag handler. |
| 2.5.8 Target Size (Minimum) | AA | Pass | Automated evidence (2026-10-09): axe target-size reports 0 violations and 0 undecided results on all 11 pages at 1280 and 390. |
| Criterion | Level | Result | Note |
|---|---|---|---|
| 3.1.1 Language of Page | A | Pass | Every page declares lang="en" on the html element, matching its English content. Checked on all 11 pages. |
| 3.1.2 Language of Parts | AA | Pass | Automated evidence (2026-10-09): No passages in another language. No element on all 11 pages carries a lang attribute other than the English html element. |
| 3.2.1 On Focus | A | Pass | Automated evidence (2026-10-09): Keyboard pass (scripts/audit/keyboard-pass.mjs, 2026-10-09) clean on all 11 pages at 1280 and 390: no stop changed the page location or opened the menu on focus. |
| 3.2.2 On Input | A | Pass | Automated evidence (2026-10-09): No change of context on input on all 11 pages: no change or input handler submits a form or navigates. The request-audit radios and fields only clear the error message; moving between steps needs the Next button. |
| 3.2.3 Consistent Navigation | AA | Pass | Automated evidence (2026-10-09): Shared header, nav and footer are byte-identical on all 11 pages (check-chrome). |
| 3.2.4 Consistent Identification | AA | Pass | Automated evidence (2026-10-09): Shared header, nav and footer are byte-identical on all 11 pages (check-chrome), so the same links carry the same names everywhere. |
| 3.2.6 Consistent Help | A | Pass | Automated evidence (2026-10-09): The contact routes (the Request an Audit link in the nav and the contact links in the footer) sit in the same place on all 11 pages: the shared chrome is byte-identical (check-chrome). |
| 3.3.1 Error Identification | A | Pass | Automated evidence (2026-10-09): Submitting each form (/, /site-check, /automated-audit, /request-audit) with its required fields empty shows a text error tied to the field: native validation (validity.valueMissing with a validationMessage) or an error message linked to the field. |
| 3.3.2 Labels or Instructions | A | Pass | Automated evidence (2026-10-09): Every field on the forms (/, /site-check, /automated-audit, /request-audit) has a visible label placed before the input. |
| 3.3.3 Error Suggestion | AA | Pass | Automated evidence (2026-10-09): An invalid email ("not-an-email") or URL ("not-a-url") on each form (/, /site-check, /automated-audit, /request-audit) produces a message saying what is expected. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Pass | Automated evidence (2026-10-09): The only financial step is Stripe Checkout, a third party. Before it, /automated-audit states the price, the site and the terms; read that the buyer can check them before paying. Reviewed the settle sheet and accepted on 2026-10-12. |
| 3.3.7 Redundant Entry | A | Pass | Automated evidence (2026-10-09): No process asks for the same information twice: every form on all 11 pages is a single form, and the request-audit steps each ask different questions within one page. |
| 3.3.8 Accessible Authentication (Minimum) | AA | Pass | Automated evidence (2026-10-09): No login on the public site, so no cognitive function test. The Cloudflare Turnstile check on /site-check and /automated-audit is non-interactive and is listed as an exclusion in the statement data. |
| Criterion | Level | Result | Note |
|---|---|---|---|
| 4.1.1 Parsing | A | Not applicable | Obsolete in WCAG 2.2; always satisfied. |
| 4.1.2 Name, Role, Value | A | Pass | Automated evidence (2026-10-12): axe button-name, link-name, aria rules, nested-interactive and aria-allowed-role report 0 violations and 0 undecided results on all 11 pages at 1280 and 390. Every interactive element's role and name is listed per page. Scripted NVDA run (NVDA 2026.2 (Guidepup build 0.2.1-2026.2) with Chrome on Windows) on 2026-10-12: ten-step script passed; spoken transcript in scripts/audit/data/screen-reader-pass.json. |
| 4.1.3 Status Messages | AA | Pass | Automated evidence (2026-10-12): 11 live regions (role status or alert, or aria-live) and what the scripts write into them. Scripted NVDA run (NVDA 2026.2 (Guidepup build 0.2.1-2026.2) with Chrome on Windows) on 2026-10-12: ten-step script passed; spoken transcript in scripts/audit/data/screen-reader-pass.json. |
| Name | Richard Russell |
|---|---|
| Organization | Russell SPC LLC |
| Contact | [email protected] |
Russell SPC LLC · Hobe Sound, Florida · russellspc.com
This document records an evaluation against published technical criteria. It is not a legal opinion and not a certification.