How to fix tabindex on Adobe Commerce (Magento)
Remove all positive tabindex values (tabindex="1" or higher) from your store's HTML elements, replacing them with tabindex="0" or relying on natural document order to control keyboard focus.
Steps for Adobe Commerce (Magento)
- Identify the .phtml template or .html Knockout/UI-component template responsible for the element. Use your IDE's global project search for 'tabindex' across app/design/ and vendor/ (prefer overriding in app/design/frontend/<Vendor>/<theme>/).
- Create a theme override in your custom theme directory mirroring the original file path, then remove or correct the positive tabindex value in the override file.
- For JavaScript-rendered components (e.g. minicart, checkout), search the corresponding .js or Knockout .html binding template for tabindex and apply the same correction.
- Run `bin/magento cache:flush` and `bin/magento setup:static-content:deploy` to apply the changes.
- Use a keyboard to tab through the affected storefront page (especially checkout) to confirm logical, sequential focus order.
<![CDATA[<!-- ❌ WRONG: positive tabindex breaks focus order -->
<button tabindex="3">Add to Cart</button>
<a href="/sale" tabindex="1">View Sale</a>
<input type="email" tabindex="2" placeholder="Your email">
<!-- ✅ CORRECT: remove attribute or use 0; rely on document order -->
<a href="/sale">View Sale</a>
<input type="email" placeholder="Your email">
<button>Add to Cart</button>
<!-- ✅ CORRECT: non-native interactive element added to normal tab flow -->
<div role="button" tabindex="0" onclick="openMenu()">Menu</div>
<!-- ✅ CORRECT: focus target for JS only, not in tab flow -->
<div id="modal-heading" tabindex="-1">Special Offer</div>
]]>What is tabindex?
The `tabindex` attribute tells a browser how an element should behave when a user presses the Tab key to navigate a page by keyboard. A value of `0` means "include this element in the normal tab order," while a value of `-1` means "exclude it from tab order but allow programmatic focus." A positive value — like `tabindex="1"`, `tabindex="2"`, etc. — forces that element to be focused *before* everything else on the page, regardless of where it sits in the HTML. This almost always creates a confusing, broken keyboard experience because the visual order and the focus order no longer match.
Keyboard navigation is essential for people who cannot use a mouse — including users with motor disabilities, screen-reader users, and power users who rely on the Tab key. When positive tabindex values are present, focus jumps unpredictably around the page, making it nearly impossible for these shoppers to browse products, fill in forms, or complete a checkout. This violates WCAG 2.1 Success Criterion 2.4.3 (Focus Order) at Level AA — the standard that most accessibility laws (ADA, European Accessibility Act, UK Equality Act) reference. Failing it exposes your business to legal complaints and litigation, and it directly harms conversion rates by locking out an estimated 15–20% of online shoppers who have some form of disability.
See the complete Tabindex guide for every platform and the full background.
Not sure if your Adobe Commerce (Magento) store has this?
Run a free SEOLZ audit — we’ll find tabindex and every other issue across your whole site.
Scan my site free