Public accessibility assessment

Accessibility issues detected on curehydration.com

Evolize inspected 5 public pages on curehydration.com and detected 83 automatically identifiable accessibility findings.

83Findings detected
9WCAG criteria affected
5Pages inspected
8 Sep 2026Assessment date

Highest detected severity: Critical · 6 high-priority findings · 100% inspected-page coverage

Most widespread issueText has insufficient colour contrastDetected on 5 inspected pages
Most affected page/56 findings detected
Most represented WCAG criterionWCAG 1.4.3 — Contrast (Minimum)68 detected findings

Is curehydration.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 curehydration.com and detected 83 accessibility findings. The most widespread issue was "Text has insufficient colour contrast", detected on 5 inspected pages. The most affected inspected page was "/", where 56 findings were detected. The assessment identified findings mapped to 9 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. Critical

    Buttons have no accessible name

    WCAG 4.1.2 (A) · 1 inspected page · 5 instances
    Why this matters

    Interactive buttons expose no accessible name, so their purpose cannot be determined by assistive technology.

    Recommended action

    Give it an accessible name that describes the action it performs: provide visible text when a visible label is appropriate, an aria-label for an icon-only control (for example aria-label="Dismiss notification"), or aria-labelledby when an existing visible label already describes it. Avoid vague names such as "Button", "Action", or the component's internal name.

    View technical evidence →
  2. High

    Text has insufficient colour contrast

    WCAG 1.4.3 (AA) · 5 inspected pages · 15 instances
    Why this matters

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

    Recommended action

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

    View technical evidence →
  3. 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 →
  4. High

    Hidden elements can still receive keyboard focus

    WCAG 2.4.3 (A) · 4 inspected pages · 12 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 →
  5. High

    Hidden elements can still receive keyboard focus

    WCAG 2.4.3 (A) · 4 inspected pages · 4 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 →

03 · WCAG criteria affected

CriterionNameLevelFindingsPagesReach
1.4.3Contrast (Minimum)AA6855 / 5
2.4.3Focus OrderA455 / 5
1.3.1Info and RelationshipsA355 / 5
4.1.2Name, Role, ValueA311 / 5
1.2.2Captions (Prerecorded)A211 / 5
1.1.1Non-text ContentA155 / 5
1.4.1Use of ColorA111 / 5
2.1.1KeyboardA155 / 5
3.3.2Labels or InstructionsA111 / 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

Critical

Buttons have no accessible name

WCAG 4.1.2 (A)5 instances1 inspected page

Interactive buttons expose no accessible name, so their purpose cannot be determined by assistive technology.

Why it matters

Interactive buttons expose no accessible name, so their purpose cannot be determined by assistive technology.

Recommended correction

Give it an accessible name that describes the action it performs: provide visible text when a visible label is appropriate, an aria-label for an icon-only control (for example aria-label="Dismiss notification"), or aria-labelledby when an existing visible label already describes it. Avoid vague names such as "Button", "Action", or the component's internal name.

View 5 affected elements
Component · Ref XDDO7B
Affected pagehttps://www.curehydration.com/
Element.press-list__logo-item.tap-area:nth-child(4)
Markup
<button class="press-list__logo-item tap-area">
High

Text has insufficient colour contrast

WCAG 1.4.3 (AA)194 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 194 affected elements
Component · Ref IO27TE
Affected pagehttps://www.curehydration.com/pages/sms-sign-up
Element.footer__legal-links > a[href$="accessibility-statement"]
Accessible nameAccessibility
Markup
<a href="/pages/accessibility-statement">Accessibility</a>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref LVM8KT
Affected pagehttps://www.curehydration.com/cart
Elementa[aria-controls="desktop-menu-1"]
Accessible nameShop
Markup
<a class="header__linklist-link link--animated" href="/collections/shop-all" aria-controls="desktop-menu-1" aria-expanded="false">Shop</a>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref KYJHIZ
Affected pagehttps://www.curehydration.com/
Elementli[data-item-title="Quiz"] > .header__linklist-link.link--animated
Accessible nameQuiz
Markup
<a class="header__linklist-link link--animated" href="https://www.curehydration.com/apps/vf-product-reco/5qsitjf1">Quiz</a>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref L5BEF5
Affected pagehttps://www.curehydration.com/pages/contact
Elementdiv[data-optimizer="Shopify"]
Accessible nameâ–¡
Markup
<div style="position:absolute;font-size:1200px;line-height:1;word-wrap:break-word;top:0;left:0;width:96vw;height:96vh;max-width:99vw;max-height:99vh;pointer-events:none;z-index:99999999999;color:transparent;overflow:hidden;" data-optimizer="Shopify">â–¡</div>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref 744JL5
Affected pagehttps://www.curehydration.com/pages/contact
Element.header__linklist-link.link--animated[href$="rewards"]
Accessible nameRewards
Markup
<a class="header__linklist-link link--animated" href="/pages/rewards">Rewards</a>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref FY112Z
Affected pagehttps://www.curehydration.com/a/account/login
Element.custom-announcement-3.marquee__item:nth-child(3) > a[href$="strawberry-kiwi"]
Accessible nameGET UP TO 20% OFF WHEN YOU BUNDLE
Markup
<a href="/products/strawberry-kiwi">GET UP TO 20% OFF WHEN YOU BUNDLE</a>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref O6PC0V
Affected pagehttps://www.curehydration.com/a/account/login
Element.custom-announcement-1.marquee__item:nth-child(4)
Accessible nameSCOOP UP PEACH MANGO BULK JARS - 15% OFF WITH CODE PEACHMANGO15
Markup
<div class="marquee__item custom-announcement-1">
            SCOOP UP PEACH MANGO BULK JARS -
            
              <a href="/products/peach-mango-bulk-jar">15% OFF WITH CODE PEACHMANGO15</a>
            
          </div>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref N9SH4A
Affected pagehttps://www.curehydration.com/a/account/login
Element.custom-announcement-1.marquee__item:nth-child(4) > a[href$="peach-mango-bulk-jar"]
Accessible name15% OFF WITH CODE PEACHMANGO15
Markup
<a href="/products/peach-mango-bulk-jar">15% OFF WITH CODE PEACHMANGO15</a>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref H7TDYN
Affected pagehttps://www.curehydration.com/
Element.button--primary.button[target="_blank"]
Accessible namefollow us @cure, this link opens in new window
Markup
<a href="https://www.instagram.com/cure/" class="button button--primary" target="_blank" aria-label="follow us @cure, this link opens in new window">follow us @cure</a>
Affected pages/ /cart
Component · Ref IMJC38
Affected pagehttps://www.curehydration.com/
Element.testimonials-pair:nth-child(8) > .testimonials-pair__quote-wrapper > .testimonials-pair__quote-card > .testimonials-pair__author > .testimonials-pair__verified
Accessible nameVerified Buyer
Markup
<p class="testimonials-pair__verified">
Component · Ref AN67UB
Affected pagehttps://www.curehydration.com/
Element.testimonials-pair:nth-child(7) > .testimonials-pair__quote-wrapper > .testimonials-pair__quote-card > .testimonials-pair__category-pill
Accessible nameFOR YOUR DAILY ROUTINE
Markup
<div class="testimonials-pair__category-pill">
                      FOR YOUR DAILY ROUTINE
                    </div>
Component · Ref EBB587
Affected pagehttps://www.curehydration.com/
Element.testimonials-pair:nth-child(7) > .testimonials-pair__media-wrapper > .testimonials-pair__handle
Accessible name@courtmcewan
Markup
<p class="testimonials-pair__handle">
                  @courtmcewan
                </p>
Component · Ref 616UNC
Affected pagehttps://www.curehydration.com/
Elementbutton[data-cat="kids-hydration"] > .pe__cat-name
Accessible nameKids Hydration
Markup
<span class="pe__cat-name">Kids Hydration</span>
Component · Ref O7Z8CU
Affected pagehttps://www.curehydration.com/
Element.subscribe-save-section__tier:nth-child(2) > .subscribe-save-section__tier-info > .subscribe-save-section__tier-detail
Accessible name15% subscription + 10% bundle
Markup
<span class="subscribe-save-section__tier-detail">15% subscription + 10% bundle</span>
Component · Ref Q78F0H
Affected pagehttps://www.curehydration.com/
Element.subscribe-save-section__tier--highlight > .subscribe-save-section__tier-right > .subscribe-save-section__tier-discount
Accessible name32% off
Markup
<span class="subscribe-save-section__tier-discount">
                  32% off
                </span>
Component · Ref R43SNH
Affected pagehttps://www.curehydration.com/
Element.testimonials-carousel__subheading
Accessible name12,000+ verified reviews
Markup
<p class="testimonials-carousel__subheading">12,000+ verified reviews</p>
Component · Ref QE8ZI8
Affected pagehttps://www.curehydration.com/
Element.subscribe-save-section__tier--highlight > .subscribe-save-section__tier-info > .subscribe-save-section__tier-detail
Accessible name15% subscription + 20% bundle
Markup
<span class="subscribe-save-section__tier-detail">15% subscription + 20% bundle</span>
Component · Ref 4CAB8O
Affected pagehttps://www.curehydration.com/cart
Elementh2
Accessible nameReturn policy
Markup
<h2 class="heading heading--small">Return policy</h2>
Affected pages/pages/contact /cart
Component · Ref 6D4CJ3
Affected pagehttps://www.curehydration.com/pages/contact
Element.content-box--large > p
Accessible nameor contact us directly at [email removed]
Markup
<p>or contact us directly at&nbsp;<a href="mailto:[email removed]" target="_blank" title="mailto:[email removed]">[email removed]</a></p>
Affected pages/pages/contact /pages/sms-sign-up
Component · Ref VL241
Affected pagehttps://www.curehydration.com/pages/sms-sign-up
Elementa[href$="referrals"]
Accessible nameReferrals
Markup
<a href="/pages/referrals" class="link--faded">Referrals</a>
Affected pages/pages/contact /pages/sms-sign-up
Component · Ref QM4MJM
Affected pagehttps://www.curehydration.com/
Element.first-row > td:nth-child(2) > .custom-chart-data-cell-label
Accessible namecalories
Markup
<div class="custom-chart-data-cell-label">calories</div>
Component · Ref Z7IVUQ
Affected pagehttps://www.curehydration.com/
Element.testimonials-pair:nth-child(7) > .testimonials-pair__quote-wrapper > .testimonials-pair__quote-card > .testimonials-pair__stars
Accessible name5 star review★★★★★
Markup
<div class="testimonials-pair__stars"><span class="patrol-sr-only">5 star review</span>★★★★★</div>
Component · Ref 5R30I5
Affected pagehttps://www.curehydration.com/
Elementtr:nth-child(2) > td:nth-child(2) > .custom-chart-data-cell-label
Accessible nameadded sugar
Markup
<div class="custom-chart-data-cell-label">added sugar</div>
Component · Ref VL5Y6C
Affected pagehttps://www.curehydration.com/
Element.first-row > td:nth-child(4) > .custom-chart-data-cell-value
Accessible name45
Markup
<div class="custom-chart-data-cell-value">45</div>
Component · Ref X1FQ5L
Affected pagehttps://www.curehydration.com/
Elementth:nth-child(3) > .custom-chart-head-cell-value
Accessible nameCoconut Water
Markup
<div class="custom-chart-head-cell-value">Coconut Water</div>

Showing 25 representative examples · 43 more affected elements not shown

High

Hidden elements can still receive keyboard focus

WCAG 2.4.3 (A)26 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 26 affected elements
Component · Ref P1VT9G
Affected pagehttps://www.curehydration.com/cart
Elementp#rc_link_container_fake > a
Accessible nameManage Subscriptions
Markup
<a href="/apps/customers/portal" class="link-bar__link link--animated ">Manage Subscriptions</a>
Affected pages/pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref KIMNQ7
Affected pagehttps://www.curehydration.com/pages/contact
Elementbody > div:nth-of-type(10) > div > ul > li:nth-of-type(1) > a
Accessible nameOrders
Markup
<a href="/account" class="link-bar__link link--animated ">Orders</a>
Affected pages/pages/contact /a/account/login /pages/sms-sign-up /cart
Component · Ref RGJXWN
Affected pagehttps://www.curehydration.com/
Elementdiv > div:nth-of-type(3) > div:nth-of-type(2) > div > div:nth-of-type(2) > a
Accessible nameShop Kids- go to fruit punch
Markup
<a class="button button--primary ss-primary-btn" href="/products/fruit-punch">Shop Kids<span class="patrol-sr-only">- go to fruit punch</span></a>
Component · Ref TWBRA7
Affected pagehttps://www.curehydration.com/
Elementsection#pe-template--22886224888057__product_explorer_M83yhg > div:nth-of-type(2) > div:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(2) > button:nth-of-type(1)
Accessible namePink Lemonade
Markup
<button class="pe__flavor-btn" data-flavor-color="#fb7f90" data-flavor-name="Pink Lemonade" data-flavor-index="11" data-variants="[{&quot;id&quot;:46336485425401,&quot;title&quot;:&quot;14 Pack&quot;,&quot;price&quot;:2399,&quot;available&quot;:true,&quot;selling_plan_id&quot;:null,&quot;selling_plan_price&quot;:2039},{&quot;id&quot;:46416438722809,&quot;title&quot;:&quot;28 Pack&quot;,&quot;price&quot;:4238,&quot;available&quot;:true,&quot;selling_plan_id&quot;:null,&quot;selling_plan_price&quot;:3602}]" data-selling-plan="4326293753" data-flavor-img="//www.curehydration.com/cdn/shop/files/gr…
High

Interactive controls are not keyboard-accessible

WCAG 2.1.1 (A)10 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 10 affected elements
Component · Ref DK4MV6
Affected pagehttps://www.curehydration.com/pages/sms-sign-up
Elementdiv#dynamic-checkout-cart > shopify-accelerated-checkout-cart > div > ul > li:nth-of-type(2) > div
Rolebutton
Markup
<div class="wallet-cart-button wallet-cart-button__skeleton" role="button" disabled="" aria-hidden="true">&nbsp;</div>
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
High

Interactive controls must not be nested

WCAG 4.1.2 (A)1 instance1 inspected page

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 1 affected element
Component · Ref P5VALB
Affected pagehttps://www.curehydration.com/
Element.pe__row
Accessible nameSIZE 14 Pack 14 Pack28 Pack 14 Pack28 Pack
Rolebutton
Markup
<div class="pe__row" data-size-row="" role="button" tabindex="0" aria-haspopup="listbox" aria-expanded="false">
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 1WTAKA
Affected pagehttps://www.curehydration.com/
Elementsection#shopify-section-announcement-bar-marquee > style
Accessible name/* Nuke wrapper padding/margins for this section */ #shopify-section-announcement-bar-marquee, #shopify-section-announcement-bar-marquee.shopify-section--announcement-bar, .shopify-section--announcement-bar { margin: 0 !important; padding: 0 !important; } #shopify-section-announcement-bar-marquee { z-index: 5; /* Make sure it goes over header */position: relative;top: 0; } @media screen and (min-width: 741px) { :root { --enable-sticky-announcement-bar: 0; } #shopify-section-announcement-bar-marquee {position: relative;} } :root { --enable-sticky-announcement-bar: 0; } /* Base bar */ .announcement-bar--announcement-bar-marquee { background: #f5f2f1; color: #5d554d; white-space: nowrap; /* No extra space */ margin: 0; padding: 0 16px; height: 50px; line-height: 50px; /* vertically center single-line text */ overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: inherit; } /* Extra override in case .bold-heading adds anything */ .announcement-bar--announcement-bar-marquee.bold-heading { margin: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; height: 50px; line-height: 50px; } /* Marquee track */ .announcement-bar--announcement-bar-marquee .marquee__inner { display: inline-flex; align-items: center; white-space: nowrap; will-change: transform; animation: marquee-scroll-announcement-bar-marquee var(--marquee-duration, 30s) linear infinite; } .announcement-bar--announcement-bar-marquee .marquee__item { flex: 0 0 auto; } /* Padding logic per message count (desktop) */ .announcement-bar--announcement-bar-marquee .custom-announcement-1, .announcement-bar--announcement-bar-marquee .custom-announcement-2, .announcement-bar--announcement-bar-marquee .custom-announcement-3 { padding: 0 100px; } /* Mobile padding + speed tweak */ @media only screen and (max-width: 741px){ .announcement-bar--announcement-bar-marquee .custom-announcement-1, .announcement-bar--announcement-bar-marquee .custom-announcement-2, .announcement-bar--announcement-bar-marquee .custom-announcement-3 { padding: 0 50px; } .announcement-bar--announcement-bar-marquee .marquee__inner { --marquee-duration: 35s; } } .announcement-bar--announcement-bar-marquee a { transition: color 0.3s ease; text-transform: capitalize; text-decoration: underline; } .announcement-bar--announcement-bar-marquee a:hover { color: #3e7b8f; } @keyframes marquee-scroll-announcement-bar-marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
Markup
<style>
  /* Nuke wrapper padding/margins for this section */
  #shopify-section-announcement-bar-marquee,
  #shopify-section-announcement-bar-marquee.shopify-section--announcement-bar,
  .shopify-section--announcement-bar {
    margin: 0 !important;
    padding: 0 !important;
  }

  #shopify-section-announcement-bar-marquee {
    z-index: 5; /* Make sure it goes over header */position: relative;top: 0;
  }

  @media screen and (min-width: 741px) {
    :root {
      --enable-sticky-announcement-bar: 0;
    }

    #shopify-section-announcement-bar-marquee {position: relative;}
  }

  :root {
  …
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Medium

Page has no level-one heading

WCAG 1.3.1 (A)3 instances3 inspected pages

The page exposes no <h1>, so its topic is not conveyed in the heading structure.

Why it matters

The page exposes no <h1>, so its topic is not conveyed in the heading structure.

Recommended correction

Add a single descriptive <h1> that names the page's primary purpose.

View 3 affected elements
Component · Ref WOU97H
Affected pagehttps://www.curehydration.com/pages/sms-sign-up
Elementhtml > body
Accessible nameâ–¡ if(navigator.platform =="Linux x86_64"){ YETT_BLACKLIST = [/klaviyo/,/gtag/,/gtm/,/jquery.min/,/fbevents/,/analytics/,/muse/,/pptm/,/app/,/rivo-app-embed/,/form-builder-script/,/app-legacy.BSNLtrtN/,/ba_loy_init/,/ba_rivo_api/,/fbevents/,/cure-hydration/,/fundle/,/widget/,/wizard-widget/,/shopify.MGZmMTBjMi4wLjAuMTYz/,/jquery-3.6.0.min/,/jquery.fancybox.min/,/input/,/pl.2.2.min/,/shopify-afterpay-javascript/,/otSDKStub/,/blocking-shopify/]; !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.yett={})}(this,function(t){"use strict";var e={blacklist:window.YETT_BLACKLIST,whitelist:window.YETT_WHITELIST},r={blacklisted:[]},n=function(t,r){return t&&(!r||"javascript/blocked"!==r)&&(!e.blacklist||e.blacklist.some(function(e){return e.test(t)}))&&(!e.whitelist||e.whitelist.every(function(e){return!e.test(t)}))},i=function(t){var r=t.getAttribute("src");return e.blacklist&&e.blacklist.every(function(t){return!t.test(r)})||e.whitelist&&e.whitelist.some(function(t){return t.test(r)})},c=new MutationObserver(function(t){t.forEach(function(t){for(var e=t.addedNodes,i=function(t){var i=e[t];if(1===i.nodeType&&"SCRIPT"===i.tagName){var c=i.src,o=i.type;if(n(c,o)){r.blacklisted.push(i.cloneNode()),i.type="javascript/blocked";i.addEventListener("beforescriptexecute",function t(e){"javascript/blocked"===i.getAttribute("type")&&e.preventDefault(),i.removeEventListener("beforescriptexecute",t)}),i.parentElement.removeChild(i)}}},c=0;c<e.length;c++)i(c)})});c.observe(document.documentElement,{childList:!0,subtree:!0});var o=document.createElement;document.createElement=function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];if("script"!==e[0].toLowerCase())return o.bind(document).apply(void 0,e);var i=o.bind(document).apply(void 0,e),c=i.setAttribute.bind(i);return Object.defineProperties(i,{src:{get:function(){return i.getAttribute("src")},set:function(t){return n(t,i.type)&&c("type","javascript/blocked"),c("src",t),!0}},type:{set:function(t){var e=n(i.src,i.type)?"javascript/blocked":t;return c("type",e),!0}}}),i.setAttribute=function(t,e){"type"===t||"src"===t?i[t]=e:HTMLScriptElement.prototype.setAttribute.call(i,t,e)},i};var l=function(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return Array.from(t)},a=new RegExp("[|\\{}()[\\]^$+?.]","g");t.unblock=function(){for(var t=arguments.length,n=Array(t),o=0;o<t;o++)n[o]=arguments[o];n.length<1?(e.blacklist=[],e.whitelist=[]):(e.blacklist&&(e.blacklist=e.blacklist.filter(function(t){return n.every(function(e){return!t.test(e)})})),e.whitelist&&(e.whitelist=[].concat(l(e.whitelist),l(n.map(function(t){var r="."+t.replace(a,"\\$&")+".*";return e.whitelist.find(function(t){return t.toString()===r.toString()})?null:new RegExp(r)}).filter(Boolean)))));for(var s=document.querySelectorAll('script[type="javascript/blocked"]'),u=0;u<s.length;u++){var p=s[u];i(p)&&(p.type="application/javascript",r.blacklisted.push(p),p.parentElement.removeChild(p))}var d=0;[].concat(l(r.blacklisted)).forEach(function(t,e){if(i(t)){var n=document.createElement("script");n.setAttribute("src",t.src),n.setAttribute("type","application/javascript"),document.head.appendChild(n),r.blacklisted.splice(e-d,1),d++}}),e.blacklist&&e.blacklist.length<1&&c.disconnect()},Object.defineProperty(t,"__esModule",{value:!0})});} { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.curehydration.com" },{ "@type": "ListItem", "position": 2, "name": "SMS Sign Up", "item": "https://www.curehydration.com/pages/sms-sign-up" }] } /* Typography (heading) */ /* Typography (body) */ :root {--heading-color: 93, 85, 77; --text-color: 93, 85, 77; --background: 255, 255, 255; --secondary-background: 250, 249, 249; --border-color: 231, 230, 228; --border-color-darker: 190, 187, 184; --success-color: 62, 123, 143; --success-background: 216, 229, 233; --error-color: 222, 42, 42; --error-background: 253, 240, 240; --primary-button-background: 93, 85, 77; --primary-button-text-color: 255, 255, 255; --secondary-button-background: 62, 123, 143; --secondary-button-text-color: 255, 255, 255; --product-star-rating: 93, 85, 77; --product-on-sale-accent: 62, 123, 143; --product-sold-out-accent: 62, 123, 143; --product-custom-label-background: 93, 85, 77; --product-custom-label-text-color: 255, 255, 255; --product-custom-label-2-background: 62, 123, 143; --product-custom-label-2-text-color: 255, 255, 255; --product-low-stock-text-color: 222, 42, 42; --product-in-stock-text-color: 46, 158, 123; --loading-bar-background: 93, 85, 77; /* We duplicate some "base" colors as root colors, which is useful to use on drawer elements or popover without. Those should not be overridden to avoid issues */ --root-heading-color: 93, 85, 77; --root-text-color: 93, 85, 77; --root-background: 255, 255, 255; --root-border-color: 231, 230, 228; --root-primary-button-background: 93, 85, 77; --root-primary-button-text-color: 255, 255, 255; --base-font-size: 16px; --heading-font-family: "system_ui", -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --heading-font-weight: 400; --heading-font-style: normal; --heading-text-transform: normal; --text-font-family: "system_ui", -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --text-font-weight: 400; --text-font-style: normal; --text-font-bold-weight: 700; /* Typography (font size) */ --heading-xxsmall-font-size: 11px; --heading-xsmall-font-size: 11px; --heading-small-font-size: 12px; --heading-large-font-size: 56px; --heading-h1-font-size: 56px; --heading-h2-font-size: 30px; --heading-h3-font-size: 26px; --heading-h4-font-size: 24px; --heading-h5-font-size: 20px; --heading-h6-font-size: 16px; /* Control the look and feel of the theme by changing radius of various elements */ --button-border-radius: 30px; --block-border-radius: 0px; --block-border-radius-reduced: 0px; --color-swatch-border-radius: 100%; /* Button size */ --button-height: 48px; --button-small-height: 40px; /* Form related */ --form-input-field-height: 48px; --form-input-gap: 16px; --form-submit-margin: 24px; /* Product listing related variables */ --product-list-block-spacing: 32px; /* Video related */ --play-button-background: 255, 255, 255; --play-button-arrow: 93, 85, 77; /* RTL support */ --transform-logical-flip: 1; --transform-origin-start: left; --transform-origin-end: right; /* Other */ --zoom-cursor-svg-url: url(//www.curehydration.com/cdn/shop/t/204/assets/zoom-cursor.svg?v=177457269756026600421788889105); --arrow-right-svg-url: url(//www.curehydration.com/cdn/shop/t/204/assets/arrow-right.svg?v=154628222064777959041788889105); --arrow-left-svg-url: url(//www.curehydration.com/cdn/shop/t/204/assets/arrow-left.svg?v=64218004981877758571788889105); /* Some useful variables that we can reuse in our CSS. Some explanation are needed for some of them: - container-max-width-minus-gutters: represents the container max width without the edge gutters - container-outer-width: considering the screen width, represent all the space outside the container - container-outer-margin: same as…[truncated by Evolize: exceeded D1 value limit]
Markup
<body class="no-focus-outline  features--image-zoom page-page-postscript-curelp-subscribe-template" data-instant-allow-query-string=""><div style="position:absolute;font-size:1200px;line-height:1;word-wrap:break-word;top:0;left:0;width:96vw;height:96vh;max-width:99vw;max-height:99vh;pointer-events:none;z-index:99999999999;color:transparent;overflow:hidden;" data-optimizer="Shopify">â–¡</div>
<script src="//cdn.shopify.com/s/files/1/0574/1140/3910/files/function.js" type="text/javascript"></script><script src="//cdn.shopify.com/s/files/1/0574/1140/3910/files/pre-loader.js" type="text/javascript…
Affected pages/pages/contact /a/account/login /pages/sms-sign-up
Medium

Elements must only use permitted ARIA attributes

WCAG 4.1.2 (A)1 instance1 inspected page

Elements must only use permitted ARIA attributes

Why it matters

Elements must only use permitted ARIA attributes

Recommended correction

Review the affected element and correct the reported accessibility issue.

View 1 affected element
Component · Ref 7ETUEK
Affected pagehttps://www.curehydration.com/
Element#ingredient-carousel-template--22886224888057__ingredient_carousel_xjN3Dq
Accessible nameIngredient carousel
Markup
<div class="ingredient-carousel" id="ingredient-carousel-template--22886224888057__ingredient_carousel_xjN3Dq" tabindex="0" aria-label="Ingredient carousel">
Medium

Form fields use placeholder text as the only label

WCAG 1.3.1 (A)1 instance1 inspected page

Fields rely on placeholder text instead of a real label. The placeholder disappears once the user types, and it is not exposed as a programmatic label.

Why it matters

Fields rely on placeholder text instead of a real label. The placeholder disappears once the user types, and it is not exposed as a programmatic label.

Recommended correction

Add a persistent <label> associated with each field. Keep the placeholder for example text only, not as the label.

View 1 affected element
Component · Ref 9F3B5F
Affected pagehttps://www.curehydration.com/pages/sms-sign-up
Elementinput#ps__phone-subscribe
Markup
<input id="ps__phone-subscribe" name="phone" type="phone" placeholder="Phone Number" style="width: 100%; padding: 0.75em; font-size: 1.5em" autofocus="">
Medium

<video> elements must have captions

WCAG 1.2.2 (A)9 instances1 inspected page

<video> elements must have captions

Why it matters

<video> elements must have captions

Recommended correction

Review the affected element and correct the reported accessibility issue.

View 9 affected elements
Component · Ref 67RQDX
Affected pagehttps://www.curehydration.com/
Element.testimonials-pair[data-clone="after"]:nth-child(14) > .testimonials-pair__media-wrapper > .testimonials-pair__media--has-video.testimonials-pair__media > video
Accessible nameBlonde woman standing at a kitchen counter with finger to lips, thoughtful; overlaid text "Thinking of grabbing a Gatorade?!"
Markup
<video playsinline="" autoplay="autoplay" loop="loop" muted="muted" class="testimonials-pair__m..." preload="metadata" aria-label="Blonde woman standin..." poster="//www.curehydration...." loading="lazy">
Low

Low-quality alternative text

WCAG 1.1.1 (A)30 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 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 30 affected elements
Component · Ref 2GFUZS
Affected pagehttps://www.curehydration.com/pages/contact
Elementdiv#cmpanel-mega_menu_kids_83HwAi > a > img
Markup
<img class="cure-mega__promo-img" loading="lazy" src="//www.curehydration.com/cdn/shop/files/Link_3_600x.jpg?v=1776255800" alt="Bundle &amp; Save">
Affected pages/ /pages/contact /a/account/login /pages/sms-sign-up /cart
Low

Video may be missing captions

WCAG 1.2.2 (A)9 instances1 inspected page

A video element has no captions or subtitles track. Whether captions are needed depends on the audio content and requires manual review.

Why it matters

A video element has no captions or subtitles track. Whether captions are needed depends on the audio content and requires manual review.

Recommended correction

Provide a synchronized captions track (<track kind="captions">) for video with meaningful audio.

View 9 affected elements
Component · Ref SA3Q76
Affected pagehttps://www.curehydration.com/
Elementdiv:nth-of-type(2) > div > div:nth-of-type(18) > div:nth-of-type(1) > div > video
Accessible nameWoman standing up from a chair beside a laptop on a wooden table in a sunlit dining area with overlaid text Did you know...
Markup
<video playsinline="" autoplay="autoplay" loop="loop" muted="muted" class="testimonials-pair__media-video" preload="metadata" aria-label="Woman standing up from a chair beside a laptop on a wooden table in a sunlit dining area with overlaid text Did you know..." poster="//www.curehydration.com/cdn/shop/files/preview_images/33a3340ec9f449758176f7c37c2c1c39.thumbnail.0000000000_600x.jpg?v=1710883930" loading="lazy"><source src="//www.curehydration.com/cdn/shop/videos/c/vp/33a3340ec9f449758176f7c37c2c1c39/33a3340ec9f449758176f7c37c2c1c39.HD-720p-1.6Mbps-26078882.mp4?v=0" type="video/mp4"><img alt…

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.