Public accessibility assessment

Accessibility issues detected on hazelboutique.com

Evolize inspected 5 public pages on hazelboutique.com and detected 24 automatically identifiable accessibility findings.

24Findings detected
7WCAG criteria affected
5Pages inspected
8 Sep 2026Assessment date

Highest detected severity: High · 10 high-priority findings · 100% inspected-page coverage

Most widespread issueInteractive controls are not keyboard-accessibleDetected on 5 inspected pages
Most affected page/pages/contact-us17 findings detected
Most represented WCAG criterionWCAG 2.4.3 — Focus Order12 detected findings

Is hazelboutique.com your website?

Keep this assessment current and get notified when new accessibility issues are detected.

https://

Not your website? Scan your own site →

01 · Accessibility summary

Evolize inspected 5 public pages on hazelboutique.com and detected 24 accessibility findings. The most widespread issue was "Interactive controls are not keyboard-accessible", detected on 5 inspected pages. The most affected inspected page was "/pages/contact-us", where 17 findings were detected. The assessment identified findings mapped to 7 WCAG success criterions. The sections below prioritize the broadest issues and provide technical evidence for each detected finding.

02 · Start here

These findings combine the highest severity and broadest reach detected during this assessment.

  1. High

    Hidden elements can still receive keyboard focus

    WCAG 2.4.3 (A) · 5 inspected pages · 26 instances
    Why this matters

    An element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.

    Recommended action

    Keep 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 technical evidence →
  2. High

    Interactive controls are not keyboard-accessible

    WCAG 2.1.1 (A) · 5 inspected pages · 25 instances
    Why this matters

    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.

    Recommended action

    Use a native <button>/<a>, or add tabindex="0" plus keyboard event handlers (Enter/Space) to custom controls.

    View technical evidence →
  3. High

    Interactive controls are not keyboard-accessible

    WCAG 2.1.1 (A) · 5 inspected pages · 25 instances
    Why this matters

    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.

    Recommended action

    Use a native <button>/<a>, or add tabindex="0" plus keyboard event handlers (Enter/Space) to custom controls.

    View technical evidence →
  4. High

    Interactive controls must not be nested

    WCAG 4.1.2 (A) · 5 inspected pages · 25 instances
    Why this matters

    Interactive controls must not be nested

    Recommended action

    Review the affected element and correct the reported accessibility issue.

    View technical evidence →
  5. High

    Interactive controls are not keyboard-accessible

    WCAG 2.1.1 (A) · 5 inspected pages · 10 instances
    Why this matters

    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.

    Recommended action

    Use a native <button>/<a>, or add tabindex="0" plus keyboard event handlers (Enter/Space) to custom controls.

    View technical evidence →

03 · WCAG criteria affected

CriterionNameLevelFindingsPagesReach
2.4.3Focus OrderA1255 / 5
2.1.1KeyboardA455 / 5
1.4.3Contrast (Minimum)AA355 / 5
1.1.1Non-text ContentA244 / 5
1.3.1Info and RelationshipsA155 / 5
1.4.1Use of ColorA111 / 5
4.1.2Name, Role, ValueA155 / 5

Absence of a criterion here does not indicate conformance with it — only that no automatically detectable issue was found for it.

Continuous monitoring

A scan shows today's exposure. Monitoring shows what changes next.

Evolize continuously reassesses public website pages, detects newly introduced or recurring accessibility findings, and tracks remediation over time.

04 · All detected findings

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 matters

An element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.

Recommended correction

Keep 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 QNETNZ
Affected pagehttps://hazelboutique.com/pages/contact-us
Elementinput#Search-In-Modal-1
Accessible nameSearch
Roletextbox
Markup
<input class="search__input field__input" id="Search-In-Modal-1" type="search" name="q" aria-label="Search" value="" placeholder="Search" role="textbox" aria-expanded="false" aria-owns="predictive-search-results" aria-controls="predictive-search-results" aria-haspopup="listbox" aria-autocomplete="list" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false">
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref 6O0G3G
Affected pagehttps://hazelboutique.com/products/gift-card
Elementa#HeaderMenu-clothing--header-dropdown-menu
Accessible name--
Markup
<a id="HeaderMenu-clothing--header-dropdown-menu" href="/pages/divider" class="header__menu-item list-menu__item link link--text focus-inset caption-large --">
                          --
                        </a>
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref 3MOOOI
Affected pagehttps://hazelboutique.com/pages/contact-us
Elementdiv:nth-of-type(1) > details-modal > details > div > div:nth-of-type(2) > button
Accessible nameClose
Markup
<button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close">
          <svg class="icon icon-close" aria-hidden="true" focusable="false">
            <use href="#icon-close"></use>
          </svg>
        </button>
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref Y41YEH
Affected pagehttps://hazelboutique.com/
Elementdiv > div:nth-of-type(2) > predictive-search > form > div:nth-of-type(1) > button:nth-of-type(2)
Accessible nameSearch
Markup
<button class="search__button field__button" aria-label="Search">
              <svg class="icon icon-search" aria-hidden="true" focusable="false">
                <use href="#icon-search"></use>
              </svg>
            </button>
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref A2OQ4R
Affected pagehttps://hazelboutique.com/policies/contact-information
Elementdiv:nth-of-type(2) > div > form > label > span > a:nth-of-type(1)
Accessible nameSee terms
Markup
<a href="http://eepurl.com/iwthPw" target="_blank" rel="noopener noreferrer">See terms</a>
Affected pages/policies/contact-information /pages/contact-us
Component · Ref X9Y3IW
Affected pagehttps://hazelboutique.com/policies/contact-information
Elementdiv:nth-of-type(2) > div:nth-of-type(2) > div > form > label > input
Accessible nameI agree to receive recurring promotional and marketing text messages from Hazel Boutique
Markup
<input type="checkbox" name="mc-SMSPHONE-ack" value="true" aria-label="I agree to receive recurring promotional and marketing text messages from Hazel Boutique">
Affected pages/policies/contact-information /pages/contact-us
Component · Ref E6CAXI
Affected pagehttps://hazelboutique.com/products/gift-card
Elementdiv#shopify-block-AZHBnSHd6aURCM01WT__judge_me_reviews_preview_badge_XU4y6V > div > div > span:nth-of-type(1)
Accessible nameSee all reviews
Rolebutton
Markup
<span class="jdgm-prev-badge__stars" data-score="0.00" tabindex="0" aria-label="See all reviews" role="button"> <span class="jdgm-star jdgm--off"></span><span class="jdgm-star jdgm--off"></span><span class="jdgm-star jdgm--off"></span><span class="jdgm-star jdgm--off"></span><span class="jdgm-star jdgm--off"></span> </span>
Component · Ref 9YQNG9
Affected pagehttps://hazelboutique.com/cart
Elementdiv#shopify-section-template--26596969185594__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>
Component · Ref 29GE8J
Affected pagehttps://hazelboutique.com/products/gift-card
Elementli#Slide-template--26596969644346__main-34387397280058 > 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="34387397280058">
      <span class="visually-hidden">
        Open media 1 in modal
      </span>
    </button>
Component · Ref VL2XIB
Affected pagehttps://hazelboutique.com/
Elementdiv#Slider-template--26596969316666__hero_QK67RC
Accessible nameCarousel
Roleregion
Markup
<div class="slideshow banner banner--medium grid grid--1-col slider slider--everywhere banner--mobile-bottom" id="Slider-template--26596969316666__hero_QK67RC" aria-live="polite" aria-label="Carousel" data-autoplay="false" data-speed="5" role="region" tabindex="0"><style>
        #Slide-template--26596969316666__hero_QK67RC-2 .banner__media::after {
            opacity: 0.0;
        }
      </style>

      <a href="/collections/new-arrivals-1" tabindex="0" target="_top" class="slideshow__slide grid__item grid--1-col slider__slide" id="Slide-template--26596969316666__hero_QK67RC-2" aria-roledes…
Component · Ref 0R0GSC
Affected pagehttps://hazelboutique.com/cart
Elementdiv > div > div > div:nth-of-type(1) > small > a
Accessible nameshipping
Markup
<a href="/policies/shipping-policy">shipping</a>
High

Interactive controls are not keyboard-accessible

WCAG 2.1.1 (A)65 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 matters

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.

Recommended correction

Use a native <button>/<a>, or add tabindex="0" plus keyboard event handlers (Enter/Space) to custom controls.

View 65 affected elements
Component · Ref KDXSXX
Affected pagehttps://hazelboutique.com/cart
Elementsticky-header > header > div:nth-of-type(1) > 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="true" role="img" aria-label="Open search">
          <use href="#icon-search"></use>
        </svg>
        <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="true" role="img" aria-label="Close search">
          <use href="#icon-close"></use>
        </svg>
        <span class="menuButtonText">Search</span>
…
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref YA97ZD
Affected pagehttps://hazelboutique.com/policies/contact-information
Elementsummary#HeaderDrawer-clothing
Accessible nameClothing
Rolebutton
Markup
<summary id="HeaderDrawer-clothing" class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-clothing">
                        Clothing
                        <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/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref RVMQMQ
Affected pagehttps://hazelboutique.com/policies/contact-information
Elementdetails#Details-HeaderMenu-5 > summary
Accessible nameAccessories
Rolebutton
Markup
<summary class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="false" aria-controls="HeaderMenu-MenuList-5-header-dropdown-menu">
                <a id="HeaderMenu-accessories-header-dropdown-menu" href="/collections/all-accessories" class="header__menu-item list-menu__item link link--text focus-inset">
                  <span>Accessories</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.70…
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref H9FLE8
Affected pagehttps://hazelboutique.com/products/gift-card
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" role="img" aria-label="Open menu" focusable="true" 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-…
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
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 matters

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.

Recommended correction

While 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 USA170
Affected pagehttps://hazelboutique.com/products/gift-card
Elementsticky-header > header > div:nth-of-type(2) > 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" aria-label="Search" value="" placeholder="Search" role="textbox" aria-expanded="fal…
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
High

Interactive controls must not be nested

WCAG 4.1.2 (A)25 instances5 inspected pages

Interactive controls must not be nested

Why it matters

Interactive controls must not be nested

Recommended correction

Review the affected element and correct the reported accessibility issue.

View 25 affected elements
Component · Ref KUHU8L
Affected pagehttps://hazelboutique.com/pages/contact-us
Element#Details-HeaderMenu-5 > summary
Accessible nameAccessories
Rolebutton
Markup
<summary class="header__menu-item list-menu__item link focus-inset" role="button" aria-expanded="false" aria-controls="HeaderMenu-MenuList-5-header-dropdown-menu">
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Medium

Text has insufficient colour contrast

WCAG 1.4.3 (AA)38 instances5 inspected pages

Text and background colours do not meet the minimum contrast ratio, reducing legibility.

Why it matters

Text and background colours do not meet the minimum contrast ratio, reducing legibility.

Recommended correction

Increase the contrast ratio to at least 4.5:1 for normal text and 3:1 for large text.

View 38 affected elements
Component · Ref 27K13M
Affected pagehttps://hazelboutique.com/pages/contact-us
Element#HeaderMenu-evi11-twin-vintage-header-dropdown-menu > span
Accessible nameEvi11 Twin Vintage
Markup
<span>Evi11 Twin Vintage</span>
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref JILDMQ
Affected pagehttps://hazelboutique.com/
Element.slideshow__slide.slider__slide[aria-roledescription="Slide"]:nth-child(6) > .textyText > .rteMidge
Accessible name03
Markup
<span class="rteMidge">03</span>
Component · Ref SEWOC6
Affected pagehttps://hazelboutique.com/
Element#Slide-template--26596969316666__hero_QK67RC-1 > .textyText > .rteMidge
Accessible name01
Markup
<span class="rteMidge">01</span>
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 matters

Meaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.

Recommended correction

Wrap primary content in <main> and other regions in appropriate landmark elements.

View 5 affected elements
Component · Ref V41I4F
Affected pagehttps://hazelboutique.com/cart
Elementsection#shopify-pc__banner > div
Accessible nameWe value your privacyWe use cookies and other technologies to personalize your experience, perform marketing, and collect analytics. Learn more in our Privacy Policy.Manage preferencesAcceptDecline
Markup
<div class="shopify-pc__banner__wrapper"><div class="shopify-pc__banner__body"><h2 id="shopify-pc__banner__body-title">We value your privacy</h2><p>We use cookies and other technologies to personalize your experience, perform marketing, and collect analytics. Learn more in our  <a id="shopify-pc__banner__body-policy-link" href="https://hazelboutique.com/policies/privacy-policy" target="_blank" rel="noopener noreferrer">Privacy Policy.</a></p></div><div class="shopify-pc__banner__btns shopify-pc__banner__btns-granular"><button id="shopify-pc__banner__btn-manage-prefs" class="shopify-pc__banner_…
Affected pages/ /policies/contact-information /pages/contact-us /products/gift-card /cart
Low

Low-quality alternative text

WCAG 1.1.1 (A)12 instances4 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 matters

Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.

Recommended correction

Replace placeholder or filename alt text with a concise description of what the image conveys.

View 12 affected elements
Component · Ref FO1UJ0
Affected pagehttps://hazelboutique.com/cart
Elementfooter#skip-skip-to-footer > div:nth-of-type(1) > img:nth-of-type(2)
Markup
<img src="https://cdn.shopify.com/s/files/1/0051/3264/8566/files/hazel-mobile-logo.png?v=1713641093&amp;width=760" alt="Hazel Boutique" loading="lazy" width="760" height="316" class="footerLogo--mobile">
Affected pages/policies/contact-information /pages/contact-us /products/gift-card /cart
Component · Ref KWES0D
Affected pagehttps://hazelboutique.com/policies/contact-information
Elementdiv#shopify-section-sections--26596968890682__header > sticky-header > header > a:nth-of-type(2) > div > img
Markup
<img src="//hazelboutique.com/cdn/shop/files/Frame_64.svg?v=1714054119&amp;width=600" alt="Hazel Boutique" srcset="//hazelboutique.com/cdn/shop/files/Frame_64.svg?v=1714054119&amp;width=200 200w, //hazelboutique.com/cdn/shop/files/Frame_64.svg?v=1714054119&amp;width=300 300w, //hazelboutique.com/cdn/shop/files/Frame_64.svg?v=1714054119&amp;width=400 400w" width="200" height="23.200191341784265" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 400px) 50vw, 200px">
Affected pages/policies/contact-information /pages/contact-us /products/gift-card /cart

05 · Most affected inspected pages

06 · About this assessment

Evolize inspects publicly accessible website pages using automated browser-based testing and deterministic accessibility rules. Automated testing can identify many reproducible technical issues but cannot determine complete WCAG or legal compliance.

  • Publicly accessible surfaces only — no credentials, private systems, or source-code access.
  • Findings apply to the pages and states successfully inspected; automated analysis may not detect every issue.
  • Results reflect the site at the scan date and may have changed since.

Evolize provides digital risk intelligence and does not provide legal advice, certify compliance, or guarantee that litigation will not occur. Methodology · Security · Example assessment

07 · Continuous monitoring

This public report captures one assessment. Evolize monitoring rescans the website, detects new and recurring findings, tracks changes over time and verifies corrections.

Is information in this report inaccurate or outdated? Request a correction or removal.