How to fix aria progressbar name on Shopify
Add a descriptive accessible name to every progress bar element so screen readers can announce what it represents.
Steps for Shopify
- In your Shopify admin go to Online Store → Themes → your active theme → Edit code.
- Search across template files (Sections, Snippets, Layout) for `role="progressbar"`, `<progress`, or any progress/strength widget JavaScript file in Assets.
- Open the relevant `.liquid` file or `.js` asset. For a Liquid-rendered bar, add `aria-label="{{ label_variable }}"` or `aria-labelledby` directly to the element tag.
- For third-party app widgets (e.g., a password-strength meter from a login app), check the app's settings panel for an accessibility label option; if none, contact the app developer or inject the attribute via a small JavaScript snippet added to theme.liquid before `</body>`: `document.querySelectorAll('[role="progressbar"]:not([aria-label]):not([aria-labelledby])').forEach(el => el.setAttribute('aria-label', 'Progress'));` — then replace the generic string with a context-specific label per selector.
- Save and preview. Use Chrome DevTools → Accessibility panel to confirm the computed accessible name is populated.
<!-- OPTION A: aria-label (no visible label nearby) -->
<div
role="progressbar"
aria-label="Password strength"
aria-valuenow="60"
aria-valuemin="0"
aria-valuemax="100"
style="width:60%;"
></div>
<!-- OPTION B: aria-labelledby (visible label exists) -->
<p id="upload-label">File upload progress</p>
<div
role="progressbar"
aria-labelledby="upload-label"
aria-valuenow="40"
aria-valuemin="0"
aria-valuemax="100"
style="width:40%;"
></div>
<!-- OPTION C: native <progress> with <label> -->
<label for="checkout-progress">Checkout: step 2 of 4</label>
<progress id="checkout-progress" value="50" max="100">50%</progress>What is aria progressbar name?
A progress bar (any HTML element with `role="progressbar"`, including native `<progress>` elements) must have an accessible name — a short label that tells users *what* is progressing. This name is provided via an `aria-label` attribute directly on the element, or by pointing to a visible label using `aria-labelledby`. When neither exists, the progress bar is completely anonymous: assistive technologies announce it as just "progress bar, 0%" with no context about what is being tracked — a password strength meter, a checkout step, a file upload, etc.
Screen reader users — including customers who are blind or have low vision — rely on accessible names to understand your store's interface. An unnamed progress bar during checkout, a file upload, or a product review form creates confusion and can cause those shoppers to abandon the task entirely, costing you sales and harming your brand reputation. Failing to provide accessible names for interactive or informative widgets violates WCAG 2.1 Success Criterion 1.1.1 (Non-text Content) and 4.1.2 (Name, Role, Value), exposing your store to accessibility complaints and potential legal liability in many jurisdictions (e.g., ADA in the US, EN 301 549 in the EU). Fixing it is a quick code change with zero impact on visual design.
See the complete Aria progressbar name guide for every platform and the full background.
Not sure if your Shopify store has this?
Run a free SEOLZ audit — we’ll find aria progressbar name and every other issue across your whole site.
Scan my site free