Skip to content
StoreA11y

Shopify · 1.3.1 Info and Relationships (Level A)

Page has no level-one heading on Shopify

The page has no <h1>. The h1 is what a screen-reader user jumps to first to confirm what page they landed on. Without it the page has no announced identity beyond its title.

Which WCAG criterion this fails

  • Does not meet 1.3.1 Info and Relationships (Level A)
  • Does not meet 2.4.6 Headings and Labels (Level AA)

How to fix it on Shopify

Everything below is done from Online Store > Themes > Edit code. Take a copy of the theme before editing.

  1. Product pages: the product title should be the <h1> — check sections/main-product.liquid or snippets/product-title.liquid.
  2. Collection pages: the collection title, in sections/main-collection-banner.liquid.
  3. Homepage: the hero headline. If the design shows the logo instead, make the logo's wrapper an <h1> containing the logo image with the store name as its alt text.
  4. Exactly one h1 per page. If the theme also puts an h1 on the logo in the header on every page, downgrade that one to a <div> on non-home pages — Dawn already does this with an {% if request.page_type == 'index' %} check.

Where this usually lives

sections/main-product.liquid, sections/main-collection-banner.liquid, sections/header.liquid (logo), sections/image-banner.liquid

Paths given for Dawn and its derivatives (Sense, Craft, Refresh, Studio). A heavily customised theme may differ; the CSS selector in your scan report points at the exact element.

Code

{%- if request.page_type == 'index' -%}
  <h1 class="header__heading">{{ shop.name }}</h1>
{%- else -%}
  <div class="header__heading">{{ shop.name }}</div>
{%- endif -%}

How to confirm it is fixed

Re-run the scan. This rule should drop out of the findings entirely. If the instance count falls but does not reach zero, the same defect exists in another template — product cards and quick-view modals are the usual second home for it.

Effort: low. Rule id: page-has-heading-one (axe-core).