Aria roles

Moderate effort

Found on 2% of audited stores.

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.

What it is

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.

Why it matters

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.

How to fix it

  1. Open your browser's developer tools (F12) on the affected page, go to the Elements/Inspector panel, and search the HTML source for the string `role=` to find every element using an ARIA role attribute.
  2. For each `role` value found, verify it against the official WAI-ARIA roles list (landmark roles: `banner`, `navigation`, `main`, `region`, `complementary`, `contentinfo`, `search`, `form`; widget roles: `button`, `checkbox`, `dialog`, `alert`, `listbox`, `menu`, `menuitem`, `tab`, `tabpanel`, `tooltip`, `link`, `switch`, etc.).
  3. Correct any invalid values: fix typos (e.g., `navagation` → `navigation`), remove invented/unsupported role names (e.g., `role="card"` — use a valid structural role or remove entirely), and replace deprecated roles with their current equivalents.
  4. If the element already has a native HTML equivalent (e.g., `<button>`, `<nav>`, `<main>`, `<header>`), the best fix is often to remove the `role` attribute entirely and use the correct semantic HTML element instead, since native elements have built-in, implicit roles.
  5. After saving changes, re-run an accessibility audit using a browser extension like axe DevTools or WAVE to confirm the `aria-roles` violation no longer appears.
  6. Test the fixed page with an actual screen reader (NVDA + Firefox on Windows, or VoiceOver + Safari on Mac/iOS) to confirm the element is announced correctly.
<!-- ❌ 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>

Fix it on your platform

Pick your platform for the exact steps.

How to fix aria roles on Shopify
  1. In your Shopify Admin, go to Online Store → Themes → (your active theme) → Actions → Edit code.
  2. Search across all Liquid/HTML files using the search box (top-left of code editor) for `role=` to find every instance.
  3. Open the relevant template file (e.g., `sections/header.liquid`, `snippets/product-card.liquid`, `layout/theme.liquid`) and fix or remove invalid role values.
  4. If the issue is in an app-injected widget (e.g., a chat widget, popup, or review app), contact the app developer — you cannot edit third-party app HTML directly.
  5. If using a theme with a built-in accessibility settings panel (e.g., Dawn), check Online Store → Themes → Customize for any role-related options.
  6. Save changes and verify with axe DevTools browser extension.
How to fix aria roles on 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.
How to fix aria roles on BigCommerce
  1. In your BigCommerce Admin, go to Storefront → My Themes → (active theme) → Advanced → Edit Theme Files (or download the theme for local editing).
  2. Search Handlebars template files (`.html` files inside `templates/`) for `role=` — key files include `layout/base.html`, `components/header.html`, `components/footer.html`, and product/category templates.
  3. Correct invalid role values in the relevant file, then upload the modified theme files via the theme editor or re-upload the theme zip.
  4. For issues in third-party widgets or scripts injected via Script Manager (Storefront → Script Manager), locate the script and edit or replace the offending code, or contact the vendor.
  5. Save, publish the theme, and verify with an accessibility audit tool.
How to fix aria roles on Wix
  1. Open the Wix Editor for your site. Click on the element flagged with an invalid ARIA role.
  2. Open the element's Settings panel (the gear icon or right-click → Settings). Look for an 'Accessibility' section — Wix exposes an 'ARIA label' and sometimes a 'role' field here for certain elements.
  3. If you added a custom role via Wix's Developer Tools (Velo), open the Code panel (turn on Developer Mode via Settings → Developer Tools) and search your page code or site code for `role` attributes set programmatically, then correct them.
  4. For Wix apps (e.g., Wix Bookings, Wix Stores widgets), invalid roles within the app's own rendered HTML cannot be edited directly — submit a bug report to Wix Support with the specific element and role value.
  5. Re-publish your site and verify with the axe DevTools browser extension.
How to fix aria roles on Squarespace
  1. In Squarespace, direct HTML editing is limited. Go to your Page settings → Advanced → Page Header Code Injection or Footer Code Injection if you previously injected custom HTML with role attributes — correct the role values there.
  2. For site-wide injected code, go to Settings → Advanced → Code Injection and search for any `role=` attributes in the Header or Footer fields.
  3. If the invalid role is in a Code Block on a specific page, open the page editor, click the Code Block, and edit the HTML directly — fix the invalid role value.
  4. For roles generated by Squarespace's own components (navigation, sections, etc.), these cannot be edited directly. Use the Settings → Accessibility options if available, or submit a bug report to Squarespace support.
  5. After saving, republish and test with axe DevTools.
How to fix aria roles on Webflow
  1. Open the Webflow Designer for your project. Select the element with the invalid ARIA role.
  2. In the right-hand panel, click the 'Element Settings' tab (the gear icon). Scroll down to the 'Accessibility' section.
  3. Find the 'ARIA role' dropdown or text field. Replace the invalid value with a correct WAI-ARIA role from the dropdown list, or clear it if a native semantic element is being used.
  4. For elements inside Components or Symbols, open the component in edit mode to change the role at the component level so all instances are fixed.
  5. Publish your site and verify the fix with axe DevTools in the browser.
How to fix aria roles on Adobe Commerce (Magento)
  1. Via SSH or SFTP, navigate to your theme directory: `app/design/frontend/<Vendor>/<theme>/`.
  2. Search all `.phtml` and `.html` (Knockout/UI Component) template files for `role=` using: `grep -r 'role=' app/design/frontend/<Vendor>/<theme>/`
  3. Also search the base Luma/Blank theme at `vendor/magento/theme-frontend-luma/` or `vendor/magento/theme-frontend-blank/` for the original template, then override it in your custom theme rather than editing core files.
  4. Fix invalid role values in the relevant template file within your custom theme folder, or create a template override if editing a core/vendor template.
  5. For issues in JavaScript UI components (`.html` KO templates under `Magento_*/view/frontend/web/template/`), locate and override the component template in your theme.
  6. Run `bin/magento cache:clean` and `bin/magento setup:static-content:deploy`, then verify with axe DevTools.

Does your site have this issue?

Run a free SEOLZ audit to find aria roles — and every other issue — across your whole site in minutes.

Scan my site free

Frequently asked questions

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.

Why does aria roles matter?

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.

How do I fix aria roles?

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.

Authoritative references

Related Accessibility (WCAG) issues