Public accessibility assessment

Accessibility issues detected on kylecavan.com

Evolize inspected 5 public pages on kylecavan.com and detected 50 automatically identifiable accessibility findings.

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

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

Most widespread issueLinks lack accessible textDetected on 5 inspected pages
Most affected page/27 findings detected
Most represented WCAG criterionWCAG 1.4.3 — Contrast (Minimum)17 detected findings

Is kylecavan.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 kylecavan.com and detected 50 accessibility findings. The most widespread issue was "Links lack accessible text", detected on 5 inspected pages. The most affected inspected page was "/", where 27 findings were detected. The assessment identified findings mapped to 12 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) · 5 inspected pages · 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. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 2 instances
    Why this matters

    Links expose no accessible name, so screen-reader users cannot determine their destination.

    Recommended action

    This link exposes no accessible text. Add visible text that identifies its destination, or remove the link if it serves no purpose. For an icon-only link, provide an aria-label describing where it goes. The link points to /.

    View technical evidence →
  3. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 2 instances
    Why this matters

    Links expose no accessible name, so screen-reader users cannot determine their destination.

    Recommended action

    This link exposes no accessible text. Add visible text that identifies its destination, or remove the link if it serves no purpose. For an icon-only link, provide an aria-label describing where it goes. The link points to /.

    View technical evidence →
  4. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 2 instances
    Why this matters

    Links expose no accessible name, so screen-reader users cannot determine their destination.

    Recommended action

    This link exposes no accessible text. Add visible text that identifies its destination, or remove the link if it serves no purpose. For an icon-only link, provide an aria-label describing where it goes. The link points to /.

    View technical evidence →
  5. Critical

    Links lack accessible text

    WCAG 2.4.4 (A) · 1 inspected page · 2 instances
    Why this matters

    Links expose no accessible name, so screen-reader users cannot determine their destination.

    Recommended action

    This link exposes no accessible text. Add visible text that identifies its destination, or remove the link if it serves no purpose. For an icon-only link, provide an aria-label describing where it goes. The link points to /.

    View technical evidence →

03 · WCAG criteria affected

CriterionNameLevelFindingsPagesReach
1.4.3Contrast (Minimum)AA1755 / 5
2.4.3Focus OrderA755 / 5
1.3.1Info and RelationshipsA655 / 5
1.2.2Captions (Prerecorded)A533 / 5
2.4.4Link Purpose (In Context)A555 / 5
2.5.8Target Size (Minimum)AA433 / 5
3.3.2Labels or InstructionsA355 / 5
4.1.2Name, Role, ValueA255 / 5
1.1.1Non-text ContentA133 / 5
1.4.4Resize TextAA155 / 5
2.1.1KeyboardA111 / 5
2.4.1Bypass BlocksA155 / 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 instances5 inspected pages

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 7JN44Z
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Element#search-trigger-button
Markup
<button id="search-trigger-button" bg="transparent" p="0" flex="~ row" gap="2" align="items-center" justify="center" class="text-$color-text hover:text-secondary" display="<md:hidden">
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
Critical

Embedded frames lack descriptive titles

WCAG 4.1.2 (A)1 instance1 inspected page

An <iframe> has no title, so its purpose is not announced to assistive technology.

Why it matters

An <iframe> has no title, so its purpose is not announced to assistive technology.

Recommended correction

Add a concise title attribute that describes the frame's actual purpose — for example "Store locator" for a location search or "Promotional campaign" for a marketing embed. The affected frame loads https://kylecavan.attn.tv/p/TYW/landing-page, which can help identify its purpose. Avoid generic values such as "Embedded content", "iframe", or "frame".

View 1 affected element
Component · Ref 1VDKEM
Affected pagehttps://kylecavan.com/pages/sign-up-for-our-exclusive-subscriber-list
Element.landing-frame
Markup
<iframe src="https://kylecavan.attn.tv/p/TYW/landing-page" class="landing-frame">
</iframe>
High

Text has insufficient colour contrast

WCAG 1.4.3 (AA)44 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 44 affected elements
Component · Ref 4MFK5R
Affected pagehttps://kylecavan.com/
Element.navigation-link.group:nth-child(8) > a[href$="sale"][display="inline-block"]
Accessible nameUP TO 40% OFF
Markup
<a display="inline-block" href="/collections/sale"> UP TO 40% OFF </a>
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
Component · Ref J7X8LY
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementdiv[font="editorial normal leading-none"] > p:nth-child(1)
Accessible name15% Off
Markup
<p>15% Off</p>
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
Component · Ref JCUVYX
Affected pagehttps://kylecavan.com/
Elementinput[name="search"]
Markup
<input name="search" type="text" w="full" placeholder="Search for school or org" font="leading-none family-$input-font-family weight-$input-font-weight style-$input-font-style" text="secondary center size-$input-font-size-mobile md:size-$input-font-size" p="0">
Component · Ref YHGCQI
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Element.okeReviews-ratingDistribution-item:nth-child(4) > .okeReviews-ratingDistribution-item-value > .okeReviews-ratingDistribution-item-value-inner > .okeReviews-ratingDistribution-item-value-count
Accessible name1 Review
Markup
<div class="okeReviews-ratingDistribution-item-value-count">
1 <span class="okeReviews-a11yText">Review</span>
</div>
Affected pages/products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
Component · Ref D0W6FD
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Element.kc-pair-with__slide:nth-child(3) > .tw\:group.tw\:flex-col.tw\:h-full > .tw\:flex-col.tw\:flex > .tw\:aspect-\[4\/5\].tw\:bg-light-gray.tw\:overflow-hidden > .tw\:top-2.tw\:right-2.tw\:z-10 > .tw\:border-primary\/20.tw\:bg-white\/90.tw\:py-\[5px\] > .tw\:whitespace-nowrap.tw\:text-\[9px\].tw\:leading-\[13\.5px\]
Accessible nameShips Fast
Markup
<span class="tw:whitespace-nowrap tw:font-sans tw:font-bold tw:uppercase tw:text-[9px] tw:leading-[13.5px] tw:tracking-[0.9px]">Ships Fast</span>
Affected pages/products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
Component · Ref GSN897
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Element#product-details-title
Accessible nameProduct Details
Markup
<span id="product-details-title" class="tw:font-sans tw:text-base tw:leading-normal tw:font-bold tw:tracking-widest tw:text-primary tw:uppercase">Product Details</span>
Affected pages/products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
Component · Ref YL47IA
Affected pagehttps://kylecavan.com/
Element#shopify-section-template--21141150335078__kc_collage_67BnUc > .kc-collage > .kc-collage__grid > .kc-collage__cell:nth-child(4) > .kc-collage__stack > .tw\:text-left.tw\:mr-auto.tw\:md\:text-left > .tw\:text-xl.tw\:md\:text-2xl.kc-collage__header > p > strong
Accessible nameCOLORS & CHARMS
Markup
<strong>COLORS &amp; CHARMS</strong>
Component · Ref J6AGAA
Affected pagehttps://kylecavan.com/
Element#shopify-section-template--21141150335078__kc_collage_kYxDbe > .kc-collage > .kc-collage__grid > .kc-collage__cell:nth-child(4) > .kc-collage__stack > .tw\:text-left.tw\:mr-auto.tw\:md\:text-left > .tw\:md\:flex.tw\:justify-start.kc-collage__ctas > .tw\:gap-\[16px\].tw\:flex-row.tw\:flex > .tw\:bg-transparent.tw\:hover\:text-secondary.tw\:inline-flex
Accessible nameSHOP SUNBURSTS
Markup
<a href="/collections/the-sun..." class="tw:cursor-pointer tw...">
Component · Ref HW73IA
Affected pagehttps://kylecavan.com/
Element.tw\:md\:flex.tw\:justify-start.kc-collage__ctas > .tw\:gap-\[16px\].tw\:flex-row.tw\:flex > .tw\:bg-transparent.tw\:hover\:text-secondary[href$="architecture"]
Accessible nameFIND YOUR SCHOOL
Markup
<a href="/collections/archite..." class="tw:cursor-pointer tw...">
Component · Ref QQD8F1
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementdiv[data-step-id="product-details"] > .tw\:justify-between.tw\:relative.tw\:w-full > .tw\:gap-\[11px\].tw\:pointer-events-none.tw\:items-center > .tw\:h-\[28px\].tw\:w-\[28px\].tw\:transition-colors > span
Accessible name1
Markup
<span style="display: block;">1</span>
Component · Ref QMQ5Y9
Affected pagehttps://kylecavan.com/
Element.kc-collage__cell:nth-child(6) > .kc-collage__stack > .tw\:text-left.tw\:mr-auto.tw\:md\:text-left > .tw\:text-xl.tw\:md\:text-2xl.kc-collage__header > p > strong
Accessible nameCOLORS & GREEK
Markup
<strong>COLORS &amp; GREEK</strong>
Component · Ref 4RF2XK
Affected pagehttps://kylecavan.com/
Element.kc-hero-carrousel__pre-header > strong
Accessible name20% OFF EVERYTHING
Markup
<strong>20% OFF EVERYTHING</strong>
Component · Ref DJ2BA9
Affected pagehttps://kylecavan.com/
Element.kc-hero-carrousel__body > p
Accessible namewith code LDW26
Markup
<p>with code LDW26</p>
Component · Ref JNTAPQ
Affected pagehttps://kylecavan.com/
Element.kc-collage__cell:nth-child(3) > .kc-collage__stack > .tw\:text-left.tw\:mr-auto.tw\:md\:text-left > .tw\:md\:flex.tw\:justify-start.kc-collage__ctas > .tw\:gap-\[16px\].tw\:flex-row.tw\:flex > .tw\:bg-transparent.tw\:hover\:text-secondary.tw\:inline-flex
Accessible nameFIND THEIR SCHOOL
Markup
<a href="/pages/schools" class="tw:cursor-pointer tw...">
Component · Ref JN1NRM
Affected pagehttps://kylecavan.com/
Element.kc-hero-carrousel__header > strong
Accessible nameTHE LABOR DAY SALE
Markup
<strong>THE LABOR <br>DAY SALE</strong>
Component · Ref OJ8MSI
Affected pagehttps://kylecavan.com/
Element.embla__slide[flex="grow-0 shrink-0"][basis="full"]:nth-child(1) > .text-\$item-color-text.hover\:text-\$item-color-text-hover[font="leading-8"]
Accessible name20% OFF EVERYTHING AT CHECKOUT, CODE: LDW26
Markup
<a font="leading-8" display="inline-block" href="/pages/schools" class="text-$item-color-text hover:text-$item-color-text-hover" style="font-size: var(--item-font-size); font-family: var(--item-font-family); font-weight: var(--item-font-weight);"> 20% OFF EVERYTHING AT CHECKOUT, CODE: LDW26 </a>
Component · Ref IS78XT
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Element.tw\:text-\[\#99a1af\]
Accessible nameOptional
Markup
<span class="tw:font-sans tw:text-xs tw:md:text-sm tw:leading-normal tw:font-bold tw:tracking-widest tw:text-[#99a1af] tw:uppercase">Optional</span>
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 EW89FT
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementdiv#page-header-navigation > nav > div:nth-of-type(1) > button
Accessible nameclose
Markup
<button class="menu-close-button">close</button>
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
Component · Ref EW8858
Affected pagehttps://kylecavan.com/policies/terms-of-service
Elementdiv#page-header-navigation > div:nth-of-type(1) > button
Markup
<button h="12" w="12" bg="transparent" p="0" m="0" text="primary"><svg h="full" w="full"><use href="#icon-burger"></use></svg></button>
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
Component · Ref V5EBOO
Affected pagehttps://kylecavan.com/pages/sign-up-for-our-exclusive-subscriber-list
Elementdiv#sections--21141148008550__navigation > div:nth-of-type(2) > div:nth-of-type(1) > a
Accessible nameCUSTOMER CARE
Markup
<a font="family-$title-font-mobile-family weight-$title-font-mobile-weight leading-none" class="text-white text-size-$title-font-size-mobile uppercase" display="inline-block" href="/">
            CUSTOMER CARE
          </a>
Affected pages/pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service
Component · Ref EXJIFS
Affected pagehttps://kylecavan.com/policies/terms-of-service
Elementdiv#sections--21141148008550__navigation > div:nth-of-type(2) > div:nth-of-type(1) > div > a:nth-of-type(6)
Accessible nameFAQ
Markup
<a font="family-$link-font-mobile-family weight-$link-font-mobile-weight leading-none" class="text-white text-size-$link-font-size-mobile uppercase" display="inline-block" href="https://kyle-cavan-customer-support.gorgias.help/en-US">
                  FAQ
                </a>
Affected pages/pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service
Component · Ref XX1FTW
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementsection#kc-product > div:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(2) > button:nth-of-type(2)
Accessible nameShow image 2
Markup
<button type="button" data-kc-gallery-thumb="" aria-label="Show image 2" class="tw:aspect-square tw:h-20 tw:w-20 tw:shrink-0 tw:overflow-hidden tw:transition-opacity tw:opacity-50">
              
                <img src="//kylecavan.com/cdn/shop/files/Organic_Petite_On_Figure.jpg?crop=center&amp;height=160&amp;v=1774360522&amp;width=160" alt="Organic Petite Necklace shown on figure in gold with Link Chain Choker" srcset="//kylecavan.com/cdn/shop/files/Organic_Petite_On_Figure.jpg?crop=center&amp;height=160&amp;v=1774360522&amp;width=160 160w" width="160" height="160" loading="lazy" class="tw…
Affected pages/products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
Component · Ref 4IXHMK
Affected pagehttps://kylecavan.com/
Elementdiv:nth-of-type(4) > div > div:nth-of-type(3) > div:nth-of-type(2) > div > a
Accessible nameFIND YOUR SCHOOL
Markup
<a href="/pages/schools" class="tw:cursor-pointer tw:transition tw:focus-visible:outline tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:focus-visible:outline-secondary tw:bg-transparent tw:hover:text-secondary tw:inline-flex tw:items-center tw:font-sans tw:font-semibold tw:uppercase tw:tracking-widest tw:underline tw:underline-offset-4 tw:hover:text-secondary tw:text-[var(--kc-cta-color)] tw:text-sm">FIND YOUR SCHOOL</a>
Component · Ref TRNI0W
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementdiv > div > fieldset > div > div:nth-of-type(2) > button
Accessible namecustomFront Engraving
Markup
<button type="button" class="tw:flex tw:w-full tw:cursor-pointer tw:flex-col tw:border tw:border-solid tw:border-[#e5e7eb] tw:bg-transparent tw:transition-colors tw:hover:border-primary-300 tw:focus-visible:outline tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:focus-visible:outline-secondary tw:items-stretch tw:justify-start tw:p-0 tw:text-center tw:h-full tw:border-primary" aria-pressed="true"><span class="tw:flex tw:aspect-square tw:w-full tw:items-center tw:justify-center tw:overflow-hidden"><span class="tw:relative tw:flex tw:h-full tw:w-full tw:items-center tw:justify-ce…
High

Form fields use placeholder text as the only label

WCAG 1.3.1 (A)24 instances5 inspected pages

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 24 affected elements
Component · Ref 2UYEB5
Affected pagehttps://kylecavan.com/policies/terms-of-service
Elementdiv#page-header-teleport > div:nth-of-type(5) > div > input
Markup
<input type="text" h="full" p="0" flex="grow" text="base" font="leading-10 medium" placeholder="What are you looking for?">
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
Component · Ref T2Q0PR
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Elementdiv > form > div:nth-of-type(2) > div > div:nth-of-type(2) > input
Markup
<input type="email" required="" name="receiver_email" placeholder="Receiver Email" style="border-top-width:0px;border-top-style:solid;border-top-color:#00244d;border-left-width:0px;border-left-style:solid;border-left-color:#00244d;border-right-width:0px;border-right-style:solid;border-right-color:#00244d;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#00244d;border-radius:0px;padding:10px;color:#00244d;background-color:transparent;font-size:12px;width:100%">
Affected pages/products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
Component · Ref GHOS5D
Affected pagehttps://kylecavan.com/
Elementdiv#collection-search > div > div > div:nth-of-type(1) > input
Markup
<input name="search" type="text" w="full" placeholder="Search for school or org" font="leading-none family-$input-font-family weight-$input-font-weight style-$input-font-style" text="secondary center size-$input-font-size-mobile md:size-$input-font-size" p="0">
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 6WVTLD
Affected pagehttps://kylecavan.com/policies/terms-of-service
Elementmeta[name="viewport"]:nth-child(3)
Markup
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
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 4GWG0O
Affected pagehttps://kylecavan.com/
Elementspan#instafeed-carousel-dot-0-1-4
Markup
<span id="instafeed-carousel-dot-0-1-4" class="instafeed-carousel-dot" onclick="InstafeedAPI.carouselMove(this, &quot;0&quot;, 1, 4)" style="cursor: pointer;"></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 ICFCXT
Affected pagehttps://kylecavan.com/pages/sign-up-for-our-exclusive-subscriber-list
Elementdiv#student-beans-modal > div:nth-of-type(1) > p
Accessible nameYour student status has been verified!
Markup
<p class="header-title h1">Your student status has been verified!</p>
Affected pages/ /products/brown-b-necklace /pages/sign-up-for-our-exclusive-subscriber-list /policies/terms-of-service /collections/sale/products/nyu-arch-necklace
Medium

<video> elements must have captions

WCAG 1.2.2 (A)3 instances2 inspected pages

<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 3 affected elements
Component · Ref 7P6AQP
Affected pagehttps://kylecavan.com/
Element#inline-video-17961792956984663-insta-feed
Markup
<video muted="" loop="" playsinline="" style="border-radius:0px;" class="auto-loop-videos" data-feed-id="0" id="inline-video-1796179..." preload="none" data-poster="https://scontent.cdn..." src="https://scontent.cdn...">
Component · Ref VF9226
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementdiv[data-kc-zoom-index="5"] > video
Markup
<video class="tw:h-full tw:w-full ..." alt="Brown B Necklace" autoplay="" muted="" loop="" controls="" controlslist="nodownload" playsinline="" preload="auto" poster="//kylecavan.com/cdn/...">
Low

Low-quality alternative text

WCAG 1.1.1 (A)39 instances3 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 39 affected elements
Component · Ref TJ37HQ
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Elementdiv:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(1) > div > div:nth-of-type(8) > img
Markup
<img src="//kylecavan.com/cdn/shop/files/IMG_69142.jpg?v=1756952010&amp;width=1200" alt="Washington Square Arch Necklace" srcset="//kylecavan.com/cdn/shop/files/IMG_69142.jpg?v=1756952010&amp;width=300 300w, //kylecavan.com/cdn/shop/files/IMG_69142.jpg?v=1756952010&amp;width=400 400w, //kylecavan.com/cdn/shop/files/IMG_69142.jpg?v=1756952010&amp;width=600 600w, //kylecavan.com/cdn/shop/files/IMG_69142.jpg?v=1756952010&amp;width=800 800w, //kylecavan.com/cdn/shop/files/IMG_69142.jpg?v=1756952010&amp;width=1000 1000w, //kylecavan.com/cdn/shop/files/IMG_69142.jpg?v=1756952010&amp;width=1200 1200w…
Affected pages/ /products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
Low

Video may be missing captions

WCAG 1.2.2 (A)22 instances3 inspected pages

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 22 affected elements
Component · Ref TE4AF6
Affected pagehttps://kylecavan.com/
Elementvideo#inline-video-18115443623318494-insta-feed
Markup
<video muted="" loop="" playsinline="" style="border-radius:0px;" class="auto-loop-videos" data-feed-id="0" id="inline-video-18115443623318494-insta-feed" preload="none" data-poster="https://scontent.cdninstagram.com/v/t51.82787-15/785320061_18615728335015254_6265501964100533938_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=106&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=2nToi61JaP4Q7kNvwGrY8D5&amp;_nc_oc=AdqHc-VM8H2W9MiQq9jIloGHs_LsQHqTCyEe1H4wRRzPRqzjWltubrT6tX9WeE0Sv4U&amp;_nc_zt=23&amp;_nc_ht=scontent.cdninstagram.com&amp;edm=ANo9…
Affected pages/ /collections/sale/products/nyu-arch-necklace
Component · Ref A6C15T
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementsection#kc-product > div:nth-of-type(2) > div > div > div:nth-of-type(6) > video
Markup
<video class="tw:h-auto tw:w-full tw:object-contain" alt="Brown B Necklace" autoplay="" muted="" loop="" controls="" controlslist="nodownload" playsinline="" preload="auto" poster="//kylecavan.com/cdn/shop/files/preview_images/4edd68a0f15e4e7cb84f673abb9d5680.thumbnail.0000000000.jpg?v=1740793752&amp;width=1600">
              
                <source src="//kylecavan.com/cdn/shop/videos/c/vp/4edd68a0f15e4e7cb84f673abb9d5680/4edd68a0f15e4e7cb84f673abb9d5680.m3u8?v=0" type="application/x-mpegURL">
              
                <source src="//kylecavan.com/cdn/shop/videos/c/vp/4edd68a0f15e4e7cb…
Component · Ref 9KBTSP
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementdiv:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(1) > div > div:nth-of-type(6) > video
Markup
<video class="tw:h-full tw:w-full tw:object-cover" alt="Brown B Necklace" autoplay="" muted="" loop="" controls="" controlslist="nodownload" playsinline="" preload="auto" poster="//kylecavan.com/cdn/shop/files/preview_images/4edd68a0f15e4e7cb84f673abb9d5680.thumbnail.0000000000.jpg?crop=center&amp;height=800&amp;v=1740793752&amp;width=800">
                  
                    <source src="//kylecavan.com/cdn/shop/videos/c/vp/4edd68a0f15e4e7cb84f673abb9d5680/4edd68a0f15e4e7cb84f673abb9d5680.m3u8?v=0" type="application/x-mpegURL">
                  
                    <source src="//kylecava…
Low

Touch targets are too small

WCAG 2.5.8 (AA)21 instances3 inspected pages

Interactive controls are smaller than the 24×24px minimum target size, making them hard to activate reliably by touch.

Why it matters

Interactive controls are smaller than the 24×24px minimum target size, making them hard to activate reliably by touch.

Recommended correction

Increase this <button>'s rendered area to at least 24 × 24 CSS pixels, or provide sufficient spacing from adjacent targets. Prefer increasing padding on the existing control (for example the button or link) rather than adding a separate non-interactive wrapper.

View 21 affected elements
Component · Ref XPV5SN
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Element.kc-pair-with__slide:nth-child(1) > .tw\:group.tw\:flex-col.tw\:h-full > .tw\:gap-x-\[6px\].tw\:gap-y-1\.5[role="group"] > .tw\:ring-offset-1.tw\:ring-1[title="Sterling Silver"]
Accessible nameSterling Silver
Markup
<button type="button" class="tw:cursor-pointer tw..." :class="i === activeMaterial..." :style="m.hex ? `background-..." :aria-pressed="i === activeMaterial" :aria-label="m.value" :title="m.value" @click="select(i)" style="background-color:#d6..." aria-pressed="true" aria-label="Sterling Silver" ...>
Affected pages/products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
Component · Ref B0WDQ3
Affected pagehttps://kylecavan.com/products/brown-b-necklace
Elementbutton[aria-label="10K Gold"]
Accessible name10K Gold
Markup
<button type="button" class="tw:cursor-pointer tw..." :class="i === activeMaterial..." :style="m.hex ? `background-..." :aria-pressed="i === activeMaterial" :aria-label="m.value" :title="m.value" @click="select(i)" style="background-color:#dd..." aria-pressed="false" aria-label="10K Gold" ...>
Component · Ref G55J53
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Element.tw\:ring-offset-1.tw\:ring-1[title="Cavan Gold"]
Accessible nameCavan Gold
Markup
<button type="button" class="tw:cursor-pointer tw..." :class="i === activeMaterial..." :style="m.hex ? `background-..." :aria-pressed="i === activeMaterial" :aria-label="m.value" :title="m.value" @click="select(i)" style="background-color:#CB..." aria-pressed="true" aria-label="Cavan Gold" ...>
Component · Ref DOQ0XL
Affected pagehttps://kylecavan.com/
Element.embla__slide[flex="grow-0 shrink-0"][basis="full"]:nth-child(1) > .text-\$item-color-text.hover\:text-\$item-color-text-hover[font="leading-8"]
Accessible name20% OFF EVERYTHING AT CHECKOUT, CODE: LDW26
Markup
<a font="leading-8" display="inline-block" href="/pages/schools" class="text-$item-color-text hover:text-$item-color-text-hover" style="font-size: var(--item-font-size); font-family: var(--item-font-family); font-weight: var(--item-font-weight);"> 20% OFF EVERYTHING AT CHECKOUT, CODE: LDW26 </a>
Low

Navigation regions are not distinguishable

WCAG 1.3.1 (A)2 instances2 inspected pages

The page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.

Why it matters

The page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.

Recommended correction

Give each navigation region a distinct aria-label (e.g. "Primary", "Footer") when more than one is present.

View 2 affected elements
Component · Ref Q7KU7I
Affected pagehttps://kylecavan.com/collections/sale/products/nyu-arch-necklace
Elementdiv#page-header-navigation > nav
Accessible nameclose SHOP COLLEGE SORORITY HIGH SCHOOL ABOUT US GIFT SETS UP TO 40% OFF
Markup
<nav flex="~ col xl:row" gap="xl:4" align="xl:items-center" w="full <xl:max-3xl" m="xl:x-auto" pos="<xl:fixed <xl:right-full <xl:bottom-0 <xl:top-$page-header-offset" bg="white" z="30" h="<xl:$flyout-height" overflow="<xl:auto" p="<xl:8 <xl:l-6 <md:b-40" transition="~ all ease-in-out duration-300" transform="<xl:~ <xl:translate-x-0" border="0 sm:r-1 xl:r-0 solid primary" data-name="header-nav" style="justify-content: var(--item-links-justify);"><div flex="~ row" justify="end" align="items-center" display="xl:hidden"><button class="menu-close-button">close</button></div><div flex="~ col" w="<xl…
Affected pages/products/brown-b-necklace /collections/sale/products/nyu-arch-necklace
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 ET4O9Y
Affected pagehttps://kylecavan.com/pages/sign-up-for-our-exclusive-subscriber-list
Elementbody#sign-up-for-our-exclusive-subscriber-list
Accessible nameThis website uses cookies to ensure you get the best experience. Learn MoreAccept All :root { --page-header-banner-height-initial: 38px; --page-header-banner-height: 38px; } .page-header-banner { position: sticky; top: 0; left: 0; right: 0; width: 100%; z-index: 40; } CaretCaret 20% OFF EVERYTHING AT CHECKOUT, CODE: LDW26 SELECT STYLES UP TO 40% OFF SIGN UP & SAVE 15% ON YOUR FIRST ORDER FIND YOUR SCHOOL! FIND YOUR GREEK ORG! SHIPPING & RETURNSRequest a School or Org @font-face { font-family: Montserrat; font-weight: 600; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 500; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 400; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 500; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 600; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 400; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 500; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 600; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 700; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n7.5d9fa6e2cae713c8fb539a9876489d86207fe957.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 600; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 500; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 600; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 700; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n7.5d9fa6e2cae713c8fb539a9876489d86207fe957.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 600; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 500; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 600; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); } @font-face { font-family: Montserrat; font-weight: 700; font-style: normal; font-display: swap; src: url("//kylecavan.com/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), url("//kylecavan.com/cdn/fonts/montserrat/monts…[truncated by Evolize: exceeded D1 value limit]
Markup
<body id="sign-up-for-our-exclusive-subscriber-list" data-template="page-no-heading" class="template-page"><div role="dialog" aria-live="polite" aria-label="cookieconsent" aria-describedby="cookieconsent:desc" class="cc-window cc-banner cc-type-info cc-theme-block cc-bottom cc-color-override--595138310 " style=""><!--googleoff: all--><span id="cookieconsent:desc" class="cc-message">This website uses cookies to ensure you get the best experience. <a aria-label="learn more about cookies" role="button" tabindex="0" class="cc-link" href="/pages/privacy" rel="noopener noreferrer nofollow" target="_…

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.