Is the Local Shopify theme accessible?
6 different failures in Local's own code, including on the product page (21 occurrences across three pages), checked against WCAG 2.1 Level A and AA.
Rank 49 of 49 in our Shopify theme accessibility ranking. Local is a paid theme.
On the product page: something clickable that the keyboard cannot use, a field labelled only by placeholder text. That is the page where a shopper chooses a size and adds to cart.
Every shop that runs Local without changes to its code has the same failures, so the theme is the cheapest place to fix them.
What fails in Local's own code
A field labelled only by placeholder text
The grey hint text is the only visible label, and it disappears as soon as someone starts typing. People with memory or attention difficulties lose track of what the field was for. This one is on the product page, where people decide to buy.
Example from the demo store's product page:
<input name="q" type="search" autocomplete="off" placeholder="Search for..." aria-label="Search for..." data-js-search-input="" data-js-focus-overlay="search-r…
What the check found: The only visible cue is the placeholder "Search for...". There is an accessible name for screen readers, but sighted users lose the cue once they start typing.
How to fix it: Show a real label next to or above the field. The placeholder can stay as an example of the format.
Something clickable that the keyboard cannot use
An element reacts to a mouse click but is not a link or a button, so keyboard and switch users cannot reach or activate it. This one is on the product page, where people decide to buy.
Example from the demo store's product page:
<span class="alert alert--circle alert--blank" onclick="document.getElementById('modal-store-selector')?.show()">
What the check found: <span> has an onclick handler but is not keyboard focusable.
How to fix it: Use a real button or link element for anything that does something when clicked.
A link with no name
A screen reader announces "link" and nothing else, or reads out the web address, so a blind shopper cannot tell where it goes. It is usually an icon link or a logo image with an empty description.
Example from the demo store's home page:
<a class="video-component__link" href="//local-theme-main.myshopify.com/cdn/shop/videos/c/vp/46d846d189c24a34a666a280286ddd4b/46d846d189c24a34a666a280286ddd4b.…
What the check found: Link contains no text, no aria-label, and no image with alt text. It appears to be an icon-only link. A screen reader will announce the destination URL instead.
How to fix it: Give the link text a screen reader can read: visible text, a description (alt text) on the image inside it, or an aria-label on the link. For a logo, your shop's name is the right text.
A form field with no label
A screen reader user reaches the field and hears only its type ("edit text", "checkbox") with no idea what to enter or choose.
Example from the demo store's collection page:
<input class="field__input field__input--price" name="filter.v.price.gte" id="mobile-Filter-Price-GTE" type="number" inputmode="numeric" min="0" max="6" placeh…
What the check found: No label, aria-label, aria-labelledby or title. It has a placeholder ("0") but a placeholder is not a label — it disappears the moment the user types.
How to fix it: Give every field a label element tied to it with for and id. It can be visually hidden if the design has no room for it, but it has to be there.
Headings that skip a level
Screen reader users move around a page by its headings. A jump from a level-2 heading to a level-4 one suggests a missing section and makes the page harder to scan.
Example from the demo store's product page:
<h3 class="h5">
What the check found: Jumps from <h1> to <h3>, skipping 1 level(s).
How to fix it: Change the heading tags so levels go down one step at a time, and keep the look with CSS. Pick heading levels for the page's structure, not for their size.
No main heading on the page
The page has no level-1 heading, so screen reader users have no quick way to the start of the main content or to confirm which page they are on.
What the check found: No <h1> element found on the page.
How to fix it: Make the page's main title a level-1 heading: the product name on a product page, the collection name on a collection page.
Found in the demo's content, which yours replaces
These come from the images and words the theme's developer put in the demo store, not from the theme's code, so they do not count against Local. They are worth knowing because the same mistakes are easy to make when you add your own content.
- Links that do not say where they go (home page (16×), collection page (3×), product page (1×)). "Shop now" and "Read more" mean nothing when a screen reader lists the links on a page. In the section settings, write link text that names the destination ("Shop the linen range").
Checked, not counted
- Duplicate ids (home page (7×), collection page (10×)). Two elements share an id. WCAG 2.2 removed this criterion, and it only harms when a label or an ARIA reference points at the duplicated id, so it is not counted. Most come from hidden copies of menus and drawers.
What this does not tell you
- Automated checks find roughly a third of accessibility barriers. A clean result here still needs a keyboard and screen-reader test of your checkout. A failure here is certain.
- We tested what loads first. Menus, the cart drawer and pop-ups that open on a click were not opened, so the real totals can only be higher.
- Your shop is not the demo. Apps, sections, settings and your own content change the result, in both directions.
- Themes get updated. These results are for the version the demo store ran on 10 October 2026.
Check your own shop
Run the free check on your shop's pages. It needs no account and lists every confirmed failure with its WCAG criterion, including the ones your apps and content add. If you want every occurrence with the exact Shopify code to fix it, that is what the Fix Pack is for: $99, once.
How Local compares
2 other paid themes had no confirmed failure in its own code: Halftone, Prestige.
Next to it in the ranking: Vivid (rank 48, 5 failures).
All 49 themes, ranked, with the method and its limits.
How we tested
We opened three pages of the official Local demo store in Chromium and let its scripts run. Anything the browser did not show was removed, so the theme is never marked down for something no visitor meets. Then each page went through the same engine as our free check. The pages tested:
This is the developer's own demo store; no merchant's shop was measured. If you make Local and have fixed something here, write to hello@limen.ae and we will re-test it.