High
Elements must only use permitted ARIA attributes
WCAG 4.1.2 (A)5 instances5 inspected pages
Elements must only use permitted ARIA attributes
Why it mattersElements must only use permitted ARIA attributes
Recommended correctionReview the affected element and correct the reported accessibility issue.
View 5 affected elements
Component · Ref V96LIG
Affected pagehttps://grainwoodfurniture.com/cart
Element.upcart-header-text
Accessible nameYour cart
Markup<span class="upcart-header-text" data-internal-properties="hasNonDefaultTitleAlignment=false;hasColorOverride=false" aria-label="Your cart" tabindex="0">Your cart</span>
Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
High
Hidden elements can still receive keyboard focus
WCAG 2.4.3 (A)50 instances5 inspected pages
An element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.
Why it mattersAn element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.
Recommended correctionKeep this element out of the tab order while its containing region is hidden — remove it from focus (for example tabindex="-1"), or apply the inert attribute to the hidden container where supported. Restore normal focusability when the region becomes visible.
View 50 affected elements
Component · Ref O4VWIA
Affected pagehttps://grainwoodfurniture.com/cart
Elementa#Algeria
Accessible nameAlgeria
DZD
د.ج
Markup<a class="link link--text disclosure__link caption-large focus-inset" href="#" data-value="DZ" id="Algeria">
<span class="visibility-hidden"><svg class="icon icon-checkmark" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 9" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"></path>
</svg>
</span>
<span class="country">Algeria</span>
<span cla… Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /cart
Component · Ref 93ZBPD
Affected pagehttps://grainwoodfurniture.com/cart
Elementinput#country-filter-input
Accessible namecountry filter
Rolecombobox
Markup<input class="country-filter__input field__input" id="country-filter-input" type="search" name="country_filter" value="" placeholder="Search" role="combobox" aria-label="country filter" spellcheck="false">
Affected pages/pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Component · Ref 4JC1FH
Affected pagehttps://grainwoodfurniture.com/
Elementdiv > div:nth-of-type(1) > div:nth-of-type(2) > div > p:nth-of-type(1) > a
Accessible nameAll Products
Markup<a href="/collections/all" class="full-unstyled-link">All Products
</a> Component · Ref LEAHG2
Affected pagehttps://grainwoodfurniture.com/cart
Elementdiv > div > div > div:nth-of-type(1) > small > a
Accessible nameshipping
Markup<a href="/policies/shipping-policy">shipping</a>
Component · Ref SQUYWB
Affected pagehttps://grainwoodfurniture.com/products/bed-caps
Elementslider-component#GalleryViewer-template--19477310472252__main > a
Accessible nameSkip to product information
Markup<a class="skip-to-content-link button visually-hidden quick-add-hidden" href="#ProductInfo-template--19477310472252__main">
Skip to product information
</a> Component · Ref Y6OQD9
Affected pagehttps://grainwoodfurniture.com/products/bed-caps
Elementli#Slide-template--19477310472252__main-24947422953532 > div > modal-opener > button
Accessible nameOpen media 1 in modal
Markup<button class="product__media-toggle quick-add-hidden product__media-zoom-lightbox" type="button" aria-haspopup="dialog" data-media-id="24947422953532">
<span class="visually-hidden">
Open media 1 in modal
</span>
</button> Component · Ref RNTCZ0
Affected pagehttps://grainwoodfurniture.com/
Elementdiv > div:nth-of-type(2) > div:nth-of-type(1) > div > div:nth-of-type(2) > a:nth-of-type(1)
Accessible nameFarmhouse Black
Markup<a class="card__swatch" href="/products/montauk-bedroom-set-5-piece-set?variant=40974294253628" aria-label="Farmhouse Black" title="Farmhouse Black"><span class="swatch card__swatch-image" style="background-image: url(//grainwoodfurniture.com/cdn/shop/files/farmhouse-black.avif?v=1779309570&width=100);"></span></a>
Component · Ref 78PNVB
Affected pagehttps://grainwoodfurniture.com/cart
Elementdiv#shopify-section-template--19477312340028__cart-items > cart-items > div > div:nth-of-type(1) > a
Accessible nameContinue shopping
Markup<a href="/collections/all" class="underlined-link">Continue shopping</a>
High
Interactive controls are not keyboard-accessible
WCAG 2.1.1 (A)33 instances5 inspected pages
A control that responds to clicks (a clickable element or an ARIA widget) cannot receive keyboard focus, so keyboard and switch users cannot operate it.
Why it mattersA control that responds to clicks (a clickable element or an ARIA widget) cannot receive keyboard focus, so keyboard and switch users cannot operate it.
Recommended correctionUse a native <button>/<a>, or add tabindex="0" plus keyboard event handlers (Enter/Space) to custom controls.
View 33 affected elements
Component · Ref Y5FQJV
Affected pagehttps://grainwoodfurniture.com/products/bed-caps
Elementsticky-header > header > div > details-modal > details > summary
Accessible nameSearch
Rolebutton
Markup<summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search" role="button">
<span>
<svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false">
<use href="#icon-search">
</use></svg>
<svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false">
<use href="#icon-close">
</use></svg>
</span>
</summary> Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Component · Ref Y2QHLI
Affected pagehttps://grainwoodfurniture.com/cart
Elementsummary#HeaderMenu-bedroom
Accessible nameBedroom
Rolebutton
Markup<summary id="HeaderMenu-bedroom" class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="false" aria-controls="HeaderMenu-MenuList-2">
<span>Bedroom</span>
<svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</path></svg>
</summary> Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Component · Ref I077RB
Affected pagehttps://grainwoodfurniture.com/
Elementsummary#HeaderDrawer-bedroom
Accessible nameBedroom
Rolebutton
Markup<summary id="HeaderDrawer-bedroom" class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-bedroom">
Bedroom
<svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</path></svg>
… Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Component · Ref T93UGU
Affected pagehttps://grainwoodfurniture.com/cart
Elementdetails#Details-menu-drawer-container > summary
Accessible nameMenu
Rolebutton
Markup<summary class="header__icon header__icon--menu header__icon--summary link focus-inset" aria-label="Menu" role="button" aria-expanded="false" aria-controls="menu-drawer">
<span>
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" class="icon icon-hamburger" fill="none" viewBox="0 0 18 16">
<path d="M1 .5a.5.5 0 100 1h15.71a.5.5 0 000-1H1zM.5 8a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1A.5.5 0 01.5 8zm0 7a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1a.5.5 0 01-.5-.5z" fill="currentColor">
</path></svg>
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" f… Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Component · Ref Y4L24
Affected pagehttps://grainwoodfurniture.com/
Elementsummary#Summary-template--15137912291388__a56bed5d-35c7-4ac5-87ca-a1c73efad135-168501749258c2d19a-0-template--19477310406716__a56bed5d-35c7-4ac5-87ca-a1c73efad135
Accessible nameHow and when will my order ship?
Rolebutton
Markup<summary id="Summary-template--15137912291388__a56bed5d-35c7-4ac5-87ca-a1c73efad135-168501749258c2d19a-0-template--19477310406716__a56bed5d-35c7-4ac5-87ca-a1c73efad135" role="button" aria-expanded="true" aria-controls="CollapsibleAccordion-template--15137912291388__a56bed5d-35c7-4ac5-87ca-a1c73efad135-168501749258c2d19a-0-template--19477310406716__a56bed5d-35c7-4ac5-87ca-a1c73efad135">
<svg class="icon icon-accordion" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25" style="width: 25px; height: 25px;"><path d=…
High
Modal dialog does not trap keyboard focus
WCAG 2.4.3 (A)5 instances5 inspected pages
An open modal leaves the content behind it keyboard-focusable, so keyboard and screen reader users can tab out of the dialog into hidden page content.
Why it mattersAn open modal leaves the content behind it keyboard-focusable, so keyboard and screen reader users can tab out of the dialog into hidden page content.
Recommended correctionWhile a modal is open, confine focus to the dialog and mark the rest of the page inert (or aria-hidden). Restore focus on close.
View 5 affected elements
Component · Ref RCEJXE
Affected pagehttps://grainwoodfurniture.com/cart
Elementsticky-header > header > div > details-modal > details > div
Accessible nameSearch
Roledialog
Markup<div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search">
<div class="modal-overlay"></div>
<div class="search-modal__content search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form">
<div class="field">
<input class="search__input field__input" id="Search-In-Modal" type="search" name="q" value="" placeholder="Search" role="combobox" aria-expanded="false" aria-owns="pred… Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
High
Links must be distinguishable without relying on color
WCAG 1.4.1 (A)1 instance1 inspected page
Links must be distinguishable without relying on color
Why it mattersLinks must be distinguishable without relying on color
Recommended correctionReview the affected element and correct the reported accessibility issue.
View 1 affected element
Component · Ref J8F7HP
Affected pagehttps://grainwoodfurniture.com/pages/multiple-payment-methods
Element.hc-breadcrumb > a[href$="help-center"]
Accessible nameHelp
Markup<a href="/pages/help-center">Help</a>
Medium
Text has insufficient colour contrast
WCAG 1.4.3 (AA)103 instances5 inspected pages
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Why it mattersText and background colours do not meet the minimum contrast ratio, reducing legibility.
Recommended correctionIncrease the contrast ratio to at least 4.5:1 for normal text and 3:1 for large text.
View 103 affected elements
Component · Ref KT8GOP
Affected pagehttps://grainwoodfurniture.com/
Element.footer-block__heading
Accessible nameSubscribe to our emails
Markup<h2 class="footer-block__heading inline-richtext">Subscribe to our emails</h2>
Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Component · Ref EMQAVZ
Affected pagehttps://grainwoodfurniture.com/
Element#NoMediaStandardBadge-template--19477310406716__0b7aa8da-7398-44db-8c49-c6cd6982ac6f-6678461121
Accessible nameBestseller
Markup<span id="NoMediaStandardBadge-template--19477310406716__0b7aa8da-7398-44db-8c49-c6cd6982ac6f-6678461121" class="badge badge--bottom-left">
Bestseller
</span> Component · Ref UR05BS
Affected pagehttps://grainwoodfurniture.com/
Element#NoMediaStandardBadge-template--19477310406716__featured_collection_U6dii6-7287462625340
Accessible nameBundle and Save
Markup<span id="NoMediaStandardBadge-template--19477310406716__featured_collection_U6dii6-7287462625340" class="badge badge--bottom-left color-accent-2">
Bundle and Save
</span> Component · Ref MOC3TZ
Affected pagehttps://grainwoodfurniture.com/
Element#Banner-template--19477310406716__5b5f6023-e903-46b3-8404-3e91dc78cabb > .banner__content--middle-left.banner__content.page-width > .color-inverse.banner__box.content-container--full-width-mobile > .banner__text.body.rte > p
Accessible nameModern farmouse charm has never been easier. With a flexible design language that will round out your dream bedroom.
Markup<p>Modern farmouse charm has never been easier. With a flexible design language that will round out your dream bedroom.</p>
Component · Ref T47RTM
Affected pagehttps://grainwoodfurniture.com/
Element#Banner-template--19477310406716__5b5f6023-e903-46b3-8404-3e91dc78cabb > .banner__content--middle-left.banner__content.page-width > .color-inverse.banner__box.content-container--full-width-mobile > .banner__heading.h1.inline-richtext
Accessible nameMontauk
Markup<h2 class="banner__heading inline-richtext h1">
Montauk
</h2> Component · Ref YSLQH0
Affected pagehttps://grainwoodfurniture.com/
Element.button--primary.button[href$="bundles"]
Accessible nameShop Bundles
Markup<a href="/collections/bundles" class="button button--primary">Shop Bundles</a>
Component · Ref 8K8KFR
Affected pagehttps://grainwoodfurniture.com/products/bed-caps
Element.related-products__heading
Accessible nameYou may also like
Markup<h2 class="related-products__heading inline-richtext h2">
You may also like
</h2> Component · Ref AL1NJ4
Affected pagehttps://grainwoodfurniture.com/products/bed-caps
Element.PwzrGrid-grid-xs-true-301
Accessible nameMontauk - Rustic Walnut
Markup<div class="PwzrGrid-root-267 PwzrGrid-item-269 PwzrGrid-grid-xs-true-301" style="white-space: normal; word-break: break-word;">Montauk - Rustic Walnut</div>
Component · Ref 9PNO89
Affected pagehttps://grainwoodfurniture.com/
Element.color-accent-1.banner__box.content-container--full-width-mobile > .banner__heading.h1.inline-richtext
Accessible name100% Solid Wood Furniture
Markup<h2 class="banner__heading inline-richtext h1">
100% Solid Wood Furniture
</h2> Component · Ref LRGORJ
Affected pagehttps://grainwoodfurniture.com/
Element.button--secondary
Accessible nameCollections
Markup<a href="/collections" class="button button--secondary">Collections</a>
Medium
Content sits outside any landmark region
WCAG 1.3.1 (A)5 instances5 inspected pages
Meaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.
Why it mattersMeaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.
Recommended correctionWrap primary content in <main> and other regions in appropriate landmark elements.
View 5 affected elements
Component · Ref 9BSQ1D
Affected pagehttps://grainwoodfurniture.com/cart
Elementdiv#CartDrawer > div:nth-of-type(2) > div:nth-of-type(1) > div:nth-of-type(1) > div > p:nth-of-type(2)
Accessible nameLog in to check out faster.
Markup<p class="cart__login-paragraph">
<a href="https://grainwoodfurniture.com/customer_authentication/redirect?locale=en&region_country=US" class="link underlined-link">Log in</a> to check out faster.
</p> Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Medium
Navigation regions are not distinguishable
WCAG 1.3.1 (A)10 instances5 inspected pages
The page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.
Why it mattersThe page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.
Recommended correctionGive each navigation region a distinct aria-label (e.g. "Primary", "Footer") when more than one is present.
View 10 affected elements
Component · Ref 0MYX63
Affected pagehttps://grainwoodfurniture.com/pages/multiple-payment-methods
Elementdiv#menu-drawer > div > div > nav
Accessible nameCollections
Bedroom
Bedroom
Bedroom Sets
Beds
Nightstands
Dressers & Chests
Wardrobes
Dressing Tables
Save Big with Bedroom Sets
Living & Dining
Living & Dining
Living Room Sets
Dining Tables & Benches
Home Office
Accent Chairs
Coffee Tables
End & Side Tables
Bookcases
Desks
Entryway
Best Sellers
About Us
Support
Markup<nav class="menu-drawer__navigation">
<ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><a id="HeaderDrawer-collections" href="/collections" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
Collections
</a></li><li><details id="Details-menu-drawer-menu-item-2">
<summary id="HeaderDrawer-bedroom" class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-bedroom">
Bedroom
… Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Component · Ref PU6FIA
Affected pagehttps://grainwoodfurniture.com/products/bed-caps
Elementdiv#shopify-section-sections--19477310111804__header > sticky-header > header > nav
Accessible nameCollections
Bedroom
Bedroom Sets
Beds
Nightstands
Dressers & Chests
Wardrobes
Dressing Tables
Save Big with Bedroom Sets
Living & Dining
Living Room Sets
Dining Tables & Benches
Home Office
Accent Chairs
Coffee Tables
End & Side Tables
Bookcases
Desks
Entryway
Best Sellers
About Us
Support
Markup<nav class="header__inline-menu">
<ul class="list-menu list-menu--inline" role="list"><li><a id="HeaderMenu-collections" href="/collections" class="header__menu-item list-menu__item link link--text focus-inset">
<span>Collections</span>
</a></li><li><header-menu>
<details id="Details-HeaderMenu-2">
<summary id="HeaderMenu-bedroom" class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="false" aria-controls="HeaderMenu-MenuList-2">
<span>Bedroom</span>
<svg aria-hidden="true" focusa… Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Low
Low-quality alternative text
WCAG 1.1.1 (A)10 instances5 inspected pages
Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Why it mattersAlt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Recommended correctionReplace placeholder or filename alt text with a concise description of what the image conveys.
View 10 affected elements
Component · Ref AOAG8N
Affected pagehttps://grainwoodfurniture.com/policies/terms-of-service
Elementdiv#link-bedroom > div > div > a > div > img
Markup<img src="//grainwoodfurniture.com/cdn/shop/files/banner_1.png?v=1774406689&width=600" alt="img" loading="lazy" width="290" height="209">
Affected pages/ /pages/multiple-payment-methods /policies/terms-of-service /products/bed-caps /cart
Low
Carousel has no accessible controls
WCAG 2.1.1 (A)1 instance1 inspected page
A carousel/slider exposes no previous/next or pause controls, so keyboard and assistive-technology users cannot navigate or stop it. Requires manual review of the specific widget.
Why it mattersA carousel/slider exposes no previous/next or pause controls, so keyboard and assistive-technology users cannot navigate or stop it. Requires manual review of the specific widget.
Recommended correctionProvide keyboard-operable previous/next controls and a pause control for auto-advancing carousels, with accessible names.
View 1 affected element
Component · Ref MSMKU9
Affected pagehttps://grainwoodfurniture.com/products/bed-caps
Elementdiv#pwzrswiper-container-wrapper > div:nth-of-type(2) > div
Markup<div class="pwzrswiper-container pwzrjss3 pwzrswiper-container-initialized pwzrswiper-container-horizontal pwzrswiper-container-pointer-events pwzrswiper-container-autoheight" style="width: min(100%, 100%);"><div></div><div id="pwzrswiper-wrapper" class="pwzrswiper-wrapper" data-pwwp-uid="1" style="height: 605px; transform: translate3d(0px, 0px, 0px);"><div id="pwzrswiper-slide-0" class="pwzrswiper-slide pwzrswiper-slide-active" data-root="rio-c36e5a79-7225-4450-83e4-1633b3a98a2d" data-index="0" style="cursor: pointer; padding-bottom: 100%; width: 605px;"><img id="pwzrswiper-img-0" class="pwzr…