Aria dialog name
Moderate effortFound on 2% of audited stores.
Add a descriptive accessible name to every dialog and alertdialog element using aria-label or aria-labelledby so screen-reader users know what the dialog is about.
What it is
Any time your store shows a popup, modal, or overlay — such as a cookie notice, quick-view product panel, cart drawer, age-verification gate, or newsletter signup — that element needs an accessible name. An "accessible name" is a short label that screen readers announce when the dialog opens, telling the user what the popup is for. It is provided either by pointing to a visible heading inside the dialog (aria-labelledby) or by writing a brief label directly on the element (aria-label). Without one, screen-reader users land in the dialog with no context about its purpose.
Why it matters
Screen readers used by blind and low-vision shoppers announce the accessible name of a dialog the moment it opens. Without a name, a user hears only "dialog" — with no indication of whether it is a cart, a promo, a warning, or something else — making the popup effectively unusable. This violates WCAG 2.1 Success Criterion 4.1.2 (Name, Role, Value), which is a legal requirement under the ADA, the European Accessibility Act, and similar laws in many countries. Beyond legal risk, an inaccessible checkout or cart modal directly reduces conversions among the estimated 7–8 % of online shoppers who rely on assistive technology. Fixing this also benefits keyboard-only users and voice-control software that rely on the same label.
How to fix it
- Identify every HTML element on your store that uses role="dialog" or role="alertdialog" (modals, cart drawers, cookie banners, quick-view panels, age gates, etc.).
- Check whether the dialog contains a visible heading element (h1–h6) or a clear title element. If it does, add an aria-labelledby attribute on the dialog element whose value matches the id of that heading — this is the preferred approach because the name stays in sync with the visible text.
- If there is no visible heading (e.g. a bare icon-only or image-only dialog), add an aria-label attribute directly on the dialog element with a concise, human-readable description (e.g. aria-label="Shopping cart").
- Never leave aria-label empty (aria-label="") — an empty string is treated the same as no name and will still fail the audit.
- Test with a screen reader (NVDA + Chrome on Windows, VoiceOver + Safari on macOS/iOS, or TalkBack on Android): open the dialog and confirm the announced name matches its purpose.
- Re-run your accessibility scanner to verify the aria-dialog-name rule now passes.
<div role="dialog" aria-modal="true" aria-labelledby="cart-dialog-title">
<h2 id="cart-dialog-title">Your Shopping Cart</h2>
<!-- dialog content -->
</div>
<!-- OR, when no visible heading exists -->
<div role="dialog" aria-modal="true" aria-label="Newsletter signup">
<!-- dialog content -->
</div>Fix it on your platform
Pick your platform for the exact steps.
How to fix aria dialog name on Shopify
- From your Shopify Admin, go to Online Store → Themes → click 'Customize' on your active theme.
- To edit the underlying HTML, go to Online Store → Themes → click the '…' menu → Edit code.
- Open the relevant Liquid snippet — common locations are snippets/cart-drawer.liquid, snippets/modal.liquid, sections/header.liquid, or a similar file depending on your theme (Dawn theme uses snippets/cart-drawer.liquid).
- Find the outermost element of the dialog (look for role="dialog", <dialog>, or a class like 'modal', 'cart-drawer', 'popup').
- If the dialog has a visible heading (e.g. <h2 class="cart-title">Your Cart</h2>), add an id to that heading (id="cart-dialog-title") and add aria-labelledby="cart-dialog-title" to the dialog element.
- If there is no visible heading, add aria-label="[purpose of the dialog]" directly to the dialog element (e.g. aria-label="Shopping cart").
- Save the file and preview the theme; use a screen reader or the axe DevTools browser extension to verify the dialog is now named.
How to fix aria dialog name on Shopify Plus
- Shopify Plus uses the same theme-editing flow as standard Shopify.
- Go to Online Store → Themes → Edit code, then locate your dialog/modal/cart-drawer Liquid snippets (e.g. snippets/cart-drawer.liquid, snippets/modal.liquid).
- If you use a custom storefront or headless build via Shopify Storefront API, edit the React/Vue/Svelte component that renders the modal and add aria-labelledby or aria-label to the outermost dialog element.
- For third-party apps that inject dialogs (e.g. upsell popups), contact the app developer or use a custom Script Tag / Theme App Extension to patch the ARIA attributes after the element is inserted into the DOM.
- Verify with axe DevTools or a screen reader after each change.
How to fix aria dialog name on WooCommerce
- WooCommerce dialogs are typically rendered by your WordPress theme or a page-builder plugin.
- For theme-provided modals (e.g. cart drawer, quick-view), go to Appearance → Theme File Editor (or edit via FTP/SFTP) and locate the relevant template file — often woocommerce/cart/mini-cart.php, or a partial in your child theme.
- Find the dialog's container element and add aria-labelledby pointing to the heading's id, or add aria-label with a descriptive name.
- If using a plugin like WooCommerce Quick View or CartFlows, check the plugin's settings for accessibility options first; if none exist, use a child theme or a small Code Snippets plugin (wp_footer hook) to patch the attribute via JavaScript after the DOM loads.
- Install the 'axe DevTools' browser extension, load a page with the dialog, open it, and confirm the name is announced.
How to fix aria dialog name on BigCommerce
- Go to Storefront → My Themes → click 'Advanced' → Edit Theme Files (Stencil themes).
- Locate the relevant Handlebars template — common files are templates/components/cart/preview.html (mini-cart), templates/components/common/modal.html, or a quick-search/product-quick-view partial.
- Find the element with role="dialog" (or the <dialog> tag) and add aria-labelledby="[id-of-heading]" or aria-label="[dialog purpose]".
- If you use Page Builder widgets or third-party scripts for popups, check the widget's HTML settings panel for an ARIA label field, or add a Script Manager snippet that patches the attribute on DOMContentLoaded.
- Save and push changes; test with a screen reader or the axe browser extension.
How to fix aria dialog name on Adobe Commerce (Magento)
- Dialogs in Adobe Commerce (Magento 2) are typically rendered via the modal UI component (Magento_Ui/js/modal/modal) or custom .phtml templates.
- For the built-in modal component, override the template in your custom theme at app/design/frontend/<Vendor>/<Theme>/Magento_Ui/templates/modal/modal-popup.html (or modal-slide.html) and add aria-labelledby or aria-label to the outer <div role="dialog"> element.
- For custom .phtml popups, edit the template file directly and add the appropriate aria attribute to the dialog container.
- If the dialog title is rendered inside the modal, give that element a unique id and reference it with aria-labelledby on the dialog wrapper.
- Run bin/magento setup:static-content:deploy after changes, clear cache (bin/magento cache:flush), then verify with axe DevTools.
How to fix aria dialog name on Wix
- In the Wix Editor, click on the popup/lightbox element on your canvas (or go to Add → Lightbox to review existing lightboxes in the Pages & Lightboxes panel).
- Wix does not expose raw HTML editing for standard editor elements, so use Wix's Velo (Dev Mode) to patch ARIA attributes via JavaScript.
- Enable Velo: go to the top menu → Dev Mode → Enable Velo.
- In the Velo code panel, use the $w API in the page code or a masterPage.js file: $w('#myLightbox').onViewportEnter(() => { const el = document.querySelector('[role="dialog"]'); if (el) el.setAttribute('aria-label', 'Newsletter signup'); });
- Alternatively, use the Velo wixWindow.openLightbox callback and a MutationObserver to patch the attribute when the lightbox opens.
- Preview the site, open the lightbox, and use the axe DevTools browser extension to confirm the dialog now has an accessible name.
How to fix aria dialog name on Wix Studio
- In Wix Studio, enable Dev Mode from the top toolbar.
- Select the panel, popup, or lightbox component that acts as a dialog.
- In the Properties & Events panel, check whether an aria-label field is available directly on the component (Wix Studio is expanding native ARIA support — check the latest release notes).
- If no native field exists, use the page's JavaScript code panel to target the rendered dialog element after it opens and set aria-label or aria-labelledby programmatically, similar to the Velo approach for standard Wix.
- Test using axe DevTools in your browser while previewing the published or staged site.
How to fix aria dialog name on Squarespace
- Squarespace has limited direct HTML access. Go to Website → Pages and identify which page or section contains the popup/announcement bar/lightbox.
- For announcement bars and promotional popups, go to Marketing → Promotional Pop-Up or Website → Announcement Bar and check if an ARIA label option exists in the settings panel.
- For custom Code Blocks or Embed Blocks, click the block, choose Edit, and add your dialog HTML with aria-labelledby or aria-label included in the markup.
- For site-wide injection, go to Settings → Advanced → Code Injection, and in the Footer section add a small JavaScript snippet that runs after load and patches the aria attribute: document.querySelectorAll('[role="dialog"]').forEach(el => { if (!el.getAttribute('aria-label') && !el.getAttribute('aria-labelledby')) { el.setAttribute('aria-label', 'Site notification'); } });
- Publish changes and verify with axe DevTools.
How to fix aria dialog name on Webflow
- In the Webflow Designer, select the Modal or Div Block that serves as your dialog.
- Open the Element Settings panel (D key) → Custom Attributes section.
- Click '+' to add a new attribute: set Name to role and Value to dialog (if not already set).
- Add another attribute: set Name to aria-labelledby and Value to the ID of the heading element inside the dialog (e.g. cart-dialog-title). Make sure the heading element has that ID set in its Element Settings.
- If there is no visible heading, instead add aria-label with a descriptive value like Shopping cart.
- Publish the site and verify with axe DevTools or a screen reader.
Does your site have this issue?
Run a free SEOLZ audit to find aria dialog name — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Aria dialog name?
Any time your store shows a popup, modal, or overlay — such as a cookie notice, quick-view product panel, cart drawer, age-verification gate, or newsletter signup — that element needs an accessible name. An "accessible name" is a short label that screen readers announce when the dialog opens, telling the user what the popup is for. It is provided either by pointing to a visible heading inside the dialog (aria-labelledby) or by writing a brief label directly on the element (aria-label). Without one, screen-reader users land in the dialog with no context about its purpose.
Why does aria dialog name matter?
Screen readers used by blind and low-vision shoppers announce the accessible name of a dialog the moment it opens. Without a name, a user hears only "dialog" — with no indication of whether it is a cart, a promo, a warning, or something else — making the popup effectively unusable. This violates WCAG 2.1 Success Criterion 4.1.2 (Name, Role, Value), which is a legal requirement under the ADA, the European Accessibility Act, and similar laws in many countries. Beyond legal risk, an inaccessible checkout or cart modal directly reduces conversions among the estimated 7–8 % of online shoppers who rely on assistive technology. Fixing this also benefits keyboard-only users and voice-control software that rely on the same label.
How do I fix aria dialog name?
Add a descriptive accessible name to every dialog and alertdialog element using aria-label or aria-labelledby so screen-reader users know what the dialog is about.
Authoritative references
- How to fix this specific rule — Deque/axe (rule reference)
- WCAG 2 overview — W3C WAI
- ARIA basics — MDN