What this pass closed
- Collection sort works with the keyboard.
- Tab stays inside cart, menu, search, quick shop, and other trapped layers. Closing a modal returns focus to the control that opened it.
- Homepage hero, mobile logo, and product photos have names.
- Dialogs, drawers, and search identify themselves to assistive technology.
- Only the visible brand header keeps the landmark ids.
- Footer, chips, sort label, badge, placeholders, and slider text meet approximate 4.5:1 on white.
- Filter, tooltip, reminder, hero video, and cart recommendation controls are real buttons.
- Autoplay slideshows, the announcement bar, and promo sliders can be paused.
Not claimed
Automated source review cannot prove a live screen-reader pass, checkout, or third-party widgets. Klaviyo, Syndeca, Kiwi, Syte, Klarna, TrueVault, tag manager, and chat were not patched.
The earlier WAVE score of 8.2 described a connection-verification page, not the storefront. It is not a before or after baseline.
Visual changes
Layout, type, and component structure stay as they were. These colors and controls changed because contrast and pause rules require it.
#595959 on white, about 7:1. Replaces #a3a2a2, #b8b8b8, #8a8680, and white-on-white.
Text #1c1915 on #f3e7b0. Replaces gold on translucent gold.
Other visible additions
- Pause buttons on slideshow, announcement bar, and promo slider.
- Cart recommendations say “Show recommendations” and “Hide recommendations”.
- Reset-password labels are visible. Contact form explains the asterisk.
- Collection title on small screens stays visually hidden and remains in the accessibility tree.
- Brand names YMI and ROYALTY look the same and are no longer extra page headings.
Every issue
| ID | Was | Status | Result |
|---|---|---|---|
| A11Y-001 | Critical | Fixed | Sort options are buttons. Arrow keys, Home, End, and Escape work. |
| A11Y-002 | Critical | Fixed | Tab from the last control in a dialog wraps to the first. |
| A11Y-003 | Critical | Fixed | Closing a modal returns focus to the opener. |
| A11Y-004 | Critical | Fixed | Homepage hero link and visible image have a name. |
| A11Y-005 | Serious | Fixed | Cart, menu, search, quick shop, and popups are named dialogs. |
| A11Y-006 | Serious | Fixed | Only the visible header keeps SiteHeader, NavDrawer, and CartDrawer ids. |
| A11Y-007 | Serious | Fixed | Brand switcher is no longer extra level-1 headings. |
| A11Y-008 | Serious | Fixed | Collection heading stays available on small screens. |
| A11Y-009 | Serious | Fixed | Mobile logo uses the same alt as desktop. |
| A11Y-010 | Serious | Fixed | Product photos fall back to the product title. |
| A11Y-011 | Serious | Fixed | Newsletter submit keeps an accessible name. |
| A11Y-012 | Serious | Fixed | Quick-shop close button is named. |
| A11Y-013 | Serious | Fixed | Filter checkbox ids are unique and labels match them. |
| A11Y-014 | Serious | Fixed | Price slider handles are named minimum and maximum. |
| A11Y-015 | Serious | Fixed | View results and Close are buttons. Clear links no longer share one id. |
| A11Y-016 | Serious | Fixed | Swatch groups have names. Radios are scoped per product. |
| A11Y-017 | Serious | Fixed | Tooltips open from a button and return focus on close. |
| A11Y-018 | Serious | Fixed | Newsletter reminder is a button. |
| A11Y-019 | Serious | Fixed | Cart recommendations toggle exposes expanded state. |
| A11Y-020 | Serious | Fixed | Hero play and pause are named buttons and control the video. |
| A11Y-021 | Serious | Fixed | Promo slider can be paused. |
| A11Y-022 | Serious | Fixed | Desktop menus set aria-expanded on the link. |
| A11Y-023 | Serious | Fixed | Footer text is #595959 on white. |
| A11Y-024 | Serious | Fixed | Footer email field is no longer white on white. |
| A11Y-025 | Serious | Fixed | Filter chips are #595959. |
| A11Y-026 | Serious | Partial | Address forms show errors. Fields are not individually marked invalid. |
| A11Y-027 | Moderate | Fixed | Slideshow and announcement pause buttons are visible during autoplay. |
| A11Y-028 | Moderate | Partial | Reset password shows labels. Newsletter and search stay programmatic so the layout does not change. |
| A11Y-029 | Moderate | Partial | Account, contact, and comment errors are tied to fields. Not every input is. |
| A11Y-030 | Moderate | Partial | Required is set in markup. Visible “required” text is only on the contact asterisk note. |
| A11Y-031 | Moderate | Partial | Autocomplete is on name, email, password, phone, and address lines. Country and province are not. |
| A11Y-032 | Moderate | Fixed | My Size uses its visible label. |
| A11Y-033 | Moderate | Fixed | Megamenu titles without a URL are not empty links. |
| A11Y-034 | Moderate | Fixed | FAQ tabs expose expanded state on first paint. |
| A11Y-035 | Moderate | Fixed | Sort prefix meets contrast. |
| A11Y-036 | Moderate | Fixed | Camera badge uses dark text on solid gold. |
| A11Y-037 | Moderate | Fixed | Placeholder opacity raised to 0.85. |
| A11Y-038 | Moderate | Fixed | Cart promo has a name and is a link only when it has a destination. |
| A11Y-039 | Moderate | Fixed | Logo and press links fall back to a name. |
| A11Y-040 | Moderate | Fixed | Zoom control says Zoom image. |
| A11Y-041 | Moderate | Fixed | Pages can show an h1 from the title setting alone. |
| A11Y-042 | Moderate | Fixed | Buy now is type button. |
| A11Y-043 | Moderate | Fixed | Filter groups output aria-expanded. |
| A11Y-044 | Moderate | Fixed | Slider ticks and gallery error text are #595959. |
| A11Y-045 | Minor | Fixed | Thumbnail previous and next have aria-label. |
| A11Y-046 | Minor | Fixed | More colors is a named button. |
| A11Y-047 | Minor | Fixed | Reel control starts as Pause video. |
| A11Y-048 | Minor | Fixed | YMIG search close name has no extra quotes. |
| A11Y-049 | Minor | Fixed | Drawer items use aria-expanded. |
| A11Y-050 | Minor | Unchanged | Collections list still redirects to shop-all. Left as merchandising. Not an AA failure. |
| A11Y-051 | Minor | Partial | Quantity uses the translation. Some labels remain English. |
| A11Y-052 | Minor | Fixed | Contact form explains the asterisk. |
| A11Y-053 | Minor | Fixed | Filter labels no longer print a stray attribute. |
| A11Y-054 | Minor | Fixed | Current page and current collection crumb are marked. |
Still open
Theme
- Address errors are not attached to each field.
- Newsletter and search still use a placeholder with a programmatic name.
- Country and province have no autocomplete token.
- Some required fields do not say “required” in the visible label.
- A few strings are still hardcoded English.
- The collections redirect remains.
Outside this theme
- Checkout and Shop Pay buttons.
- Klaviyo, Syndeca, Kiwi, Syte, Klarna, TrueVault, Google Tag Manager, and chat.
- Live screen-reader and keyboard confirmation on the published store.
Testing
JavaScript syntax checks passed for theme.js, theme.js.liquid (Liquid stripped for the parser), custom.js, drawer-logic.js, header-switch.js, and collection-ux.js.
The storefront was not running in this workspace, so cart, menu, search, sort, and filters were not clicked through in a browser. Confirm those paths on a preview theme before publishing.
Written detail is in ACCESSIBILITY-AUDIT-AFTER.md. The before audit is ACCESSIBILITY-AUDIT-BEFORE.md.