Shopify’s Impulse theme, run through thirteen accessibility checks.
We ran the same thirteen checks we run for clients on the Impulse demo store. It passed nine. Here is every line with the count behind it, what the four failures were, and which ones are the theme’s job and which one is yours.
What we ran, and where
We ran the checks on the Impulse demo store listed on the Shopify Theme Store, impulse-theme-fashion.myshopify.com, on September 7, 2026. Three pages: the home page, the 2026 - All New collection page, and the product page for The Wren Coat, opened in a real browser at desktop width, with the product page opened again at phone width. The whole run took 15 seconds. The counts below are what the browser found on those pages that day.
This is the same check that runs on the free Storefront Check. Nothing here is a compliance claim or a certificate. It is thirteen things, counted.
Every line of the result
| Check | Measured | Result |
|---|---|---|
| Every photo has a description | 128 images | Fail |
| Buttons say what they do | 69 buttons | Fail |
| Form fields say what to type | 9 fields | Pass |
| The page says what language it is in | 3 pages | Pass |
| Keyboard users can skip the menu | 3 pages | Pass |
| Phones can pinch to zoom | 3 pages | Pass |
| Screen readers can jump between sections | 3 pages | Pass |
| Tab order follows the page | 3 pages | Pass |
| Each page has a real title | 3 pages | Pass |
| Links say where they go | 199 links | Fail |
| Buttons are big enough to tap | 240 controls | Pass |
| Text is readable against its background | 315 samples | Pass |
| An accessibility statement is linked | site-wide | Fail |
Nine of thirteen passed. Three of the four failures are a single element each: 1 image of 128 with no description, 1 button of 69 with no name, and 2 links of 199 with no name. No line ended undecided. Thirty-two text spots sit over photos or gradients, where a machine cannot measure contrast at all; those are held for a person to look at.
What Impulse gets right
Two lines are worth pointing at, because they are the two most themes lose.
Contrast: 315 samples, nothing below the ratio. Not one piece of text on three pages failed. Dawn lost a line here and so did Prestige. Tap targets: 240 controls, nothing too small. That includes the phone-width pass on the product page, where Prestige failed ten times on carousel dots alone. Impulse’s controls are big enough on a phone.
Add the rest: 9 form fields labelled, a working skip link, landmarks in place, tab order left alone, pinch to zoom not switched off, and a real title on every page. This is a well-built theme, and the failures below are four specific elements, not a pattern.
The three things the theme gets wrong
We opened the same three pages ourselves to see what was behind the counts. All three failures live in theme code, not in anything a merchant uploaded.
- Two image links with no name. On the home page, the text-and-image section wraps two pictures in links to
/blogs/journal. The pictures carry an emptyalt, which is correct for decoration, and the links carry no text of their own. A screen reader reaches them and says “link”, twice, with nothing after it. This is the exact failure demand letters name most often. - The photo zoom button has no name. On the product page, the button that opens the full-size image,
.js-photoswipe__zoom, has an icon and no text. It announces as “button” and nothing else. - One image in the shoppable hero has no alt attribute at all. The
kit-imagethat the shoppable hero section renders ships without the attribute, so there is nowhere for anyone to type a description.
Our adviceAll three are one attribute each. Give the two journal links an aria-label that says where they go, in the section’s Liquid, not in the theme settings. Give .js-photoswipe__zoom an aria-label of “Zoom product image”. And add alt to the kit-image tag so the shoppable hero can describe itself. Fifteen minutes, and three of your four failures are gone.
Why an unnamed link matters more than it looks. A screen reader user can pull up a list of every link on a page and move through it. Two entries reading only “link” are two dead ends in that list, and they are trivial to find with a scanner, which is how these pages end up in a letter.
The one thing no theme can do for you
The demo store has no accessibility statement, and no theme ships one. A statement is a page that says how the store is tested, what is known to be broken, and how someone tells you they are stuck. It is the cheapest item on this list and the one that most often turns a letter into an email.
Our adviceWrite the statement after the audit, not before. A statement that promises more than the store does is worse than no statement. Ours is at junand.co/accessibility if you want the shape of one.
What this does not tell you about your store
A demo store is a showroom. It has 128 images; a real jewelry store has hundreds. It has 199 links; the last live store we counted had 1,125. It has no apps, no custom sections nobody remembers adding, no sale badges, no size charts, and no metal swatches.
Almost everything that fails on a live Impulse store was added after the theme was installed. Product photos uploaded without a description. An app that draws a pop-up with no label. A custom section with white text over a photo. A colour swatch that announces itself as “link”.
Why the theme’s score is not your score. Nine of thirteen on the demo store says the floor is good and names three attributes to add. It says nothing about the ceiling. The only number that means anything for your store is the one counted on your store.
If you run Impulse, check these four things first
- Every image you wrapped in a link. The theme’s own pattern leaves image links unnamed, and any section you copied from it will do the same.
- Your product photos. Impulse does not write alt text. Every image you uploaded needs a description of what is in it.
- Your colour and metal swatches. If they were added by an app or a custom section, each one probably announces as “link”.
- Text you laid over a photo. The theme passed contrast on its own content, and 32 spots were still over images where no machine can measure. On your store there will be more.
All four take about a minute to check. Paste your address into the free check and it counts them for you.
Next
Prestige was run the same day, the same way: nine of thirteen, with a faint sale price and six-pixel carousel dots. Symmetry, Sense and Craft follow. We publish the whole result each time, including the checks a theme passes.