High
Hidden elements can still receive keyboard focus
WCAG 2.4.3 (A)40 instances4 inspected pages
An element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.
Why it mattersAn element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.
Recommended correctionKeep this element out of the tab order while its containing region is hidden — remove it from focus (for example tabindex="-1"), or apply the inert attribute to the hidden container where supported. Restore normal focusability when the region becomes visible.
View 40 affected elements
Component · Ref B0OQI0
Affected pagehttps://exomtngear.com/pages/sms-sign-up-giveaway-official-rules
Elementdiv > div > div > div:nth-of-type(3) > div > a:nth-of-type(1)
Accessible nameSearch
Markup<a href="/search" class="search-button" aria-label="Search" aria-controls="SearchDrawer" aria-expanded="false">
<span class="icon-fallback-text">
<i class="fa fa-search"></i>
<span class="fallback-text">Search</span>
</span>
</a> Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
Component · Ref SH4RYG
Affected pagehttps://exomtngear.com/account/login
Elementform#FooterCountryForm > div > div > button
Accessible nameUnited States (USD $)
Markup<button type="button" class="disclosure__button alt-focus" aria-expanded="false" aria-controls="CountryList">
United States (USD $)
<span class="icon-dropdown">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" width="22.5" height="22.5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
</span>
</button> Affected pages/account/login /pages/sms-sign-up-giveaway-official-rules /cart
Component · Ref DQPE7J
Affected pagehttps://exomtngear.com/account/login
Elementul#CountryList > li:nth-of-type(1) > a
Accessible nameAfghanistan (USD $)
Markup<a href="#" data-value="AF">
Afghanistan (USD $)
</a> Affected pages/account/login /pages/sms-sign-up-giveaway-official-rules /cart
Component · Ref Q9TOIP
Affected pagehttps://exomtngear.com/account/login
Elementdiv#RecoverPasswordForm > div:nth-of-type(2) > form > p:nth-of-type(1) > input
Markup<input type="submit" class="btn btn--full account-section--btn" value="Submit">
Component · Ref YYK91H
Affected pagehttps://exomtngear.com/account/login
Elementinput#RecoverEmail
Markup<input type="email" value="" name="email" id="RecoverEmail" class="input-full" placeholder="Email" autocorrect="off" autocapitalize="off">
High
Interactive controls are not keyboard-accessible
WCAG 2.1.1 (A)4 instances4 inspected pages
A control that responds to clicks (a clickable element or an ARIA widget) cannot receive keyboard focus, so keyboard and switch users cannot operate it.
Why it mattersA control that responds to clicks (a clickable element or an ARIA widget) cannot receive keyboard focus, so keyboard and switch users cannot operate it.
Recommended correctionUse a native <button>/<a>, or add tabindex="0" plus keyboard event handlers (Enter/Space) to custom controls.
View 4 affected elements
Component · Ref FUSYA0
Affected pagehttps://exomtngear.com/cart
Elementdiv#NavDrawer > div > a
Accessible nameClose menu
Rolebutton
Markup<a class="mobile-menu--close-btn" aria-label="Close menu" role="button" tabindex="-1" target="_blank" rel="noreferrer noopener"></a>
Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
High
Page has no main landmark
WCAG 1.3.1 (A)4 instances4 inspected pages
No <main> or role=main region is present, so screen reader users cannot jump to primary content.
Why it mattersNo <main> or role=main region is present, so screen reader users cannot jump to primary content.
Recommended correctionWrap the primary content in a single <main> element or role=main region.
View 4 affected elements
Component · Ref 60AMLX
Affected pagehttps://exomtngear.com/pages/sms-sign-up-giveaway-official-rules
Elementbody#sms-sign-up-giveaway-official-rules
Accessible name<link href="//exomtngear.com/cdn/shop/t/15/assets/font-awesome.min.css?v=67234577834381952701697697735" rel="stylesheet" type="text/css" media="all" />
<link href="//exomtngear.com/cdn/shop/t/15/assets/swiper.min.css?v=88091268259482038431697697735" rel="stylesheet" type="text/css" media="all" />
<link href="//exomtngear.com/cdn/shop/t/15/assets/custom.css?v=56937774016566335651783966218" rel="stylesheet" type="text/css" media="all" />
<div>
<transition name="drawer-right">
<div class="drawer drawer--right drawer--cart" v-if="isOpen" ref="drawerRight">
<div class="drawer__header sitewide--title-wrapper">
<div class="drawer__close js-drawer-close">
<button type="button" class="icon-fallback-text" ref="drawerClose" v-on:click="close">
<span class="fallback-text">CLOSE</span>
</button>
</div>
<input ref="drawerFocus" tabindex="-1" aria-hidden="true" class="sr-only" />
<div class="drawer__title h2 page--title">
<span v-if="type === 'cart'"">Shopping Cart</span>
<span class="sr-only" v-if="type === 'shop-now'">Quick View</span>
<span v-if="type === 'login'">Login</span>
<span v-if="type === 'search'">SEARCH</span>
</div>
</div>
<div id="CartContainer" v-if="type === 'cart'">
<form action="/cart" method="post" novalidate class="cart ajaxcart" v-if="cart">
<p class="empty-cart" v-if="cart.item_count === 0">Your cart is empty.</p>
<div class="ajaxcart__inner" v-if="cart.item_count > 0">
<span v-if="cart.total_discount > 0" class="hide auto-discount--active"></span>
<div class="ajaxcart__product" v-for="(item, index) in cart.items" :key="index + item.id">
<div class="ajaxcart__row" v-bind:data-line="index + 1"
v-bind:class="{ 'is-loading': index + 1 === lineQuantityUpdating }"
>
<div class="grid display-table">
<div class="grid__item small--one-whole medium--one-quarter large--one-quarter medium--display-table-cell">
<a v-bind:href="item.url" class="ajaxcart__product-image">
<img
src="#"
alt=""
v-responsive="item.image"
v-bind:alt="item.featured_image_alt"
v-if="item.image"
/>
<img v-if="!item.image" src="//cdn.shopify.com/s/assets/admin/no-image-medium-cc9732cb976dd349a0df1d39816fbcc7.gif" alt="" v-bind:alt="item.product_title" loading="lazy" />
</a>
</div>
<div class="grid__item small--one-whole medium--two-quarters large--two-quarters medium--display-table-cell">
<p>
<a v-bind:href="item.url" class="ajaxcart__product-name" v-text="item.product_title"></a>
<span class="ajaxcart__product-meta" v-if="item.variant_title != 'Default Title'" v-text="item.variant_title"></span>
<span class="ajaxcart__product-meta" v-if="item.selling_plan_allocation" v-text="item.selling_plan_allocation.selling_plan.name"></span>
<span class="ajaxcart__product-meta" v-for="(item, key, index) in item.properties " :key="index">
<span v-html="key"></span>: <span v-html="item"></span>
</span>
</p>
<div class="text-center">
<s>
<span class="ajaxcart-item__price-strikethrough"
v-if="item.compare_at_price > 0 && item.original_price < item.compare_at_price"
v-money="item.compare_at_price"
>
</span>
</s>
<span v-if="item.compare_at_price > 0 && item.original_price < item.compare_at_price" class="hide line-item__compare-at-price" v-text="item.compare_at_price * item.quantity"></span>
<span class="has--discount hide" v-text="item.original_price" v-if="item.compare_at_price > 0 && item.original_price < item.compare_at_price"></span>
<span class="price-no--discount hide" v-text="item.original_price * item.quantity" v-if="!item.compare_at_price"></span>
<span class="ajaxcart-item__price" v-money="item.original_price"></span><div class="unit-price" v-if="item.unit_price_measurement_price">
(<span class="unit-price__price" v-money="item.unit_price_measurement_price"></span>
<span> / </span>
<span class="unit-price__ref-value" v-text="item.unit_price_measurement_value"></span>
<span class="unit-price__ref-unit" v-text="item.unit_price_measurement_unit"></span>)
</div>
</div>
<ul class="ajaxcart-item__discounts" aria-label="Discount">
<li class="ajaxcart-item__discount" v-if="item.line_level_discount_allocations.amount > 0">
<span class="hide auto-discount--price" v-text="item.line_level_discount_allocations.amount"></span>
<span class="ajaxcart-item__discount_title" v-text="item.line_level_discount_allocations.title"></span>
<span class="ajaxcart-item__discount_money">- <span v-money="item.line_level_discount_allocations.amount"></span></span>
</li>
</ul>
<div class="grid--full text-center ajaxcart__quantity-wrapper">
<div class="grid__item">
<div class="ajaxcart__qty">
<button
type="button"
class="ajaxcart__qty-adjust ajaxcart__qty--minus icon-fallback-text"
v-on:click="setQuantity(index + 1, item.quantity - 1); setSubtotal();"
v-if="!isGiftwrapProduct(item)"
>
<i class="fa fa-minus" aria-hidden="true"></i>
<span class="fallback-text">−</span>
</button>
<input
type="text"
name="updates[]"
class="ajaxcart__qty-num"
v-bind:value="item.quantity"
min="0"
aria-label="quantity"
pattern="[0-9]*"
v-on:change="setQuantity(index + 1, parseInt($event.target.value, 10)); setSubtotal();"
:disabled="isGiftwrapProduct(item)"
/>
<button
type="button"
class="ajaxcart__qty-adjust ajaxcart__qty--plus icon-fallback-text"
v-on:click="setQuantity(index + 1, item.quantity + 1); setSubtotal();"
v-if="!isGiftwrapProduct(item)"
>
<i class="fa fa-plus" aria-hidden="true"></i>
<span class="fallback-text">+</span>
</button>
</div>
</div>
</div>
<button
type="button"
class="ajaxcar…[truncated by Evolize: exceeded D1 value limit]
Markup<body id="sms-sign-up-giveaway-official-rules" class="template-page animations-disabled images-aspect-ratio loaded">
<link href="//exomtngear.com/cdn/shop/t/15/assets/theme.min.css?v=120431709868491301781697697735" rel="stylesheet" type="text/css" media="all">
<noscript><link href="//exomtngear.com/cdn/shop/t/15/assets/font-awesome.min.css?v=67234577834381952701697697735" rel="stylesheet" type="text/css" media="all" /></noscript>
<noscript><link href="//exomtngear.com/cdn/shop/t/15/assets/swiper.min.css?v=88091268259482038431697697735" rel="stylesheet" type="text/css" media="all" /></no…
Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
High
List items are not inside a list
WCAG 1.3.1 (A)20 instances4 inspected pages
A <li> appears outside a <ul> or <ol>, so the list relationship is not conveyed to assistive technology.
Why it mattersA <li> appears outside a <ul> or <ol>, so the list relationship is not conveyed to assistive technology.
Recommended correctionWrap related <li> elements in a <ul> or <ol>, or use a different element for non-list content.
View 20 affected elements
Component · Ref 1FVSGM
Affected pagehttps://exomtngear.com/cart
Element#AccessibleNav > li:nth-child(5)
Accessible nameFAQ
Markup<li>
<a href="/pages/faq" class="site-nav__link">FAQ</a>
</li> Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
Component · Ref 79U9ZB
Affected pagehttps://exomtngear.com/
Element.site-nav--has-dropdown[aria-haspopup="true"]:nth-child(2)
Accessible nameInfo
About
Warranty
Size & Fit
Discounts
"How To" Videos
"Why do we?" Videos
Markup<li class="site-nav--has-dropdown " aria-haspopup="true">
Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
Medium
Content sits outside any landmark region
WCAG 1.3.1 (A)4 instances4 inspected pages
Meaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.
Why it mattersMeaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.
Recommended correctionWrap primary content in <main> and other regions in appropriate landmark elements.
View 4 affected elements
Component · Ref KB8LCL
Affected pagehttps://exomtngear.com/account/login
Elementdiv#PageContainer > div:nth-of-type(1) > p
Accessible nameThis store requires javascript to be enabled for some features to work correctly.
Markup<p>This store requires javascript to be enabled for some features to work correctly.</p>
Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
Medium
Navigation regions are not distinguishable
WCAG 1.3.1 (A)8 instances4 inspected pages
The page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.
Why it mattersThe page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.
Recommended correctionGive each navigation region a distinct aria-label (e.g. "Primary", "Footer") when more than one is present.
View 8 affected elements
Component · Ref AH9B6K
Affected pagehttps://exomtngear.com/account/login
Elementul#AccessibleNav
Accessible nameShop
K4 Pack Systems
K4 Accessories
At-Cost Logo Gear
Women's & Youth Pack
K3 Packs & Accessories
Gift Cards
Info
About
Warranty
Size & Fit
Discounts
"How To" Videos
"Why do we?" Videos
Resources
The Experience Project
Journal
Podcast
Free Gear List
Free Training Plan
Free Nutrition Plan
Contact
FAQ
Rolenavigation
Markup<ul class="site-nav js" id="AccessibleNav" role="navigation">
<li class="site-nav--has-dropdown " aria-haspopup="true">
<a href="/collections/k4" class="site-nav__link">
<div class="site-nav--link-wrapper">
<span class="site-nav--link-text">
Shop
</span>
<span class="icon-dropdown">
<svg xmlns="http://www.w3.org/2000/svg" width="22.5" height="22.5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-che… Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
Component · Ref 88EKSB
Affected pagehttps://exomtngear.com/pages/sms-sign-up-giveaway-official-rules
Elementdiv#shopify-section-header > div > nav
Accessible nameNavigation
<img
class=""
src="//exomtngear.com/cdn/shop/files/physical-receipt-shop-logo_1000x1000.png?v=1614317680"
alt="Exo Mtn Gear"
itemprop="logo"
style="object-fit:cover;object-position:47.6818% 35.8626%!important;"
loading="lazy"
/>
Search
0
Cart
Markup<nav class="nav-bar mobile-nav-bar-wrapper large--hide medium-down--show">
<div class="wrapper-padded">
<div class="large--hide medium-down--show">
<div class="mobile-grid--table">
<div class="grid__item three-twelfths">
<div class="site-nav--mobile">
<button type="button" aria-label="Navigation" class="icon-fallback-text site-nav__link js-drawer-open-left-link" aria-controls="NavDrawer" aria-expanded="false">
<i class="fa fa-bars fa-2x"></i>
<span class="fallback-text">Navigation</span>
</butt… Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
Medium
<video> elements must have captions
WCAG 1.2.2 (A)1 instance1 inspected page
<video> elements must have captions
Why it matters<video> elements must have captions
Recommended correctionReview the affected element and correct the reported accessibility issue.
View 1 affected element
Component · Ref QAJZ0G
Affected pagehttps://exomtngear.com/
Elementvideo
Markup<video playsinline="" class="hero-video-mp4" loop=""><source src="https://cdn.shopify.com/videos/c/o/v/716dc4be33d74253ba73f98e2a0ba15e.mp4" type="video/mp4"></video>
Low
Low-quality alternative text
WCAG 1.1.1 (A)11 instances4 inspected pages
Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Why it mattersAlt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Recommended correctionReplace placeholder or filename alt text with a concise description of what the image conveys.
View 11 affected elements
Component · Ref 6CVQSZ
Affected pagehttps://exomtngear.com/pages/sms-sign-up-giveaway-official-rules
Elementdiv:nth-of-type(2) > div > div > a > div > img
Markup<img loading="lazy" class=" js" style="max-width: 400px; max-height: 200px; width: 120px; object-fit:cover;object-position:47.6818% 35.8626%!important;" alt="Exo Mtn Gear" itemprop="logo" width="400" height="200" srcset="//exomtngear.com/cdn/shop/files/physical-receipt-shop-logo.png?v=1614317680 400w" sizes="(min-width: 2000px) 1000px, (min-width: 1445px) calc(100vw / 2), (min-width: 1200px) calc(100vw / 1.75), (min-width: 1000px) calc(100vw / 1.5), (min-width: 750px) calc(100vw / 3), 100vw" src="//exomtngear.com/cdn/shop/files/physical-receipt-shop-logo_1445x.png?v=1614317680">
Affected pages/ /account/login /pages/sms-sign-up-giveaway-official-rules /cart
Low
Text has insufficient colour contrast
WCAG 1.4.3 (AA)13 instances1 inspected page
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Why it mattersText and background colours do not meet the minimum contrast ratio, reducing legibility.
Recommended correctionIncrease the contrast ratio to at least 4.5:1 for normal text and 3:1 for large text.
View 13 affected elements
Component · Ref AXWIFO
Affected pagehttps://exomtngear.com/
Element#template--21477566808371__video_video_hero_xfjGdk_title
Accessible nameAlaska HUNT Film Series
Markup<h2 class="homepage-sections--title text-size-50px wow fadeInUp" id="template--21477566808371__video_video_hero_xfjGdk_title" style="visibility: hidden; animation-name: none;">
Alaska HUNT Film Series
</h2> Component · Ref BUN70Y
Affected pagehttps://exomtngear.com/
Element.large--one-third.medium--one-third.grid__item:nth-child(1) > a[href$="k4-size-selection"] > .text-advert-section--sub-header
Accessible nameSize & Fit Information
Markup<span class="text-advert-section--sub-header">Size & Fit Information</span>
Component · Ref 9AVTTY
Affected pagehttps://exomtngear.com/
Element.large--one-third.medium--one-third.grid__item:nth-child(3) > a[href$="warranty"] > .text-advert-section--header.h5
Accessible nameWHAT IS YOUR WARRANTY?
Markup<span class="text-advert-section--header h5">WHAT IS YOUR WARRANTY?</span>
Component · Ref MIA1DJ
Affected pagehttps://exomtngear.com/
Element.text-size-26px
Accessible nameIt isn't a tagline...
Markup<p class="text-size-26px">It isn't a tagline...</p>
Component · Ref 2HCC97
Affected pagehttps://exomtngear.com/
Element.text-content--inner.text-shadow.wow > div:nth-child(3) > .homepage-section-btn[data-section-main-link=""]
Accessible nameBUILT WITH PRIDE IN BOISE, ID
Markup<a class="homepage-section-btn" href="/pages/hunting-backpacks-made-in-usa" data-section-main-link="">
BUILT WITH PRIDE IN BOISE, ID
</a> Component · Ref Q97G7A
Affected pagehttps://exomtngear.com/
Elementdiv:nth-child(2) > .homepage-section-btn[data-section-main-link=""]
Accessible nameWATCH NOW
Markup<a class="homepage-section-btn" href="https://www.youtube.com/playlist?list=PLxCisjM16JQUuY7xWQLdExN_rAHTxEsvv" data-section-main-link="">
WATCH NOW
</a> Component · Ref 1WPJTP
Affected pagehttps://exomtngear.com/
Element.swiper-slide-active.block-section--3e4cf2ca-b3f6-46ca-86c9-f4ae4e24413b[data-slide-index="0"] > .homepage-featured-content-box > .animated.homepage-featured-content-box-inner.wow > .featured-row__subtext.textarea.rte
Accessible nameThe culmination of 20+ years of backcountry hunting experience, 10+ years of pack design experience, and 3+ years of focused design, development, and testing...
Markup<div class="rte featured-row__subtext textarea">The culmination of 20+ years of backcountry hunting experience, 10+ years of pack design experience, and 3+ years of focused design, development, and testing...</div>
Component · Ref CNMOF8
Affected pagehttps://exomtngear.com/
Element.swiper-slide-active.block-section--3e4cf2ca-b3f6-46ca-86c9-f4ae4e24413b[data-slide-index="0"] > .homepage-featured-content-box > .animated.homepage-featured-content-box-inner.wow > .slideshow-title.sitewide--title-wrapper > .homepage-section-title
Accessible nameK4 Pack Systems
Markup<h2 class="homepage-sections--title homepage-section-title" id="template--21477566808371__image-slideshow_3e4cf2ca-b3f6-46ca-86c9-f4ae4e24413b_title">
Low
Video may be missing captions
WCAG 1.2.2 (A)1 instance1 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 mattersA video element has no captions or subtitles track. Whether captions are needed depends on the audio content and requires manual review.
Recommended correctionProvide a synchronized captions track (<track kind="captions">) for video with meaningful audio.
View 1 affected element
Component · Ref 2W50LP
Affected pagehttps://exomtngear.com/
Elementdiv > div > div > div > div:nth-of-type(2) > video
Markup<video playsinline="" class="hero-video-mp4" loop=""><source src="https://cdn.shopify.com/videos/c/o/v/716dc4be33d74253ba73f98e2a0ba15e.mp4" type="video/mp4"></video>
Low
Touch targets are too small
WCAG 2.5.8 (AA)2 instances1 inspected page
Interactive controls are smaller than the 24×24px minimum target size, making them hard to activate reliably by touch.
Why it mattersInteractive controls are smaller than the 24×24px minimum target size, making them hard to activate reliably by touch.
Recommended correctionIncrease this <span>'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 2 affected elements
Component · Ref AEWUUQ
Affected pagehttps://exomtngear.com/
Elementspan[aria-label="Go to slide 2"]
Accessible nameGo to slide 2
Rolebutton
Markup<span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 2"></span>
Component · Ref NDL23N
Affected pagehttps://exomtngear.com/
Element.swiper-pagination-bullet-active
Accessible nameGo to slide 1
Rolebutton
Markup<span class="swiper-pagination-bullet swiper-pagination-bullet-active" tabindex="0" role="button" aria-label="Go to slide 1"></span>