Salve accessibility conformance report
Accessibility Conformance Report, based on the VPAT® 2.5 WCAG edition format (VPAT is a registered service mark of the Information Technology Industry Council).
| Product | Salve, a theme for Shopify Online Store 2.0 (presets Salve, Gauge and Remedy) |
|---|---|
| Version | 1.0.0 (release candidate, build of 25 September 2026) |
| Report date | 25 September 2026 |
| Vendor | ISO Cloud Consulting LLC |
| Contact | isocloudconsulting@outlook.com, or the theme support form |
| Standard | Web Content Accessibility Guidelines (WCAG) 2.2, Level A and Level AA. WCAG 2.2 includes all WCAG 2.0 and 2.1 success criteria except 4.1.1 Parsing, which was removed. |
Scope
This report covers the storefront pages that the Salve theme renders: home, collection, product, search, cart page and cart drawer, blog and article, pages (including the document library, safety notices and HSA/FSA templates), contact, password, 404 and gift card pages, plus the theme's dialogs, drawers and menus.
It does not cover:
- Shopify-hosted pages and components: checkout, customer accounts and sign-in, and platform elements such as accelerated checkout buttons and the account button. Shopify publishes its own accessibility information for these.
- Apps: app blocks, app embeds and scripts added by apps.
- Merchant content: product images and their alt text, videos and captions, documents such as PDFs, rich text written in the admin, and colors or settings a merchant changes from the presets.
A store's accessibility depends on all of these. Using Salve does not by itself make a store conform to WCAG or comply with any law.
Evaluation methods
- Automated testing: axe-core 4.10.2 with the WCAG 2.0, 2.1 and 2.2 A and AA rules and best practices, in Chrome, on the test store. Pages: home, collection, product (standard, device, sold out, with ratings), search, cart page, cart drawer open, document library, safety notices, HSA/FSA, About, blog, article and contact. Result: no violations in theme code. The only finding is the frame title of Shopify's preview bar, which only appears in theme preview.
- Code checks on every change: Shopify Theme Check, a full Liquid and HTML parse of every template, JavaScript and CSS syntax checks, and a contrast calculation for every color pair in all 15 preset color schemes (180 pairs: text 4.5:1, borders and focus rings 3:1). All pass.
- Keyboard testing in Chrome on macOS: skip link, header menus, search suggestions, cart drawer, variant options, gallery, quantity, filters and dialogs, checking focus order, visible focus, Esc and focus return.
- Layout testing: 390 and 320 pixel widths, browser zoom, the theme's largest text size, and the WCAG 1.4.12 text spacing values.
- No-JavaScript testing: every page type rendered with scripts disabled, checking that navigation, search, filters, product options, add to cart and the cart page still work.
Not yet done: testing with screen readers (VoiceOver on macOS and iOS, NVDA on Windows, TalkBack on Android) and on physical mobile devices. The remarks below say where a result depends on that testing. This report will be updated when it is complete.
Terms
- Supports: the functionality has at least one method that meets the criterion without known defects.
- Partially Supports: some functionality does not meet the criterion.
- Does Not Support: most functionality does not meet the criterion.
- Not Applicable: the criterion is not relevant to the theme.
Table 1: WCAG 2.2 Level A
| Criteria | Conformance level | Remarks and explanations |
|---|---|---|
| 1.1.1 Non-text Content | Supports | Product and content images use the alt text entered in Shopify. Decorative images have empty alt text. Icons are hidden from assistive technology, and icon-only buttons have text labels. Star ratings have a text equivalent. Merchants are responsible for writing alt text. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | The theme contains no prerecorded media. Merchants who add video are responsible for alternatives. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | The theme contains no prerecorded media. Video players support captions provided with Shopify-hosted, YouTube and Vimeo videos. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | The theme contains no prerecorded media. |
| 1.3.1 Info and Relationships | Supports | Landmarks, headings in order (heading levels adjust when a section heading is hidden), lists, data tables with captions and header cells, fieldsets and legends for product options, and labels for every form field. |
| 1.3.2 Meaningful Sequence | Supports | Reading order follows the visual order at all widths. |
| 1.3.3 Sensory Characteristics | Supports | Instructions don't rely on shape, color, size, position or sound. |
| 1.4.1 Use of Color | Supports | Sale prices have a "Sale" label and a crossed-out regular price. Unavailable options are crossed out and labeled. Errors use text. A theme setting underlines all links. |
| 1.4.2 Audio Control | Supports | Background (hero) videos are muted and have a pause button. Product videos use player controls, and embedded videos load only when the shopper presses play. |
| 2.1.1 Keyboard | Supports | All functionality works with a keyboard: menus, search suggestions, dialogs and drawers, product options, the media gallery, quantity, filters, comparison, quick add and the supply planner. |
| 2.1.2 No Keyboard Trap | Supports | Dialogs keep focus inside while open, as intended for modal dialogs, and close with Esc or the Close button. Focus then returns to the control that opened them. |
| 2.1.4 Character Key Shortcuts | Supports | The theme defines no single-character shortcuts. |
| 2.2.1 Timing Adjustable | Supports | The theme sets no time limits. The delivery cut-off countdown is information only. |
| 2.2.2 Pause, Stop, Hide | Supports | Nothing moves automatically for more than 5 seconds except background videos, which have a pause button and don't play when the device asks for reduced motion. Announcements change only when the shopper presses Previous or Next. |
| 2.3.1 Three Flashes or Below Threshold | Supports | The theme contains no flashing content. |
| 2.4.1 Bypass Blocks | Supports | A "Skip to content" link is the first focusable element. Pages use header, navigation, main and footer landmarks. |
| 2.4.2 Page Titled | Supports | Each page title combines the page name and the store name. Merchants can edit titles in Shopify. |
| 2.4.3 Focus Order | Supports | Focus follows the visual order. Opening a dialog moves focus into it, and closing it returns focus. |
| 2.4.4 Link Purpose (In Context) | Supports | Link text describes the destination. Repeated controls such as "Add to cart" and "Remove" include the product name in their accessible name. |
| 2.5.1 Pointer Gestures | Supports | Swipeable galleries and carousels also have buttons and scroll with a single pointer. No multipoint or path-based gestures are needed. |
| 2.5.2 Pointer Cancellation | Supports | Controls act on the up event (standard click). |
| 2.5.3 Label in Name | Supports | Accessible names contain the visible label, for example "Remove" becomes "Remove Island Dressing". |
| 2.5.4 Motion Actuation | Not Applicable | No functionality uses device motion. |
| 3.1.1 Language of Page | Supports | The page language follows the shopper's selected language. The theme includes English, French, German, Spanish and Italian. |
| 3.2.1 On Focus | Supports | Focus never changes the context. |
| 3.2.2 On Input | Partially Supports | Country and language selectors change only when the shopper presses Update. Filters, sorting and product options update content on the same page and announce the result. Exception: in a combined listing (products grouped by a Shopify Plus feature), choosing an option that belongs to another product opens that product's page. Option buttons tell screen reader users this, but the dropdown option style does not yet. |
| 3.2.6 Consistent Help | Supports | Help links in the header and footer menus appear in the same place on every page. Their content depends on the merchant's menus. |
| 3.3.1 Error Identification | Supports | Form errors are shown in text next to the form, linked to the field and announced. Cart errors use Shopify's message, for example when an item has sold out. |
| 3.3.2 Labels or Instructions | Supports | Every field has a visible label or a label from its context (for example the search field), and quantity rules are written next to quantity fields. |
| 3.3.7 Redundant Entry | Supports | The theme doesn't ask for the same information twice. The shipping estimator uses the signed-in customer's address. |
| 4.1.2 Name, Role, Value | Supports | Native elements are used where possible. Custom controls expose state with aria-expanded, aria-pressed, aria-current and aria-activedescendant. To be confirmed with screen reader testing. |
Table 2: WCAG 2.2 Level AA
| Criteria | Conformance level | Remarks and explanations |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | The theme has no live media. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | The theme contains no prerecorded media. |
| 1.3.4 Orientation | Supports | Pages work in portrait and landscape. |
| 1.3.5 Identify Input Purpose | Supports | Fields that collect personal information have autocomplete values: name, email, phone, country, region and postal code. |
| 1.4.3 Contrast (Minimum) | Supports | Every text color in all preset color schemes meets 4.5:1 against its backgrounds (checked automatically on every change). Text over images uses an overlay that merchants set. Colors a merchant changes are their responsibility. |
| 1.4.4 Resize Text | Supports | Content works at 200% zoom and at the theme's text sizes (112.5% and 125%). |
| 1.4.5 Images of Text | Supports | The theme uses real text. Product packaging photos are essential images of the product. |
| 1.4.10 Reflow | Supports | No horizontal scrolling at 320 CSS pixels. Data tables (comparison, quick order, specifications) scroll inside a labeled region, which the criterion allows. |
| 1.4.11 Non-text Contrast | Supports | Field borders and focus indicators meet 3:1 in all preset color schemes. |
| 1.4.12 Text Spacing | Supports | With the WCAG text spacing values applied, no text is clipped or overlaps. |
| 1.4.13 Content on Hover or Focus | Supports | Menus that open on hover stay open while hovered and close with Esc. Tooltips open on click, not hover. |
| 2.4.5 Multiple Ways | Supports | Menus, search with suggestions, collections and breadcrumbs. |
| 2.4.6 Headings and Labels | Supports | Headings and labels describe their content. |
| 2.4.7 Focus Visible | Supports | A 2-pixel focus outline with an offset appears on every focusable element in every color scheme. |
| 2.4.11 Focus Not Obscured (Minimum) | Supports | Scroll padding keeps focused elements clear of the sticky header, the sticky purchase bar and the comparison tray. |
| 2.5.7 Dragging Movements | Supports | No function needs dragging. Price filters use number fields. |
| 2.5.8 Target Size (Minimum) | Supports | Buttons, swatches, quantity controls and icon links are at least 44 by 44 pixels, and breadcrumb links at least 24 pixels high. Links inside text are exempt. |
| 3.1.2 Language of Parts | Supports | Language names in the language selector are marked with their own language. Other language changes are in merchant content. |
| 3.2.3 Consistent Navigation | Supports | Header, menus and footer are the same on every page. |
| 3.2.4 Consistent Identification | Supports | Controls with the same function have the same names and icons throughout. |
| 3.3.3 Error Suggestion | Supports | Error messages explain what to fix, for example a valid postal code or a quantity rule. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Supports | Orders are placed in Shopify checkout. Shoppers can review and change the cart before checkout. |
| 3.3.8 Accessible Authentication (Minimum) | Not Applicable | Sign-in is handled by Shopify customer accounts, not the theme. The storefront password page has a labeled field that allows paste and password managers. |
| 4.1.3 Status Messages | Supports | Cart updates, add to cart, filter result counts, search results, price changes and form confirmations are announced through live regions without moving focus. To be confirmed with screen reader testing. |
Beyond WCAG
- Text size control (default, 112.5% and 125%) and a high-contrast display option.
- Reduced motion: animations turn off when the device asks for it, or for everyone with a theme setting.
- Works without JavaScript: navigation, search, filters, product options, add to cart and the cart page work as plain links and forms.
- Safety information is never hidden behind a control when scripts can't run.
Legal disclaimer
This report describes the Salve theme as tested on the date above. It is not a certification or legal advice. Accessibility of a store depends on its content, settings, apps and Shopify components, which are outside the theme. ISO Cloud Consulting LLC updates this report when the theme changes in a way that affects it.