Public accessibility assessment

Accessibility issues detected on hidratespark.com

Evolize inspected 5 public pages on hidratespark.com and detected 44 automatically identifiable accessibility findings.

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

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

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

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

    Buttons have no accessible name

    WCAG 4.1.2 (A) · 1 inspected page · 2 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 →
  3. High

    Text has insufficient colour contrast

    WCAG 1.4.3 (AA) · 5 inspected pages · 32 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 →
  4. High

    Zooming and scaling must not be disabled

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

    Zooming and scaling must not be disabled

    Recommended action

    Review the affected element and correct the reported accessibility issue.

    View technical evidence →
  5. High

    Text has insufficient colour contrast

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

03 · WCAG criteria affected

CriterionNameLevelFindingsPagesReach
1.4.3Contrast (Minimum)AA2355 / 5
1.2.2Captions (Prerecorded)A511 / 5
2.4.3Focus OrderA544 / 5
4.1.2Name, Role, ValueA555 / 5
2.1.1KeyboardA311 / 5
1.1.1Non-text ContentA111 / 5
1.3.1Info and RelationshipsA111 / 5
1.4.4Resize TextAA155 / 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)4 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 4 affected elements
Component · Ref JSP1OV
Affected pagehttps://hidratespark.com/
Element#shopify-section--template--19561832448109__card_slider_transition_hBzXVU > .section-bg-color.section-stack > .nav-arrow-container.container > .arrows > .arrow-right.arrow > button[onclick="scrollCardsRight()"]
Markup
<button onclick="scrollCardsRight()">
Component · Ref M472DE
Affected pagehttps://hidratespark.com/
Element#shopify-section--template--19561832448109__card_slider_transition_xNUDJA > .section-bg-color.section-stack > .nav-arrow-container.container > .arrows > .arrow-left.arrow > .disabled[onclick="scrollCardsLeft()"]
Markup
<button class="disabled" onclick="scrollCardsLeft()">
High

Text has insufficient colour contrast

WCAG 1.4.3 (AA)105 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 105 affected elements
Component · Ref 8KB1H2
Affected pagehttps://hidratespark.com/
Elementa:nth-child(4)
Accessible namePrivacy Policy
Markup
<a href="https://hidratespark.com/pages/privacy-policy">Privacy Policy </a>
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion /products/gift-card /cart
Component · Ref 4LYC63
Affected pagehttps://hidratespark.com/en-ca/pages/app-account-deletion
Element#rich-text-01KVSF87QN9S4G8S6FPNH8DMXD > p > span > strong
Accessible nameSpin to Win
Markup
<strong style="font-weight: 700;">Spin to Win</strong>
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion /products/gift-card
Component · Ref ODCT1I
Affected pagehttps://hidratespark.com/products/gift-card
Elementdiv > p > a:nth-child(1)
Accessible nameReturn Policy
Markup
<a href="https://hidratespark.com/pages/return-policy">Return Policy </a>
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion /products/gift-card /cart
Component · Ref 8KB1HN
Affected pagehttps://hidratespark.com/
Elementp > a:nth-child(3)
Accessible nameTerms of Service
Markup
<a href="https://hidratespark.com/pages/terms-of-service">Terms of Service </a>
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion /products/gift-card /cart
Component · Ref ZGX2EU
Affected pagehttps://hidratespark.com/products/gift-card
Element.is-selected.text-xs.bold > a
Accessible nameFree shipping for orders over $100
Markup
<a href="/products/30-oz-hidratespark-pro-2">Free shipping for orders over $100</a>
Affected pages/ /products/gift-card
Component · Ref 5O5FH9
Affected pagehttps://hidratespark.com/products/gift-card
Elementspan[data-content="2019-06-19 00:00:00 UTC"]
Accessible name06/19/2019
Markup
<span class="jdgm-rev__timestamp" data-content="2019-06-19 00:00:00 UTC">06/19/2019</span>
Component · Ref JGU5RH
Affected pagehttps://hidratespark.com/
Element.go1913766967
Accessible nameSpin the wheel!
Markup
<button type="button" tabindex="0" data-action-id="01KVSF87NGW9ZHJ1YHSKK4RNZM" class="needsclick go1913766967 go4033861592 klaviyo-form-button kl-private-reset-css-Xuajs1">Spin the wheel!</button>
Component · Ref UE8VQZ
Affected pagehttps://hidratespark.com/products/gift-card
Element.text-with-icon > .text-sm.bold
Accessible nameShipping
Markup
<span class="bold text-sm">Shipping</span>
Component · Ref KGCZHL
Affected pagehttps://hidratespark.com/products/gift-card
Element.prose.text-sm > p
Accessible nameShort content about your shipping rates or discounts.
Markup
<p>Short content about your shipping rates or discounts.</p>
Component · Ref N4O5U0
Affected pagehttps://hidratespark.com/products/gift-card
Elementdiv[data-rating="3"] > .jdgm-histogram__frequency
Accessible name0
Markup
<div class="jdgm-histogram__frequency">0</div>
Component · Ref IVR02A
Affected pagehttps://hidratespark.com/
Element.text-with-icon.group[href$="pro-2"] > .reversed-link
Accessible nameView all
Markup
<span class="reversed-link">View all</span>
Component · Ref 2KKS4V
Affected pagehttps://hidratespark.com/
Element#card_ejaMc4 > .card > .card-text > .card-title
Accessible nameDrink Glow.
Markup
<p class="card-title">Drink Glow.</p>
Component · Ref DU8UE9
Affected pagehttps://hidratespark.com/
Element.go647011776 > .go3928867695.needsclick.kl-private-reset-css-Xuajs1 > .go777374289.go50332092.needsclick
Accessible name20% Off
Markup
<div class="needsclick go777374289 go50332092 kl-private-reset-css-Xuajs1">20% Off</div>
Component · Ref G4CCIM
Affected pagehttps://hidratespark.com/
Element.go3512828545 > .go3928867695.needsclick.kl-private-reset-css-Xuajs1 > .go777374289.go50332092.needsclick
Accessible name10% Off
Markup
<div class="needsclick go777374289 go50332092 kl-private-reset-css-Xuajs1">10% Off</div>
Component · Ref K31G66
Affected pagehttps://hidratespark.com/
Element.go3656611704 > .go3928867695.needsclick.kl-private-reset-css-Xuajs1 > .go777374289.go50332092.needsclick
Accessible name20% Off
Markup
<div class="needsclick go777374289 go50332092 kl-private-reset-css-Xuajs1">20% Off</div>
Component · Ref 8GO4T5
Affected pagehttps://hidratespark.com/
Element.go1940505463 > .go3928867695.needsclick.kl-private-reset-css-Xuajs1 > .go777374289.go50332092.needsclick
Accessible name5% Off
Markup
<div class="needsclick go777374289 go50332092 kl-private-reset-css-Xuajs1">5% Off</div>
Component · Ref BP8A47
Affected pagehttps://hidratespark.com/
Element.go3048602010 > .go3928867695.needsclick.kl-private-reset-css-Xuajs1 > .go777374289.go50332092.needsclick
Accessible name5% Off
Markup
<div class="needsclick go777374289 go50332092 kl-private-reset-css-Xuajs1">5% Off</div>
Component · Ref N3A1PQ
Affected pagehttps://hidratespark.com/
Element.vl-desktop-text.bold
Accessible nameHidrateSpark PRO
Markup
<p class="bold vl-desktop-text">HidrateSpark PRO</p>
Component · Ref VSIXG8
Affected pagehttps://hidratespark.com/
Element.vl-desktop-text:nth-child(4) > p
Accessible nameThe last bottle you'll ever need.
Markup
<p>The last bottle you'll ever need.</p>
Component · Ref ZJCQXX
Affected pagehttps://hidratespark.com/
Elementh1 > span > strong
Accessible nameGive the wheel a whirl and see what you land on.
Markup
<strong style="font-weight: 700;">Give the wheel a whirl and see what you land on. </strong>
Component · Ref 8D2O1J
Affected pagehttps://hidratespark.com/
Element.go1927642286 > .go3928867695.needsclick.kl-private-reset-css-Xuajs1 > .go777374289.go50332092.needsclick
Accessible name10% Off
Markup
<div class="needsclick go777374289 go50332092 kl-private-reset-css-Xuajs1">10% Off</div>
Component · Ref 3P9A7F
Affected pagehttps://hidratespark.com/
Element.h1.mbl-h2.vl-desktop-text
Accessible nameIntelligent. Accurate.
Markup
<p class="h1 mbl-h2 vl-desktop-text">Intelligent. Accurate.</p>
Component · Ref 2PK7TF
Affected pagehttps://hidratespark.com/
Element.button--lg
Accessible nameBuy Now
Markup
<a class="button button--lg button--outline" style="--button-text-color: 255 255 255;--button-outline-color: 255 255 255;" href="/products/32-oz-hidratespark-pro-2">Buy Now</a>
High

Zooming and scaling must not be disabled

WCAG 1.4.4 (AA)5 instances5 inspected pages

Zooming and scaling must not be disabled

Why it matters

Zooming and scaling must not be disabled

Recommended correction

Review the affected element and correct the reported accessibility issue.

View 5 affected elements
Component · Ref OVGAML
Affected pagehttps://hidratespark.com/en-ca/pages/app-account-deletion
Elementmeta[name="viewport"]
Markup
<meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0">
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion /products/gift-card /cart
High

Modal dialog does not trap keyboard focus

WCAG 2.4.3 (A)3 instances3 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

To fix this issue, ensure that the modal dialog traps keyboard focus by setting the `tabindex` attribute to `-1` on the dialog container and implementing a focus trap using JavaScript. This will prevent keyboard and screen reader users from tabbing out of the dialog into hidden page content.

View 3 affected elements
Component · Ref 11TPSB
Affected pagehttps://hidratespark.com/pages/app-account-deletion
Elementhtml > body > div:nth-of-type(7) > div:nth-of-type(2) > div:nth-of-type(2)
Accessible namePOPUP Form
Roledialog
Markup
<div role="dialog" aria-modal="true" aria-label="POPUP Form" class="needsclick  kl-private-reset-css-Xuajs1" style="display: flex; z-index: 90000; position: fixed; left: 0px; top: 0px; width: 100%; height: 100%; justify-content: center; align-items: center; overflow: clip auto; background-color: rgba(20, 20, 20, 0.6); animation-timing-function: ease; animation-play-state: running; animation-iteration-count: 1; animation-fill-mode: both; animation-delay: 0.25s; animation-duration: 0.35s; animation-name: klaviyo-fadein;" data-kl-scroll-locking-modal="true"><div class="needsclick  kl-private-rese…
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion
High

Interactive controls are not keyboard-accessible

WCAG 2.1.1 (A)15 instances1 inspected page

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 15 affected elements
Component · Ref FKE82C
Affected pagehttps://hidratespark.com/
Elementli#card_FtkQyG
Accessible name24 hrs Cold, Vacuum Insulated Drink Colder. Drink Colder. Vacuum-insulated stainless steel keeps drinks cold for 24 hours. Accurate sensing even with ice.
Markup
<li class="gallery-item" id="card_FtkQyG" onclick="openCardModal(card_FtkQyG)">
              
              <div class="card">
                <div class="card-text" style="color: #000000;">
                  <p class="card-subtitle">24 hrs Cold, Vacuum Insulated</p>
                  <p class="card-title">Drink Colder.</p>
                  
                    <div class="modal-opener">
                      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" class="card-modal-button">
                          <path d="M17.25,8.51H11.5V2.75A1.5,1.5,0,0,0,10,1.25h0a1.5,1.5,0,0,0-1.5…
High

Images lack text alternatives

WCAG 1.1.1 (A)1 instance1 inspected page

Informative images have no alternative text, so their meaning is unavailable to people using assistive technology.

Why it matters

Informative images have no alternative text, so their meaning is unavailable to people using assistive technology.

Recommended correction

Add a concise alt attribute describing each informative image. Mark purely decorative images with alt="" so assistive technology skips them.

View 1 affected element
Component · Ref OJJ7BD
Affected pagehttps://hidratespark.com/
Elementvideo[playsinline="true"] > img
Markup
<img src="//hidratespark.com/cdn/shop/files/preview_images/798b3c1dec82486f8afc0c70845f41e2.thumbnail.0000000000_800x.jpg?v=1741879981">
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 L86BT1
Affected pagehttps://hidratespark.com/products/gift-card
Element.jdgm-rev-widg__summary-stars
Accessible nameAverage rating is 5.00 stars
Roleimg
Markup
<div class="jdgm-rev-widg__summary-stars" aria-label="Average rating is 5.00 stars" role="img">
High

Scrollable region must have keyboard access

WCAG 2.1.1 (A)3 instances1 inspected page

Scrollable region must have keyboard access

Why it matters

Scrollable region must have keyboard access

Recommended correction

Review the affected element and correct the reported accessibility issue.

View 3 affected elements
Component · Ref NSD4SR
Affected pagehttps://hidratespark.com/
Element#shopify-section--template--19561832448109__card_slider_transition_xNUDJA > .section-bg-color.section-stack > .scroll-container
Accessible nameGlow, Sound, and App Alerts Drink Reminder. Drink Reminder. A 360-degree glow, sounds, and app alerts keep hydration top of mind. Choose your color, sound, frequency, and schedule to stay on track.All alerts are optional and can be customized in the app. SipSense Technology Drink Tracker. Drink Tracker. Patented SipSense technology tracks every sip in real time. Bluetooth syncing ensures each sip is recorded in the HidrateSpark App. Built-In Apple Find My Drink Finder. Drink Finder. Never lose your bottle again. Built-in Apple Find My helps you locate it in seconds. Personalized Hydration Goal Drink Goal. Drink Goal The app recommends a smart hydration goal personalized for your body, to keep you optimally hydrated. Want to set your own goal? No problem, you can do that too. Make It Your Own Drink Glow. Drink Glow. It lights up when it’s time to drink. Simple as that.Customize, color, pattern, and frequency of your glow reminders. Up To 21-Day Battery Life Drink Sensor. Drink Sensor. Up to 21 days of battery life with USB-C universal charging. Stay powered and ready to go with ease. Great For On The Go Drink Confidently. Drink Confidently. Tumblers come with a splash resistant lid. Bottles come with a leakproof locking lid. Recycled 18/8 Stainless Steel Drink Sustainably. Drink Sustainably. Recycled stainless steel meets smart hydration. Better for you, better for the planet. 24 hrs Cold, Vacuum Insulated Drink Colder. Drink Colder. Vacuum-insulated stainless steel keeps drinks cold for 24 hours. Accurate sensing even with ice. BPA Free & Lead Free Drink Safer. Drink Safer BPA-free. Lead-free. Hydration you can trust. Carry It Anywhere Drink Traveler. …[truncated by Evolize: exceeded D1 value limit]
Markup
<div class="scroll-container">
Component · Ref 1KAP6J
Affected pagehttps://hidratespark.com/
Element#scroll-area-template--19561832448109__image_link_blocks_K7UpNc
Markup
<image-link-blocks id="scroll-area-template--19561832448109__image_link_blocks_K7UpNc" class="image-link-blocks scroll-area bleed md:unbleed is-scrollable">
Medium

ARIA attributes have invalid values

WCAG 4.1.2 (A)10 instances5 inspected pages

ARIA attributes reference ids that do not exist or hold invalid values, breaking the accessibility tree.

Why it matters

ARIA attributes reference ids that do not exist or hold invalid values, breaking the accessibility tree.

Recommended correction

Correct ARIA attribute values and ensure referenced ids exist in the DOM.

View 10 affected elements
Component · Ref KUH93N
Affected pagehttps://hidratespark.com/products/gift-card
Element.md\:block > .relative > .gap-2\.5.text-with-icon[aria-haspopup="dialog"]
Accessible nameUSD $
Markup
<button type="button" class="text-with-icon gap-2.5 group" aria-controls="popover-localization-form-country-end-sections--19561833955437__header" aria-expanded="false" aria-haspopup="dialog">
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion /products/gift-card /cart
Component · Ref HANUYV
Affected pagehttps://hidratespark.com/cart
Element.footer__aside-top > .gap-6.h-stack > .relative > .gap-2\.5.text-with-icon[aria-haspopup="dialog"]
Accessible nameUnited States (USD $)
Markup
<button type="button" class="text-with-icon gap-2.5 group" aria-controls="popover-localization-form-country--sections--19561833922669__footer" aria-expanded="false" aria-haspopup="dialog">
Affected pages/ /pages/app-account-deletion /en-ca/pages/app-account-deletion /products/gift-card /cart
Medium

Hidden elements can still receive keyboard focus

WCAG 2.4.3 (A)11 instances2 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 11 affected elements
Component · Ref HW1WFN
Affected pagehttps://hidratespark.com/products/gift-card
Elementproduct-list > product-card:nth-of-type(3) > div:nth-of-type(2) > div > div:nth-of-type(2) > button
Accessible name+ Quick add
Markup
<button type="button" class="button" aria-controls="quick-buy-template--19561833693293__related-products-7145517449325" aria-expanded="false" is="custom-button"><div>+ Quick add</div><span class="button__loader">
        <span></span>
        <span></span>
        <span></span>
      </span></button>
Affected pages/ /products/gift-card
Component · Ref QVPMRE
Affected pagehttps://hidratespark.com/products/gift-card
Elementdiv > form > div > div:nth-of-type(6) > div > button
Accessible nameSpin the wheel!
Markup
<button type="button" tabindex="0" data-action-id="01KVSF87NGW9ZHJ1YHSKK4RNZM" class="needsclick go1913766967 go4033861592 klaviyo-form-button kl-private-reset-css-Xuajs1">Spin the wheel!</button>
Component · Ref 7TU2J1
Affected pagehttps://hidratespark.com/products/gift-card
Elementinput#email_01KVSF87RMK9FZXZMV5SHBCWQA
Markup
<input id="email_01KVSF87RMK9FZXZMV5SHBCWQA" type="email" autocomplete="email" name="email" tabindex="0" placeholder="Enter your email address" aria-required="true" aria-invalid="false" options="[object Object]" class="needsclick go3461438868 kl-private-reset-css-Xuajs1">
Component · Ref MM21EO
Affected pagehttps://hidratespark.com/products/gift-card
Elementdiv > div > div > div > div > button
Accessible nameClose dialog
Markup
<button tabindex="0" aria-label="Close dialog" class="needsclick klaviyo-close-form go4255485812 kl-private-reset-css-Xuajs1" style="position: absolute; z-index: 6; cursor: pointer; height: 20px; width: 20px; border-radius: 50%; top: 0px; right: 0px; margin-right: 10px; margin-top: 10px;"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="needsclick  kl-private-reset-css-Xuajs1"><title id="title-Close-dialog">Close dialog</title><circle cx="10" cy="10" r="9.5" fill="rgba(255,255,255,0)" stroke="rgba(255,255,255,0)…
Medium

<video> elements must have captions

WCAG 1.2.2 (A)7 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 7 affected elements
Component · Ref CI07T0
Affected pagehttps://hidratespark.com/
Element#card_T8BkdC > .card > .video-container.lazy-video[data-autoplay="true"] > .lazy-video-element[preload="none"][loop=""]
Markup
<video class="lazy-video-element" muted="" loop="" playsinline="" preload="none" data-src="//hidratespark.com/c..." poster="//hidratespark.com/c...">
Component · Ref GZP3U0
Affected pagehttps://hidratespark.com/
Element#desktop-loop-template--19561832448109__video_loop_Vf6K3Y
Markup
<video id="desktop-loop-template--19561832448109__video_loop_Vf6K3Y" class="object-cover vl-loop" playsinline="" muted="" loop="" preload="auto">
Low

Page has no level-one heading

WCAG 1.3.1 (A)1 instance1 inspected page

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 1 affected element
Component · Ref R73XH6
Affected pagehttps://hidratespark.com/cart
Elementhtml > body
Accessible name<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-K7SMC7Q" height="0" width="0" style="display:none;visibility:hidden"></iframe> Skip to content :root { --sticky-announcement-bar-enabled:1; }#shopify-section-sections--19561833955437__announcement-bar { position: sticky; top: 0; z-index: 20; } .shopify-section--header ~ #shopify-section-sections--19561833955437__announcement-bar { top: calc(var(--sticky-header-enabled, 0) * var(--header-height, 0px)); } Free shipping for orders over $100Shop up to 50% off! document.documentElement.style.setProperty('--announcement-bar-height', Math.round(document.getElementById('shopify-section-sections--19561833955437__announcement-bar').clientHeight) + 'px'); :root { --sticky-header-enabled:1; } #shopify-section-sections--19561833955437__header { --header-grid-template: "main-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr); --header-padding-block: var(--spacing-3); --header-background-opacity: 1.0; --header-background-blur-radius: 0px; --header-transparent-text-color: 255 255 255; --header-transparent-text-color-dark: 255 255 255;--header-logo-width: 140px; --header-logo-height: 22px;position: sticky; top: 0; z-index: 10; }.shopify-section--announcement-bar ~ #shopify-section-sections--19561833955437__header { top: calc(var(--sticky-announcement-bar-enabled, 0) * var(--announcement-bar-height, 0px)); }@media screen and (min-width: 700px) { #shopify-section-sections--19561833955437__header {--header-logo-width: 200px; --header-logo-height: 31px;--header-padding-block: var(--spacing-6); } }@media screen and (min-width: 1150px) {#shopify-section-sections--19561833955437__header { --header-grid-template: "logo main-nav secondary-nav" / minmax(0, 1fr) fit-content(55%) minmax(0, 1fr); } } Open navigation menu Shop Explore Mobile App How it works Sustainability Blog Custom Sale HidrateSpark USD $ Country Australia (USD $) Canada (USD $) France (USD $) Germany (USD $) Italy (USD $) Netherlands (USD $) Poland (USD $) Spain (USD $) Sweden (USD $) United Kingdom (USD $) United States (USD $) Open account page Open cart 0 Shop Custom Explore USD $ Country Australia (USD $) Canada (USD $) France (USD $) Germany (USD $) Italy (USD $) Netherlands (USD $) Poland (USD $) Spain (USD $) Sweden (USD $) United Kingdom (USD $) United States (USD $) Account Explore Mobile App How It Works Sustainability Blog document.documentElement.style.setProperty('--header-height', Math.round(document.getElementById('shopify-section-sections--19561833955437__header').clientHeight) + 'px'); Close Cookie policyWe use cookies and similar technologies to provide the best experience on our website. Refer to our Privacy Policy for more information. Accept Decline 0 Your cart is empty Continue shopping 0 Your cart is empty Continue shopping @media screen and (min-width: 1000px) { #shopify-section-sections--19561833922669__footer {--footer-block-list-gap: var(--spacing-10);--footer-block-list-justify-content: space-between; } } Sign up for new stories and personal offers > Shop HidrateSpark PRO 2 HidrateSpark PRO Bulk Orders Support Get Started FAQ Contact Us Product Guides Company Our Story Sustainability Press Articles Clinical Trials Community HidrateSpark App Blog Facebook Group United States (USD $) Country Australia (USD $) Canada (…[truncated by Evolize: exceeded D1 value limit]
Markup
<body class="zoom-image--enabled"><script async="true" src="https://d1639lhkj5l89m.cloudfront.net/js/storefront/uppromote.js"></script><!-- DRAWER -->
<template id="drawer-default-template">
  <style>
    [hidden] {
      display: none !important;
    }
  </style>

  <button part="outside-close-button" is="close-button" aria-label="Close"><svg role="presentation" stroke-width="2" focusable="false" width="24" height="24" class="icon icon-close" viewBox="0 0 24 24">
        <path d="M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343" stroke="currentColor"></path>
      </svg></button>

  <div …
Low

Video may be missing captions

WCAG 1.2.2 (A)11 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 11 affected elements
Component · Ref 6PJ7W5
Affected pagehttps://hidratespark.com/
Elementli#card_AjFxQU > div > figure > video
Markup
<video class="lazy-video-element" muted="" loop="" playsinline="" preload="none" data-src="//hidratespark.com/cdn/shop/videos/c/vp/de1f53fdc9db4abf92f5bc7ce778206e/de1f53fdc9db4abf92f5bc7ce778206e.m3u8?v=0" poster="//hidratespark.com/cdn/shop/files/preview_images/de1f53fdc9db4abf92f5bc7ce778206e.thumbnail.0000000000.jpg?v=1743002560"></video>
Component · Ref NDL9GE
Affected pagehttps://hidratespark.com/
Elementvideo#desktop-loop-template--19561832448109__video_loop_Vf6K3Y
Markup
<video id="desktop-loop-template--19561832448109__video_loop_Vf6K3Y" class="object-cover vl-loop" playsinline="" muted="" loop="" preload="auto"><source src="//hidratespark.com/cdn/shop/videos/c/vp/0f792a83ed8f486d9415660a3e8f2d2e/0f792a83ed8f486d9415660a3e8f2d2e.m3u8?v=0" type="application/x-mpegURL"><source src="//hidratespark.com/cdn/shop/videos/c/vp/0f792a83ed8f486d9415660a3e8f2d2e/0f792a83ed8f486d9415660a3e8f2d2e.HD-1080p-3.3Mbps-77676938.mp4?v=0" type="video/mp4"></video>
Component · Ref 472BI5
Affected pagehttps://hidratespark.com/
Elementsection#shopify-section-template--19561832448109__video_GwEnQQ > div > div > video-media > video
Markup
<video playsinline="true" preload="metadata" controls="controls" poster="//hidratespark.com/cdn/shop/files/preview_images/798b3c1dec82486f8afc0c70845f41e2.thumbnail.0000000000_800x.jpg?v=1741879981" loading="lazy"><source src="//hidratespark.com/cdn/shop/videos/c/vp/798b3c1dec82486f8afc0c70845f41e2/798b3c1dec82486f8afc0c70845f41e2.HD-1080p-7.2Mbps-44119362.mp4?v=0" type="video/mp4"><img src="//hidratespark.com/cdn/shop/files/preview_images/798b3c1dec82486f8afc0c70845f41e2.thumbnail.0000000000_800x.jpg?v=1741879981"></video>

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.