Executive Summary
Swym Wishlist Plus is adopted feature-by-feature by merchants. Accessibility conformance is reported per feature and per implementation variant. The Current implementation (Shopify Theme App Extensions / Control Centre) is fully tested. The Legacy implementation (JS-rendered storefront layer) is under structured remediation with a published roadmap.
How to Read This Report
Conformance is reported per feature and per implementation variant.
Current implementation = modern Shopify Theme App Extension layer (Control Centre), fully tested. Legacy implementation = earlier JS-rendered layer, infrastructure tested, feature-level testing Q2 2026. Reaching End of Support = variant receiving no further updates; migration guide available.
Items tagged ASSUMED are inferred from code analysis pending manual confirmation — see the Assumption Register (Section 06).
Feature Conformance Matrix
Locate the feature(s) you use and identify which implementation variant you are on. Legacy implementation usage percentages are drawn from active merchant data (February 2026).
| Feature | Current Variant | Status | Legacy Variant | Status | Notes |
|---|---|---|---|---|---|
| Wishlist — Core | |||||
| Wishlist Button (PDP) Add-to-wishlist CTA on product pages |
App Block Button | Supports | Legacy Button (~46%) | Reaching EOS | Migration campaign active |
| Wishlist Popup / Modal Multi-list management panel |
Control Centre Panel (~9%) | Supports | Legacy Modal (~91%) | Q2 2026 | |
| Add-to-Wishlist Popup Popup after adding an item |
Control Centre (~39%) | Supports | Legacy Popup (~61%) | Q2 2026 | |
| Wishlist Page Dedicated wishlist page |
Control Centre (~41%) | Supports | Legacy Page (~59%) | Q2 2026 | |
| Share Wishlist Share via link |
— None yet | Not Available | Legacy Modal (100%) | Q2 2026 | No modern alt — higher priority |
| Auto Wishlist Popup Automated prompts |
App Embed + Metafields (100%) | Supports | — | N/A | Single variant |
| Collections | |||||
| Collections Button Add-to-wishlist on collection pages |
App Embed / Advanced (~68%) | Supports | Custom Render (~32%) | Reaching EOS | |
| Launcher | |||||
| Wishlist Launcher Floating or header entry point |
Floating / Advanced (~89%) | Supports | Script Tag (~11%) | Reaching EOS | Deprecation Q2 2026 |
| Advanced Header Wishlist in storefront header |
Extensions (~99.8%) | Supports | Custom Header (11 merchants) | End of Support | Forced migration |
| Save For Later | |||||
| SFL Page Dedicated SFL page |
Control Centre Block (~69%) | Supports | Legacy Page (~31%) | Q2–Q3 2026 | |
| SFL Popup SFL panel / popup |
Control Centre (~44%) | Supports | Legacy Popup (~56%) | Q2 2026 | |
| Shopper Engagement & Notifications | |||||
| Push Notifications Shopper toast notifications |
Extensions | Supports | — | N/A | Identified issue resolved Jan 2026 |
| Wishlist Nudges Contextual storefront prompts |
Extensions | Supports | — | N/A | |
| Tooltip / Smallflower Inline contextual menu |
Extensions | Supports | — | N/A | Identified issue resolved Feb 2026 |
| Customer Account Surfaces | |||||
| Account — Wishlist Data Items, orders, saved carts, back-in-stock |
Engage My Account (100%) | Supports | — | N/A | |
| Account — Discovery You May Like, Recently Viewed |
Engage My Account (100%) | Supports | — | N/A | |
| Variant Selection | |||||
| Variant Selector Product variant selection in wishlist flows |
Extensions Built-in (~5%) | Supports | Custom (~95%) | Partially Supports | ASM-005 — Q2 manual testing |
| Side Drawer | |||||
| Wishlist Side Drawer Slide-in wishlist panel |
Control Centre (100%) | Supports | — | N/A | Single variant only |
WCAG 2.1 Criteria Assessment — Current Implementation
Maps the Current implementation (Extensions / Control Centre) against individual WCAG 2.1 success criteria. For procurement teams and auditors requiring criteria-level detail.
Level A Criteria
| Criteria | Conformance | Remarks |
|---|---|---|
| 1.1.1 Non-text Content | Supports | All 68 decorative SVGs confirmed aria-hidden="true" focusable="false" applied across assets/ and snippets/. All 10 image alt instances fixed (alt="" for decorative, descriptive alt for meaningful). Toast notification product images confirmed correctly using alt="" — product title present as adjacent text. Verified 02 April 2026. |
| 1.3.1 Info and Relationships | Partially Supports | Modal/popup containers missing role="dialog" in current scan. P0 fix in progress. Core semantic structure of wishlist features is correct. |
| 1.3.2 Meaningful Sequence | Supports | Reading order follows DOM order throughout tested blocks. No sequence errors identified. |
| 1.4.1 Use of Color | Supports | No information conveyed via colour alone detected. |
| 2.1.1 Keyboard | Partially Supports | Core wishlist add/remove, PDP button, and launcher are keyboard-accessible. Some interactive elements in secondary flows lack keyboard handlers. P0 remediation in progress. |
| 2.1.2 No Keyboard Trap | Supports | No keyboard trap patterns detected in static analysis or manual testing. |
| 2.4.3 Focus Order | Supports | Focus trap confirmed implemented in storefront-layout-components.js (trapFocus method, lines 1243–1313, 1480–1527). Intercepts Tab/Shift-Tab, wraps focus between first and last focusable element, registered on open() and removed on close(). ASM-001 closed. |
| 3.1.1 Language of Page | Supports | HTML lang attributes present across all tested blocks. |
| 4.1.2 Name, Role, Value | Partially Supports | Modal ARIA roles P0 fix in progress. Two identified structural issues — nested button conflict and ARIA menu role mismatch — both resolved Feb 2026. New role="button" elements (delete icons, close buttons, thumb feedback) confirmed keyboard-accessible with descriptive aria-label attributes. Focus state confirmed on Dawn theme (02 April 2026). Playwright/axe CI suite merged to tests/accessibility/ for ongoing WCAG 2.1 detection. |
Level AA Criteria
| Criteria | Conformance | Remarks |
|---|---|---|
| 1.4.3 Contrast (Minimum) | Partially Supports | Swym default notification colours confirmed passing: Info (#121F36 on white), Success (#155724 on #d4edda), Error (#721c24 on #f8d7da) — all exceed 4.5:1. Merchant CSS variable overrides are outside Swym's control; merchant-theme carve-out applies. ASM-003 partially closed. |
| 1.4.4 Resize Text | Supports | Relative CSS units used throughout, supporting 200% text resize. |
| 1.4.10 Reflow | Supports | Responsive CSS with media queries. No fixed-width layouts causing horizontal scroll at 320px. |
| 2.4.7 Focus Visible | Supports | No outline: 0 !important found in Swym's own extension CSS. Header icon confirmed with explicit :focus-visible style. New role="button" elements (Close X in Wishlist drawer, Variant Selector icons) confirmed receiving keyboard focus with visible focus state (border thickening) on Dawn theme — no custom CSS required. ASM-002 closed. Confirmed 02 April 2026. |
| 3.2.3 Consistent Navigation | Supports | Navigation components shared across extensions and render consistently. |
| 4.1.3 Status Messages | Supports | Toast notifications use role="status". Wishlist confirmation announcements verified with VoiceOver. |
Remediation & Testing Roadmap
This roadmap is a published commitment, updated as milestones are completed.
aria-hidden (68 instances) closed. Image alt (10 instances) closed. role="button" keyboard accessibility (10 instances) closed, focus state confirmed on Dawn. Playwright/axe CI suite merged. Modal role="dialog" and keyboard handlers in progress.(Q2)
(Q3)
Assumption Register
Every item tagged ASSUMED in this document is recorded here. Entries are closed with direct evidence as testing progresses.
storefront-layout-components.js has a fully implemented trapFocus method (lines 1243–1313, 1480–1527). Queries all focusable elements, intercepts Tab/Shift-Tab, wraps focus between first and last element. Listener registered on open() and removed on close(). WCAG 2.4.3 updated to Supports. Confirmed 02 April 2026.outline: 0 !important found in Swym's own extension CSS — rule originates from merchant theme (e.g. Dawn). Header icon now has explicit :focus-visible style confirmed. Swym-controlled surfaces clean. New role="button" elements confirmed focus-visible on Dawn theme. WCAG 2.4.7 updated to Supports. Confirmed 02 April 2026.swymHeaderIcon.liquid confirmed: aria-hidden="true" focusable="false" on SVG; accessible name provided by aria-label="Wishlist" on parent <a> element. Screen readers announce link label correctly, ignoring decorative SVG. Same pattern confirmed in storefront-layout-components.js. All 68 SVGs and 10 img-alt instances now fixed across extensions layer. Confirmed 02 April 2026.advanced-pdp-button.js has a keydown listener (line 593) for the consent popup — confirmed keyboard-accessible. No div-based variant dropdown found in Swym extension code. Custom variant selectors are merchant-theme-owned, not Swym-delivered. Q2 manual testing will confirm the wishlist action itself remains keyboard-accessible regardless of merchant variant selection method. Reframed from "Swym code gap" to "merchant-theme scope question."End-of-Support Variants — Migration Path Available
The variants below are not assessed for WCAG conformance. Migration to the Current implementation is the fastest path to a conformant storefront. Guides available at support@getswym.com.
| Variant | Merchants | Status | Migration Path |
|---|---|---|---|
| Custom Header | 11 (0.2%) | End of Support | Migrate to Header Launcher (Extensions) — Swym support team engaged directly. |
| Script Tag Launcher | 432 (11%) | Deprecating Q2 | Migrate to Floating or Advanced Launcher. Deprecation notice Q2 2026. |
| Legacy PDP Button | 6,459 (46%) | Migration Active | Migrate to App Block Button (Extensions). Active migration campaign underway; WCAG testing in parallel per Q2 roadmap. |
| Custom PDP Button | 1,168 (8%) | Not Evaluated | Merchant-custom implementations. Merchants encouraged to migrate to App Block Button. |
| SFS Qty (Old UI) | 3 (<0.01%) | Not Evaluated | Negligible usage. Document-only record. |