How to fix presentation role conflict on Shopify

Remove conflicting ARIA attributes and tabindex from elements that are marked as presentational (role="presentation" or role="none"), so screen readers consistently ignore them.

Steps for Shopify

  1. In your Shopify admin, go to Online Store → Themes → click the three-dot menu next to your active theme → Edit code.
  2. Use the search box (top of the file tree) to search across all files for 'role="presentation"' and 'role="none"' to locate every instance.
  3. For each match, inspect the surrounding HTML in the code editor: look for any aria-* attribute or tabindex on the same element.
  4. Remove the conflicting attribute(s) following the decision logic in the generic steps above — either strip the ARIA/tabindex, or remove the presentational role.
  5. Save the file. Preview the theme and re-run an axe scan on the changed page to verify the conflict is gone.
  6. If the element is inside a third-party app section (e.g. a slider or carousel app), contact the app developer to report the conflict, as you cannot directly edit third-party app code.
Official Shopify documentation ↗
<!-- ❌ WRONG: role="presentation" conflicts with aria-label and tabindex -->
<div role="presentation" aria-label="decorative divider" tabindex="0">
  <img src="divider.png" alt="">
</div>

<!-- ✅ CORRECT (option A): purely decorative — remove all conflicting attributes -->
<div role="presentation">
  <img src="divider.png" alt="">
</div>

<!-- ✅ CORRECT (option B): element actually needs to be announced — remove the presentational role -->
<div aria-label="Section divider" tabindex="0">
  <img src="divider.png" alt="">
</div>

What is presentation role conflict?

In HTML, you can tell screen readers to ignore a purely decorative element by giving it `role="presentation"` or `role="none"`. However, if that same element also has global ARIA attributes (like `aria-label`, `aria-describedby`, `aria-hidden`, etc.) or a `tabindex` attribute, the browser and screen reader disagree about whether to expose the element — creating a conflict. Some screen readers will override the presentational role and announce the element anyway, while others will silently discard it, leading to unpredictable and often broken experiences for users who rely on assistive technology.

Screen reader users — including people with visual impairments — depend on a consistent, predictable page structure. When presentational-role conflicts exist, they can cause screen readers to announce decorative or layout elements that serve no informational purpose, cluttering the experience and confusing users. This violates WCAG 2.1 Success Criterion 4.1.2 (Name, Role, Value), which is a Level A requirement — the most basic level of accessibility compliance. Failing Level A criteria creates legal exposure under laws like the ADA (US), EN 301 549 (EU), and the Equality Act (UK), and can result in lawsuits or regulatory complaints. Fixing these conflicts also demonstrates a baseline commitment to accessibility that protects your brand reputation and broadens your potential customer base.

See the complete Presentation role conflict guide for every platform and the full background.

Not sure if your Shopify store has this?

Run a free SEOLZ audit — we’ll find presentation role conflict and every other issue across your whole site.

Scan my site free

Fix presentation role conflict on another platform