Zap theme: automated accessibility test

On September 29, 2026 the AccessifyAI scanner tested the official demo store of Zap 1.1.0 by Almost Perfect Studio on 4 pages. It found 6 issue types (54 occurrences in total). For 9 of the 12 WCAG 2.2 criteria this index evaluates it found nothing.

Is Zap accessible?

An automated test cannot answer that on its own. What this one shows is 6 types of issues on the Zap demo store within the 12 criteria this index evaluates, listed below. The content, apps and settings of your store decide much of the result. Of the 55 WCAG 2.2 Level A and AA criteria, the scanner tests 15, this index reports 12, and the other 40 need a person to check them.

This is not a certification and not a legal assessment.

Test details

Developer
Almost Perfect Studio
Price
$320 USD
Version tested
1.1.0, released August 4, 2026
Style
Zap
Scan date
September 29, 2026
Theme Store
Theme Store page
Pages
  • Home page: tested, 29 findings
  • Collection page: tested, 13 findings
  • Product page: tested, 7 findings
  • Cart page: tested, 5 findings

What the test found

Image without an alt attribute

WCAG 2.2 1.1.1 Non-text content, Level A

1 occurrence, found on: Collection page

Why it matters for shoppers
A screen reader skips the image or reads out its file name, so a blind shopper does not learn what the product photo shows.
Where it usually lives in a Shopify theme
Product card and product media snippets, image banners, slideshow and image-with-text sections, and sometimes the logo in the header.
Direction for a fix
Output the alt text stored with the image, fall back to the product or section title, and give purely decorative images an empty alt="".
Examples from the demo store
  • img.collection-hero-featured-collection__image

Button without a name

WCAG 2.2 4.1.2 Name, role, value, Level A

1 occurrence, found on: Collection page

Why it matters for shoppers
The shopper hears “button” with no hint whether it closes a drawer, adds to cart or opens the menu.
Where it usually lives in a Shopify theme
Icon-only buttons: drawer close, slider arrows, quantity plus and minus, menu and search toggles.
Direction for a fix
Put an aria-label or visually hidden text on the button and hide the icon inside it with aria-hidden="true".
Examples from the demo store
  • button.mobile-facets__close

The same id is used more than once

WCAG 2.2 4.1.2 Name, role, value, Level A

5 occurrences, found on: Home page, Collection page, Product page, Cart page

Why it matters for shoppers
Labels, error messages and aria references can point at the wrong element, so a field or control may lose its name.
Where it usually lives in a Shopify theme
Sections rendered twice on one page, such as desktop and mobile headers, cart drawer and cart page, or country and language selectors in both header and footer.
Direction for a fix
Make generated ids unique, for example by adding the section id to them.
Examples from the demo store
  • "contact_form", 2×
  • "slide-text-template--25743036547391__slideshow", 3×

aria-labelledby or aria-describedby points to a missing element

WCAG 2.2 4.1.2 Name, role, value, Level A

4 occurrences, found on: Home page, Collection page, Product page, Cart page

Why it matters for shoppers
The element was meant to take its name or description from another element that is not on the page, so the screen reader has nothing to read.
Where it usually lives in a Shopify theme
Product cards that point at sale or sold-out badges which are only rendered in some cases, form error messages, dialogs.
Direction for a fix
Output the reference only when the target element is rendered, or always render the target.
Examples from the demo store
  • aria-describedby → "a11y-external-message"

Heading levels skip a step

WCAG 2.2 1.3.1 Info and relationships, Level A

2 occurrences, found on: Collection page, Product page

Why it matters for shoppers
People who move through a page by headings expect the levels to nest. A jump from h2 to h4 suggests a missing part.
Where it usually lives in a Shopify theme
Section headings, product card titles and footer column headings, where the level is chosen for its font size.
Direction for a fix
Choose heading levels from the structure of the page and set the size with a class.
Examples from the demo store
  • h1 → h3

Icon without a text alternative or a decorative mark

WCAG 2.2 1.1.1 Non-text content, Level A

41 occurrences, found on: Home page, Collection page, Product page, Cart page

Why it matters for shoppers
If the icon carries meaning, such as a payment method or “free shipping”, a screen reader user misses it. If it is decoration, it should be hidden from screen readers.
Where it usually lives in a Shopify theme
Icon snippets, payment icons in the footer, trust and feature icons.
Direction for a fix
Hide decorative icons with aria-hidden="true". Give meaningful icons role="img" and an aria-label or a title element.
What the test can see
The test cannot tell a decorative icon from a meaningful one, so each of these needs a quick look.
Examples from the demo store
  • svg.icon
  • svg
  • svg.underline-svg

Evaluated criteria without findings: 9 of 12

Without findings means the automated test found nothing for the criterion on these pages. Several of these criteria can only be tested in part by a machine.

  • 1.4.2 Audio control (Level A)
  • 1.4.4 Resize text (Level AA)
  • 2.4.1 Bypass blocks (Level A)
  • 2.4.2 Page titled (Level A)
  • 2.4.3 Focus order (Level A)
  • 2.4.4 Link purpose (in context) (Level A)
  • 3.1.1 Language of page (Level A)
  • 3.2.1 On focus (Level A)
  • 3.3.8 Accessible authentication (minimum) (Level AA)

Not evaluated in this index

  • 1.4.3 Contrast (minimum) (Level AA): needs the rendered page with its stylesheets
  • 2.4.11 Focus not obscured (minimum) (Level AA): needs the rendered page with its stylesheets
  • 2.5.8 Target size (minimum) (Level AA): needs the rendered page with its stylesheets

Also noted, Level AAA

Level AAA goes beyond what EN 301 549, the standard behind the EAA and the BFSG, asks for. These points are listed for completeness and are not counted above.

  • Link opens a new tab without saying so (3.2.5 Change on request): 12

What this result does not tell you

  • The scanner checks 15 of the 55 WCAG 2.2 Level A and AA success criteria, some of them only in part, and this index reports 12 of them. Keyboard use, focus visibility, captions, error messages and most of what makes a checkout usable need a person to check.
  • Contrast (minimum), focus not obscured and target size are not evaluated here: they need the rendered page with its stylesheets, and this test does not load stylesheets. Their findings are left out of every count on this page.
  • It tests the demo store as it was on the scan date: demo content, settings and apps included. A store built on the same theme can have more or fewer findings.
  • The scanner reads the HTML the server sends, without running scripts or loading external stylesheets. Content that scripts add after the page loads is not part of this test.
  • It is not a certification and not a legal assessment of the theme or of any store that uses it.

How we test

Data licence: CC BY 4.0. Attribution: AccessifyAI Shopify theme accessibility index, accessifyai.de

Scan your own store

Your store has its own content, apps and settings on top of the theme. The free scanner runs the same rules on your storefront and shows every finding with its WCAG criterion.

For the developer of Zap

If you have released a fix for any of these findings, or you think a result is wrong, write to support@accessifyai.de with “Zap” and the version number. We scan the demo store again and update this page with the new date.

All themes in the index

Is the Zap theme accessible? Shopify WCAG 2.2 test | AccessifyAI