| Client Name | [Client Full Name] |
| Company | [Client Company / Entity Name] |
| Website URL | https://www.[client-domain].com |
| Report Date | August __, 2026 |
| Remediation Period | [Start Date] — [End Date] |
| Prepared By | Matthew Nolan, THENICEGUY.DESIGN LLC |
| Case Reference | [Optional: Case No. / Matter Reference] |
| Report Version | 1.0 — Final |
This section defines the boundaries of the conformance assessment — what was evaluated, what was excluded, and the platform on which the evaluation was conducted. The scope statement is binding for the purposes of this report.
The conformance assessment covered the following templates, page types, and representative URLs of the website identified on the cover page. The pages listed constitute the user-facing surfaces most likely to be encountered by users with disabilities during typical shopping journeys, including browse, search, product detail, cart, checkout, and account flows.
| Page Type / Template | Representative URL | Shopify Template File |
|---|---|---|
| Homepage | https://www.[client-domain].com/ | templates/index.liquid |
| Collection (product listing) | https://www.[client-domain].com/collections/all | templates/collection.liquid |
| Product detail | https://www.[client-domain].com/products/sample-product | templates/product.liquid |
| Cart page | https://www.[client-domain].com/cart | templates/cart.liquid / sections/cart-drawer.liquid |
| Search results | https://www.[client-domain].com/search?q=sample | templates/search.liquid |
| Checkout (Shopify Plus) | https://checkout.[client-domain].com/ | Shopify-hosted checkout (theme-extensible surfaces) |
| Account login / registration | https://www.[client-domain].com/account/login | templates/customers/login.liquid |
| Contact / page template | https://www.[client-domain].pages/contact | templates/page.contact.liquid |
| Blog listing & article | https://www.[client-domain].com/blogs/news | templates/blog.liquid / article.liquid |
| 404 / not-found | https://www.[client-domain].com/404 | templates/404.liquid |
The following items were not included in this conformance assessment and are excluded from the conformance statement in Section 4. Their exclusion is stated explicitly to bound the findings of this report.
This section documents the testing methods, tools, and protocols used to evaluate conformance. The methodology is designed to produce a defensible conformance assessment combining automated scanning with manual assistive-technology testing.
Conformance was evaluated using a layered methodology consisting of (1) automated scanning to identify programmatic defects, (2) manual assistive-technology testing to evaluate real-world usability by users with disabilities, and (3) keyboard-only navigation testing to verify operability without a pointing device. No single method is sufficient; a defensible conformance assessment requires all three layers.
| Tool | Version | Purpose | Scope of Use |
|---|---|---|---|
| axe-core | 4.9.2 | Automated WCAG 2.1 AA rule engine | All audited pages; run via browser extension and CI integration |
| Lighthouse Accessibility | Chrome 120 (Lighthouse 11) | Performance + accessibility audit scoring | Homepage, collection, product, cart templates |
| WAVE (WebAIM) | 1.4.2 (extension) | Structural and contrast error visualization | All audited pages; manual review of flagged items |
| Pa11y CLI | 7.0.0 | Headless batch scanning for CI regression | Pre- and post-remediation regression baseline |
Each audited page was manually tested with the following assistive technologies to verify real-world operability and perceivability for users with disabilities. Screen reader testing was conducted by navigating each page using the screen reader's browse and focus modes — not merely by launching the screen reader and confirming it produces speech.
| Assistive Technology | Version | Operating System | Test Coverage |
|---|---|---|---|
| NVDA (NonVisual Desktop Access) | 2024.4.1 | Windows 11 (22H2) | All audited pages; full browse + focus mode navigation |
| VoiceOver | macOS 14 (Sonoma) built-in | macOS 14.5 | All audited pages; full rotor + navigation testing |
| TalkBack | 14.1 | Android 14 | Homepage, product, cart, checkout (mobile surface spot-check) |
| Keyboard-only navigation | — | Windows 11 / macOS 14 | All interactive elements; tab order, focus visibility, no traps |
| Browser zoom 200% | — | Chrome 120 | Homepage, product, cart — verify reflow and no horizontal scroll |
Each WCAG 2.1 Level AA success criterion (50 criteria total: 29 Level A + 21 Level AA across Perceivable, Operable, Understandable, and Robust principles) was evaluated against the audited scope. For each criterion, conformance was determined by:
A success criterion was marked "conforms" only when all applicable methods confirmed satisfaction. Criteria marked "not applicable" are documented with justification in the conformance summary.
This section states the overall conformance determination and provides a quantitative summary of findings. Conformance language is used throughout — this report does not use the terms "compliance," "certified," or "guaranteed," as those terms imply legal warranties outside the scope of a WCAG conformance assessment.
Determination: The audited scope of [client-domain].com conforms to WCAG 2.1 Level AA as of August __, 2026, based on manual testing with assistive technology (NVDA, VoiceOver, keyboard-only navigation) and automated evaluation (axe-core, Lighthouse). All identified issues within the audited scope have been remediated, with the exceptions documented in Section 7 (Remaining Known Issues).
| Metric | Count | Notes |
|---|---|---|
| Total issues identified (initial audit) | [N] | Across all audited templates and page types |
| Issues remediated within audited scope | [N] | See Section 5 (Detailed Findings) and Section 6 (Remediation Log) |
| Issues remaining as known limitations | [N] | See Section 7 (Remaining Known Issues) for justification |
| Issues out of scope (third-party / Shopify-hosted) | [N] | Documented; not subject to remediation under this engagement |
| WCAG 2.1 AA success criteria evaluated | 50 | Full Level AA criteria set |
| Success criteria conformance rate (audited scope) | [__]% | Remediating criteria with documented known limitations |
| axe-core violations (post-remediation) | 0 | Zero violations across audited pages; see automated scan reports |
| Lighthouse accessibility score (post-remediation) | [__]/100 | Average across audited page types |
| Principle | Criteria | Conforms | Known Limitation | Notes |
|---|---|---|---|---|
| 1. Perceivable | 14 | 14 | 0 | Color contrast, alt text, captions verified |
| 2. Operable | 9 | 9 | 0 | Keyboard nav, focus management, no traps |
| 3. Understandable | 10 | 10 | 0 | Form labels, error identification, language |
| 4. Robust | 5 | 5 | 0 | ARIA correctness, name/role/value |
This section provides a complete record of each accessibility issue identified during the initial audit, its WCAG success criterion reference, the remediation applied, and the verification status. Sample entries are shown below; the production version of this report will contain all issues identified during the engagement.
| Issue ID | WCAG SC | Page / Template | Issue Description | Severity | Status | Before (Observed) | After (Remediated) | Date Fixed |
|---|---|---|---|---|---|---|---|---|
| ISSUE-001 | SC 2.1.2 No Keyboard Trap |
Cart drawer sections/cart-drawer.liquid |
Keyboard focus trapped inside the slide-out cart drawer; Tab cycles within the drawer and Escape does not close it. | High | Remediated | Focus moved into the cart drawer and could not exit via Tab or Shift+Tab. Escape key had no handler. Screen reader users were unable to return to the page. | JavaScript focus-management routine added: drawer opens → first focusable element receives focus; Escape key closes drawer; on close, focus returns to the cart-trigger button. Focus trap loop implemented with a sentinel. | 2026-08-10 |
| ISSUE-002 | SC 4.1.2 Name, Role, Value |
Product variant selector snippets/product-variant.liquid |
Variant selector rendered as a styled <div> without role, label, or keyboard operability. Screen readers announced it as an unlabeled group. | High | Remediated | Native <select> replaced with custom <div> buttons for styling; no ARIA roles, no accessible name, no keyboard arrow support. NVDA announced only "group." Keyboard users could not change the variant. | Replaced custom divs with a native <fieldset> containing radio <input> elements, each with a visible <label>. Alternatively, added role="radiogroup" with aria-label and full arrow-key support per WAI-ARIA Authoring Practices. | 2026-08-08 |
| ISSUE-003 | SC 1.4.3 Contrast (Minimum) |
Product price badge snippets/price-badge.liquid |
"Sale" badge used white text on a light gray (#E0E0E0) background — contrast ratio of 1.7:1, below the 4.5:1 minimum for normal text. | Medium | Remediated | Sale badge background #E0E0E0, text color #FFFFFF → contrast ratio 1.7:1. Failed WCAG AA. Identified by automated scan and confirmed manually. | Background color changed to #1A5632 (dark teal) with #FFFFFF text → contrast ratio 8.9:1. Verified with WebAIM Contrast Checker. Also meets Enhanced (AAA) for large text. | 2026-08-07 |
| ISSUE-004 | SC 2.4.6 Headings & Labels |
Collection grid filters sections/collection-filters.liquid |
Filter buttons labeled only with generic text ("Filter," "Sort") — no descriptive context for screen reader users navigating by headings or button labels. | Medium | Remediated | Button text was "Filter" and "Sort by" with no aria-label. Screen reader users heard a list of unlabeled buttons with no context for the current collection. | Added aria-label="Filter products in [collection title]" and aria-label="Sort products in [collection title]" using Liquid to inject the collection name. Heading "Filter & Sort" added as a visually-hidden h2 for screen reader navigation. | 2026-08-09 |
| ISSUE-005 | SC 3.3.1 Error Identification |
Customer login form templates/customers/login.liquid |
Form submission errors displayed only as a red border around the field — no text message. No aria-live region to announce errors to screen reader users. | High | Remediated | Email/password fields showed a red border on error with no text. Screen reader users received no announcement that an error occurred. No programmatic association between field and error. | Added visible error text below each field ("Email address is required"), linked via aria-describedby. Wrapped error container in role="alert" with aria-live="assertive." NVDA now announces the error immediately on form submission failure. | 2026-08-11 |
This section provides a chronological record of all code changes made to achieve conformance. Each entry links the change to a WCAG success criterion, the file modified, and the version control commit. This log establishes that remediation work was performed and is traceable.
| Date | Change Description | WCAG SC | Files Modified | Commit / Version |
|---|---|---|---|---|
| 2026-08-05 | Added lang attribute to <html> element (was missing); ensures correct screen reader pronunciation engine | SC 3.1.1 | layout/theme.liquid | a3f2c1e |
| 2026-08-06 | Added descriptive alt text to all homepage hero and collection-banner images; removed redundant alt from decorative images (alt="") | SC 1.1.1 | sections/image-banner.liquid, sections/collection-banner.liquid | b71e0a4 |
| 2026-08-07 | Fixed color contrast on "Sale" price badge — background changed from #E0E0E0 to #1A5632 (8.9:1 ratio) | SC 1.4.3 | snippets/price-badge.liquid, assets/theme.css.liquid | c4d8b91 |
| 2026-08-07 | Added visually-hidden skip-to-content link as first element in <body>; appears on focus | SC 2.4.1 | layout/theme.liquid, assets/theme.css.liquid | d0e2f55 |
| 2026-08-08 | Replaced custom div-based product variant selector with native fieldset/radio inputs; added aria-label to radiogroup | SC 4.1.2 | snippets/product-variant.liquid, assets/product-form.js | e9a1c30 |
| 2026-08-08 | Added aria-label="Search products" to site search input; removed placeholder-only labeling | SC 4.1.2, SC 3.3.2 | sections/header.liquid | f2b4d77 |
| 2026-08-09 | Added descriptive aria-labels to collection filter and sort controls; added visually-hidden heading "Filter & Sort" | SC 2.4.6, SC 4.1.2 | sections/collection-filters.liquid | a8c3e1b |
| 2026-08-09 | Fixed form label associations: added <label for> bindings to all customer account form fields (login, registration, address) | SC 3.3.2, SC 1.3.1 | templates/customers/login.liquid, templates/customers/register.liquid, templates/customers/addresses.liquid | b5f7e09 |
| 2026-08-10 | Implemented focus management for cart drawer: open → focus first element; Escape closes; focus returns to trigger; focus trap loop added | SC 2.1.2, SC 2.4.3 | sections/cart-drawer.liquid, assets/cart-drawer.js | c0d4f88 |
| 2026-08-11 | Added visible error messages with aria-describedby and role="alert" to customer login form; errors now announced to NVDA/VoiceOver | SC 3.3.1, SC 4.1.3 | templates/customers/login.liquid, assets/customer.js | d7e2a15 |
| 2026-08-12 | Added heading hierarchy verification: ensured single h1 per page; corrected collection pages using h2 for product titles | SC 1.3.1, SC 2.4.6 | templates/collection.liquid, snippets/product-card.liquid | e1f9b44 |
| 2026-08-12 | Verified reflow at 320px and 200% zoom: no horizontal scroll on any audited page; adjusted grid breakpoints | SC 1.4.10 | assets/theme.css.liquid, sections/main-collection.liquid | f3a8c0d |
accessibility/remediation and deployed via Shopify CLI. Commits are referenced by short hash; full hashes and diff histories are available in the accompanying technical appendix. The post-remediation theme version tag is v[a.b.c]-a11y.
This section documents accessibility issues within or adjacent to the audited scope that were not remediated as part of this engagement, along with the reason for deferral and a recommendation for closure. Full disclosure of known limitations is essential to the defensibility of this report — a conformance assessment that conceals known issues is not defensible.
| Issue ID | Issue Description | WCAG SC | Reason for Not Remediating | Cost / Effort to Close | Recommendation |
|---|---|---|---|---|---|
| KNOWN-001 | Third-party product reviews widget (Yotpo) renders review forms without accessible labels or keyboard support for the star-rating input. | SC 4.1.2, SC 2.1.1 | Widget is a third-party iframe application; source code not editable by THENICEGUY.DESIGN LLC. Remediation requires vendor action or app replacement. | Medium — requires evaluating alternative accessible review apps or commissioning a custom Liquid-based review template (~$2,500–$5,000). | Replace with an accessibility-tested review app (e.g., [app name]) or build a custom reviews snippet. Until then, flag the widget as out of scope per Section 1.2. |
| KNOWN-002 | Live chat widget (Tidio) does not trap focus when the chat panel opens and does not announce the panel to screen readers on launch. | SC 2.1.2, SC 4.1.3 | Widget is a third-party script injection; behavior is controlled by the vendor's JavaScript bundle. Limited theme-level override possible. | Low–Medium — contact vendor for accessibility roadmap or evaluate [alternative accessible chat app]. | Open a support ticket with the chat vendor requesting ARIA conformance. If no roadmap, evaluate replacement within 90 days. Document vendor correspondence. |
| KNOWN-003 | Shopify-hosted checkout (checkout.liquid / Shopify Plus) has a minor focus order issue on the shipping-method radio group when a discount code is applied mid-flow. | SC 2.4.3 | Checkout is Shopify-hosted; only the theme-extensible header/footer and order summary are editable. Core checkout DOM is Shopify's responsibility. | Not actionable at theme level. Report to Shopify via Plus partner channel. | File a bug report with Shopify Plus support. Shopify publishes its own accessibility conformance report; confirm whether the issue is acknowledged. Do not block settlement closure on this item. |
| KNOWN-004 | Product video embeds (YouTube) lack synchronized captions on two legacy product demonstration videos uploaded prior to remediation. | SC 1.2.2 | Video captioning is a content production task, not a code remediation task. Source video files were not provided as part of this engagement. | Low — captioning services ~$5–$12 per minute of audio. Two videos, ~3 min each → ~$30–$72 total. | Client to commission captioning for both videos via a service (e.g., Rev, 3Play Media). Upload caption tracks to YouTube. Re-verify within 30 days. |
| KNOWN-005 | Email marketing pop-up (Klaviyo) appears without a focusable close button accessible to keyboard users when it first renders on session entry. | SC 2.1.1, SC 2.4.3 | Pop-up is managed by Klaviyo's embedded script; theme-level override limited to a wrapper element. Klaviyo's accessibility settings exist but require account-level configuration outside the theme. | Low — configure Klaviyo account settings for accessible close behavior; ~1 hour. | Client to update Klaviyo form settings: enable "Escape to close" and "Focus close button on open." Verify in next testing cycle. If Klaviyo does not support it, disable the pop-up on first-session display. |
This section records the results of manual assistive technology testing conducted on the audited pages after remediation. These results — not automated scan scores — are the primary evidence of conformance.
| Page / Template | Screen Reader | Browser | Result | Notes |
|---|---|---|---|---|
| Homepage | NVDA 2024.4.1 | Firefox 121 | Pass | Page structure announced correctly; h1 present; skip link reachable and functional; navigation landmarks labeled. |
| Collection page | NVDA 2024.4.1 | Firefox 121 | Pass | Product cards announced as headings; filter controls labeled with collection context; sort control operable. |
| Product detail | NVDA 2024.4.1 | Firefox 121 | Pass | Variant selector announced as radio group with label; add-to-cart button announces product name; price read in context. |
| Cart drawer | NVDA 2024.4.1 | Firefox 121 | Pass | Drawer open announced; focus moves to drawer; Escape closes and returns focus to trigger; no keyboard trap. |
| Checkout | NVDA 2024.4.1 | Chrome 120 | Pass | Shopify-hosted checkout; form fields labeled; error messages announced via aria-live; known minor issue per KNOWN-003. |
| Account login | NVDA 2024.4.1 | Firefox 121 | Pass | Form labels associated; error messages announced immediately on submission failure via role="alert." |
| Search results | NVDA 2024.4.1 | Firefox 121 | Pass | Search input labeled; results count announced; result links have descriptive text including product name. |
| 404 page | NVDA 2024.4.1 | Firefox 121 | Pass | Page title announces "Page not found"; single h1; return-to-shop link present and descriptive. |
| Page / Template | Screen Reader | Browser | Result | Notes |
|---|---|---|---|---|
| Homepage | VoiceOver (macOS 14) | Safari 17.2 | Pass | Landmark navigation via rotor functional; banner/navigation/main/footer landmarks present; images have descriptive alt. |
| Collection page | VoiceOver (macOS 14) | Safari 17.2 | Pass | Product cards announced with name and price; filter/sort controls accessible via form controls rotor. |
| Product detail | VoiceOver (macOS 14) | Safari 17.2 | Pass | Variant radio group operable via arrow keys; quantity stepper announced; add-to-cart confirmation read. |
| Cart drawer | VoiceOver (macOS 14) | Safari 17.2 | Pass | Focus management verified; Escape closes drawer; VO announcement "cart drawer, dialog" on open. |
| Checkout | VoiceOver (macOS 14) | Safari 17.2 | Pass | Checkout flow navigable; form fields labeled; order summary read in context; known limitation KNOWN-003. |
| Account login | VoiceOver (macOS 14) | Safari 17.2 | Pass | Labels announced; error identification functional; form submission errors read via live region. |
| Page / Template | Test | Result | Notes |
|---|---|---|---|
| All audited pages | Skip-to-content link | Pass | First Tab press reveals skip link; Enter moves focus to main content; link target has tabindex="-1". |
| Homepage | Tab order & focus visibility | Pass | Logical tab order (logo → nav → search → content); visible focus outline on all interactive elements. |
| Collection page | Filter & sort operability | Pass | All filter checkboxes and sort dropdown reachable via Tab; Space toggles; Enter applies. |
| Product detail | Variant selection & add-to-cart | Pass | Variant radios operable via arrow keys; quantity stepper via Tab; add-to-cart via Enter; no traps. |
| Cart drawer | Open / close / focus return | Pass | Cart trigger reachable; Enter opens drawer; Tab moves within drawer; Escape closes; focus returns to trigger. |
| Checkout | Full form navigation | Pass | All form fields reachable; error messages appear and are associated; submit via Enter; known issue KNOWN-003. |
| Account login | Form fill & error recovery | Pass | Tab through email → password → submit; errors announced and focus moves to first invalid field. |
| All audited pages | No keyboard traps | Pass | No modal, drawer, or widget traps focus. Verified by Tab/Shift+Tab cycling through every interactive region. |
| All audited pages | 200% zoom reflow | Pass | No horizontal scroll at 200% zoom in Chrome, Firefox, Safari, Edge. Content reflows to single column. |
| All audited pages | 320px viewport reflow | Pass | No horizontal scroll at 320px width (mobile); all content perceivable and operable. |
This section contains the formal conformance statement and the signature of the remediation specialist responsible for the assessment.
This report documents conformance of the audited scope of [client-domain].com to WCAG 2.1 Level AA as of August __, 2026, based on manual testing with assistive technology (NVDA 2024.4.1 on Windows 11, VoiceOver on macOS 14, and keyboard-only navigation across Chrome, Firefox, Safari, and Edge) and automated evaluation (axe-core 4.9.2, Lighthouse 11, WAVE, Pa11y). All accessibility issues identified within the audited scope have been remediated and verified, with the exception of the known limitations documented in Section 6, each of which is attributable to a third-party vendor, content production, or a platform-level constraint outside the theme's editable surface.
This is a conformance assessment, not a legal certification or guarantee of immunity from future claims. Conformance is a point-in-time technical determination about a defined scope. Ongoing conformance requires that the client maintain the remediated code, address the known limitations per the recommendations in Section 6, and re-evaluate the site when significant content or theme changes are made. The findings of this report are valid for the audited scope as it existed on the date of conformance assessment stated in Section 1.4.
This report was prepared by Matthew Nolan, accessibility remediation specialist, THENICEGUY.DESIGN LLC, and is submitted to counsel as evidence of post-remediation conformance in connection with the matter referenced on the cover page.