How to fix aria roles on WooCommerce

Audit every element that has a `role` attribute and replace any invalid, misspelled, or non-existent ARIA role value with a valid WAI-ARIA role from the official specification.

Steps for WooCommerce

  1. In your WordPress Admin, go to Appearance → Theme File Editor (or use a code editor / FTP client for safer editing).
  2. Search your active theme's template files (e.g., `header.php`, `footer.php`, `archive.php`, page templates, and any custom block templates) for `role=`.
  3. Fix invalid role values directly in the theme files, or better yet, use a Child Theme so your edits survive theme updates (Appearance → Themes → Add New → search 'child theme' plugins like 'Child Theme Configurator').
  4. For role issues inside page-builder-generated content (Elementor, Divi, Beaver Builder), open the specific element in that builder's editor, locate its 'Advanced' or 'Accessibility' panel, and correct the role field.
  5. For role issues in plugins (e.g., a slider, mega-menu, or modal plugin), check the plugin settings for ARIA/accessibility options, or open a support ticket with the plugin author.
  6. Save and re-test with the axe DevTools or WAVE browser extension.
Official WooCommerce documentation ↗
<!-- ❌ INVALID — role value does not exist in WAI-ARIA spec -->
<div role="card">Featured Product</div>
<nav role="navagation">...</nav>
<div role="flyout">...</div>

<!-- ✅ VALID — use correct WAI-ARIA role or native HTML element -->
<div role="region" aria-label="Featured Product">Featured Product</div>
<nav>...</nav>  <!-- <nav> has implicit role="navigation" — no role attr needed -->
<div role="dialog" aria-modal="true" aria-label="Quick view">...</div>

What is aria roles?

ARIA roles are special HTML attributes (e.g., `role="button"`) that tell screen readers and other assistive technologies what an element *is* and how it should behave. The WAI-ARIA specification defines a strict list of allowed role values — words like `button`, `navigation`, `dialog`, `alert`, `banner`, etc. An invalid ARIA role means you've used a value that doesn't exist in that list (for example, a typo like `role="navagation"`, an invented word like `role="card"`, or an outdated value). When a role is invalid, assistive technology simply ignores it, stripping away the accessibility context you intended to provide. WCAG Success Criterion 4.1.2 (Name, Role, Value) requires that all user interface components have roles that can be understood by assistive technology.

Screen reader users — who are often customers with visual impairments — rely entirely on ARIA roles to understand your page's structure and interactive elements. An invalid role means a screen reader may announce an element incorrectly (e.g., as plain text instead of a button), or skip it entirely, making menus, modals, forms, and key navigation landmarks unusable. This creates a direct barrier for disabled shoppers, exposes your store to legal risk under laws like the ADA (US), AODA (Canada), EAA (EU), and UK Equality Act, and can result in costly litigation or regulatory complaints. Google also uses accessibility signals as part of its quality assessments, so pages with broken ARIA markup can underperform in organic search compared to well-structured competitors.

See the complete Aria roles guide for every platform and the full background.

Not sure if your WooCommerce store has this?

Run a free SEOLZ audit — we’ll find aria roles and every other issue across your whole site.

Scan my site free

Fix aria roles on another platform