Which WCAG criterion this fails
- Does not meet 4.1.2 Name, Role, Value (Level A)
How to fix it on WooCommerce
Everything below is done from Appearance > Theme File Editor, or your child theme over SFTP. Take a copy of the theme before editing.
- If a region is hidden, it must not be reachable by Tab. Add the hidden attribute or display:none, which removes it from the tab order properly.
- Where the element must stay in the layout (a CSS-transformed off-canvas menu), set inert on the container, or tabindex="-1" on each focusable child while it is closed.
- Never put aria-hidden="true" on an element that is visible on screen — that hides real content from screen readers.
- In the theme JavaScript that opens and closes the drawer, toggle both the visual class and the hidden/inert state together.
- Check the mobile menu at desktop width and the desktop menu at mobile width — one of the two is usually still tabbable.
Where this usually lives
Off-canvas cart/menu plugin scripts, and any CSS that moves panels off-screen with transform
Paths given for Storefront, Astra, Flatsome and other WooCommerce themes. A heavily customised theme may differ; the CSS selector in your scan report points at the exact element.
Code
<!-- Wrong: hidden from AT, still tabbable -->
<div class="cart-drawer" aria-hidden="true">
<button>Checkout</button>
</div>
<!-- Right: inert removes it from the tab order too -->
<div class="cart-drawer" aria-hidden="true" inert>
<button>Checkout</button>
</div>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: medium. Rule id: aria-hidden-focus (axe-core).