Automated technical assessment of 5 publicly accessible pages · Scanned 13 Aug 2026. Inspected 5 of 5 selected pages.
Findings
Critical
Form fields are missing labels
Form inputs have no programmatically associated label, so assistive technology cannot announce what to enter.
Component
2 affected pages
2 instances
WCAG WCAG 2.1 SC 1.3.1 Info and Relationships (Level A), WCAG 2.1 SC 4.1.2 Name, Role, Value (Level A)
Ref WGENEO
Affected pagehttps://directionalforce.com/products/fortitude-tee
Element.quantity__input
Markup<input form="product-form-template--18773108097283__main" class="quantity__input" type="number" name="quantity" min="1" value="1">
How to fixAdd a label element to the form input field, using the 'for' attribute to associate it with the input's 'id' attribute, or use the 'aria-label' attribute to provide a text description of the field's purpose.
Critical
Links lack accessible text
Links expose no accessible name, so their destination is unknown to screen reader users.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 2.4.4 Link Purpose (In Context) (Level A)
Ref QPBUN7
Affected pagehttps://directionalforce.com/products/fortitude-tee
Element.media-link
Markup<a class="media-link" href="/products/patch-kit" data-product-impression-tracked="true" data-product-link-position="2" data-impression-id="4479fe18-86d9-4aab-9ae7-b32e05b270d4" data-above-fold="false" data-product-click-tracked="true">
How to fixAdd text to the link, or use the 'alt' attribute on the image to describe the link's purpose.
Critical
Links lack accessible text
Links expose no accessible name, so their destination is unknown to screen reader users.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 2.4.4 Link Purpose (In Context) (Level A)
Ref SA3TD6
Affected pagehttps://directionalforce.com/products/lanyards
Element.media-link
Markup<a class="media-link" href="/products/patch-kit" data-product-impression-tracked="true" data-product-link-position="2" data-impression-id="4438f6c1-53f9-4216-a066-6e61d9535d82" data-above-fold="false" data-product-click-tracked="true">
How to fixAdd alternative text to the link, or ensure the image inside the link has alt text that describes the link's purpose.
Critical
Links lack accessible text
Links expose no accessible name, so their destination is unknown to screen reader users.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 2.4.4 Link Purpose (In Context) (Level A)
Ref C5GAQE
Affected pagehttps://directionalforce.com/
Elementa[data-product-link-position="38"]
Markup<a class="media-link" href="/products/womens-red-fast-twitch-tee" data-product-impression-tracked="true" data-product-link-position="38" data-impression-id="e443077a-5b4d-4c8b-befa-e4edc3cb6bcd" data-above-fold="false" data-product-click-tracked="true">
How to fixAdd text to the link, or use an aria-label attribute to provide a description of the link's destination.
High
Interactive controls are not keyboard-accessible
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.
Component
5 affected pages
15 instances
WCAG WCAG 2.1 SC 2.1.1 Keyboard (Level A)
Ref YKPUVG
Affected pagehttps://directionalforce.com/
Elementdiv#dynamic-checkout-cart > shopify-accelerated-checkout-cart > div > ul > li:nth-of-type(1) > div
Rolebutton
Markup<div class="wallet-cart-button wallet-cart-button__skeleton" role="button" disabled="" aria-hidden="true"> </div>
How to fixAdd a tabindex to the element or ensure it has focusable semantics, and remove the aria-hidden attribute to make the control accessible to keyboard and switch users.
High
Interactive controls are not keyboard-accessible
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.
Component
5 affected pages
25 instances
WCAG WCAG 2.1 SC 2.1.1 Keyboard (Level A)
Ref AR0YZK
Affected pagehttps://directionalforce.com/
Elementli#search-recommendation-list-item-1
Accessible nameHome
Roleoption
Markup<li id="search-recommendation-list-item-1" class="search-recommendation__list-item" role="option" aria-selected="false"><a href="/" class="predictive-search__item" tabindex="-1">
Home
</a></li> How to fixEnsure all interactive elements can receive keyboard focus by setting a positive tabindex or using native HTML elements that inherently support keyboard focus.
High
Scrollable region must have keyboard access
Scrollable region must have keyboard access
Component
2 affected pages
2 instances
WCAG WCAG SC 2.1.1, WCAG SC 2.1.3
Ref 1KOG57
Affected pagehttps://directionalforce.com/products/fortitude-tee
Element#slider-template--18773108097283__main > .sm-gap.gridy-track.grid-cols-1
Accessible namejay ropes (1).jpg
Markup<div class="gridy-track scrollbar--hide grid sm-gap grid-cols-1" style="
--gap: 3px;
--sm-gap: 24px;
--sm-br: 0px;"> How to fixEnsure that all scrollable regions can be accessed and navigated using a keyboard. This can be achieved by adding appropriate keyboard event handlers or using HTML elements that inherently support keyboard navigation.
Medium
Content sits outside any landmark region
Meaningful content is not contained in a landmark (header/nav/main/footer/aside), so assistive-technology users cannot reach it via landmark navigation.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 1.3.1 Info and Relationships (Level A)
Ref GDU5DG
Affected pagehttps://directionalforce.com/
Elementli#search-recommendation-list-item-2
Accessible nameWeight Vests - Ruck Packs - Plates
Roleoption
Markup<li id="search-recommendation-list-item-2" class="search-recommendation__list-item" role="option" aria-selected="false"><a href="/collections/weight-vest-plates" class="predictive-search__item" tabindex="-1">
Weight Vests - Ruck Packs - Plates
</a></li> How to fixEnsure all meaningful content is contained within appropriate landmark regions to improve accessibility for assistive technology users. This can be achieved by wrapping content in elements with roles such as 'header', 'nav', 'main', 'footer', or 'aside'.
Medium
Navigation regions are not distinguishable
The page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 1.3.1 Info and Relationships (Level A)
Ref B93F5L
Affected pagehttps://directionalforce.com/
Elementdrawer-menu#drawer-menu > div > nav
Accessible nameHome
Weight Vests - Ruck Packs - Plates
Shop All
Shop All
Mens
Mens Shorts
Jogger Sets
Mens Tees
Hoodies
Long Sleeve Shirts
Mens Coats-Jackets
Women's
Bras - Leggings
Women's Tee's - Tanks
Womens Hoodies
Womens Jogger Sets
Womens Shorts
Women's Jackets
Gifts For Him
Gift For Her
Hats
Patches
Collections
Eyewear
Accessories
Bags-Backpacks
Fitness Equipment
Sporting Goods
Gift Cards
Outlet
Team & Large-Scale Sporting Goods
Supplements
Socks
Footwear
Outlet
@media only screen and (min-width: 1024px) {
#panel-shop-all-drawer-menu__item-js-container {
clip-path: url("#drawer-clip")
}
}
Who We Are
Who We Are
Our Mission
Our Network
Our Logo
@media only screen and (min-width: 1024px) {
#panel-who-we-are-drawer-menu__item-js-container {
clip-path: url("#drawer-clip")
}
}
Force Multiplier Magazine
Ruck Club
Our Reviews
Collabs
GovX Discounts
Contact
Vest Plate Instructions / Vest-Ruck Care
Disclaimers
United States · USD $
Language English
Español
Français
العربية
Italiano
Deutsch
<div class="drawer-submenu__item"><form method="post" action="/localization" id="DrawerMenuLanguageForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><h2 class="visually-hidden" id="DrawerMenuLanguageLabelNoScript">Language</h2>
<select class="btn btn--full" name="locale_code" aria-labelledby="DrawerMenuLanguageLabelNoScript"><option value="AL">
Albania (ALL L)
</option><option value="DZ">
Algeria (DZD د.ج)
</option><option value="AD">
Andorra (EUR €)
</option><option value="AO">
Angola (USD $)
</option><option value="AI">
Anguilla (XCD $)
</option><option value="AG">
Antigua & Barbuda (XCD $)
</option><option value="AR">
Argentina (USD $)
</option><option value="AM">
Armenia (AMD դր.)
</option><option value="AW">
Aruba (AWG ƒ)
</option><option value="AU">
Australia (AUD $)
</option><option value="AT">
Austria (EUR €)
</option><option value="AZ">
Azerbaijan (AZN ₼)
</option><option value="BS">
Bahamas (BSD $)
</option><option value="BH">
Bahrain (USD $)
</option><option value="BD">
Bangladesh (BDT ৳)
</option><option value="BB">
Barbados (BBD $)
</option><option value="BE">
Belgium (EUR €)
</option><option value="BZ">
Belize (BZD $)
</option><option value="BJ">
Benin (XOF Fr)
</option><option value="BM">
Bermuda (USD $)
</option><option value="BO">
Bolivia (BOB Bs.)
</option><option value="BA">
Bosnia & Herzegovina (BAM КМ)
</option><option value="BW">
Botswana (BWP P)
</option><option value="BR">
Brazil (USD $)
</option><option value="VG">
British Virgin Islands (USD $)
</option><option value="BN">
Brunei (BND $)
</option><option value="BG">
Bulgaria (EUR €)
</option><option value="BF">
Burkina Faso (XOF Fr)
</option><option value="BI">
Burundi (BIF Fr)
</option><option value="KH">
Cambodia (KHR ៛)
</option><option value="CM">
Cameroon (XAF CFA)
</option><option value="CA">
Canada (CAD $)
</option><option value="CV">
Cape Verde (CVE $)
</option><option value="BQ">
Caribbean Netherlands (USD $)
</option><option value="KY">
Cayman Islands (KYD $)
</option><option value="TD">
Chad (XAF CFA)
</option><option value="CL">
Chile (USD $)
</option><option value="CN">
China (CNY ¥)
</option><option value="CO">
Colombia (USD $)
</option><option value="KM">
Comoros (KMF Fr)
</option><option value="CK">
Cook Islands (NZD $)
</option><option value="CR">
Costa Rica (CRC ₡)
</option><option value="HR">
Croatia (EUR €)
</option><option value="CW">
Curaçao (ANG ƒ)
</option><option value="CY">
Cyprus (EUR €)
</option><option value="CZ">
Czechia (CZK Kč)
</option><option value="DK">
Denmark (DKK kr.)
</option><option value="DJ">
Djibouti (DJF Fdj)
</option><option value="DM">
Dominica (XCD $)
</option><option v…[truncated by Evolize: exceeded D1 value limit]
Markup<nav class="drawer-menu-nav drawer-content scrollbar--hide">
<a href="/" class="drawer-menu__item" aria-label="Navigate to Home" title="Navigate to Home">
Home
</a>
<a href="/collections/weight-vest-plates" class="drawer-menu__item" aria-label="Navigate to Weight Vests - Ruck Packs - Plates" title="Navigate to Weight Vests - Ruck Packs - Plates">
Weight Vests - Ruck Packs - Plates
</a>
<div data-accordion-item="" class="drawer-menu__item --drilldown"><input role="button" data-href="/collections/all" class="drawer-me… How to fixAdd a unique and descriptive 'aria-label' or 'aria-labelledby' attribute to each navigation landmark to provide an accessible name. This will enable screen readers to announce the purpose of each navigation region, improving usability for users with visual impairments.
Medium
Navigation regions are not distinguishable
The page has multiple navigation landmarks but they lack accessible names, so screen reader users cannot tell them apart.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 1.3.1 Info and Relationships (Level A)
Ref GLN5ZA
Affected pagehttps://directionalforce.com/
Elementheader#MainHeader > div > div:nth-of-type(2) > nav
Accessible nameHomeWeight Vests - Ruck Packs - PlatesShop All
<a role="button" class="header-shortlink flex center-center no-js" href="/collections/all">Shop All</a>
Who We Are
<a role="button" class="header-shortlink flex center-center no-js" href="/pages/our-mission">Who We Are</a>
Force Multiplier Magazine
Markup<nav class="header-shortlinks"><a class="header-shortlink flex center-center" href="/">Home</a><a class="header-shortlink flex center-center" href="/collections/weight-vest-plates">Weight Vests - Ruck Packs - Plates</a><button class="header-shortlink js flex center-center" style="gap:4px" data-drawer-submenu-open="/collections/all">Shop All <svg role="presentation" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-left">…
How to fixAdd an 'aria-label' or 'aria-labelledby' attribute to each navigation landmark to provide a unique and descriptive name, allowing screen reader users to identify and navigate between them.
Medium
Hidden elements can still receive keyboard focus
An element is not visible but remains in the tab order, so a sighted keyboard user loses track of focus when it lands there.
Component
2 affected pages
2 instances
WCAG WCAG 2.1 SC 2.4.3 Focus Order (Level A)
Ref DI4ZNS
Affected pagehttps://directionalforce.com/products/fortitude-tee
Elementdiv#shopify-block-AWlI0TWZZdTJnYUxta__loox_reviews_loox_rating_4zYkLt > a
Accessible nameScroll to reviews
Markup<a href="#looxReviewsFrame" aria-label="Scroll to reviews">
<div class="loox-rating loox-widget" data-content-size="16" data-loox-block-id="AWlI0TWZZdTJnYUxta__loox_reviews_loox_rating_4zYkLt" data-color-text="#ffffff" data-color-star="#fb0b0b" data-id="8825583829251" data-rating="" data-raters="" data-testid="loox-rating-widget" style="font-size: 16px;"></div>
</a> How to fixTo fix this issue, ensure that all focusable elements are visible or remove them from the tab order if they are not meant to be interacted with. Consider using 'display: none' or 'visibility: hidden' to remove the element from the visual layout and the tab order, or use 'tabindex=-1' to remove it from the tab order while keeping it visible for screen readers.
Medium
Carousel has no accessible controls
A carousel/slider exposes no previous/next or pause controls, so keyboard and assistive-technology users cannot navigate or stop it. Requires manual review of the specific widget.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 2.1.1 Keyboard (Level A), WCAG 2.1 SC 2.2.2 Pause, Stop, Hide (Level A)
Ref A9R50K
Affected pagehttps://directionalforce.com/
Elementdiv#shopify-section-sections--18773108293891__announcements-bar > div > gridy-slider
Accessible nameFIT SUMMER SALE
15% OFF + FREE SHIPPING
USE CODE: FITSUMMER
FORCE MULTIPLY 🇺🇸
Markup<gridy-slider class="gridy-slider" data-mobile-enabled="true" data-tablet-enabled="true" data-desktop-enabled="true" data-ipr-mobile="1" data-ipr-tablet="1" data-ipr-desktop="3" data-autoplay="true" data-autoplay-delay="3000" data-sliding-behavior="single">
<div class="gridy-track disable-scroll grid grid-cols-1 md-grid-cols-3" style="--gap:0px;">
<div class="announcement flex center-center text-center active"><p>FIT SUMMER SALE</p>
</div>
<div class="announcement flex center-center text-center"><p>15% OFF + FREE SHIPPING</p>
</div>
… How to fixAdd accessible controls to the carousel, such as previous/next buttons or a pause button, and ensure these controls are reachable via keyboard and readable by screen readers.
Medium
Form fields use placeholder text as the only label
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.
Component
1 affected page
4 instances
WCAG WCAG 2.1 SC 1.3.1 Info and Relationships (Level A), WCAG 2.1 SC 3.3.2 Labels or Instructions (Level A)
Ref QOIL31
Affected pagehttps://directionalforce.com/pages/contact
Elementinput#ContactForm__template--18773107966211__contact_formfield--contact\[name\]
Markup<input type="text" id="ContactForm__template--18773107966211__contact_formfield--contact[name]" class="field__input" name="contact[name]" placeholder="Name *" required="">
How to fixAdd a visible label to the form field that remains present even when the user is typing. Ensure the label is properly associated with the field using the 'for' and 'id' attributes.
Medium
Form fields use placeholder text as the only label
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.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 1.3.1 Info and Relationships (Level A), WCAG 2.1 SC 3.3.2 Labels or Instructions (Level A)
Ref D66GCJ
Affected pagehttps://directionalforce.com/pages/contact
Elementtextarea#ContactForm__template--18773107966211__contact_formfield--contact\[message\]
Markup<textarea rows="4" id="ContactForm__template--18773107966211__contact_formfield--contact[message]" class="text-area field__input" name="contact[message]" placeholder="Message *" required=""></textarea>
How to fixAdd a visible label to the form field that remains present even when the user interacts with the field. Ensure the label is properly associated with the field using the 'for' and 'id' attributes.
Medium
<video> elements must have captions
<video> elements must have captions
Component
1 affected page
2 instances
WCAG WCAG SC 1.2.2
Ref HQAKZX
Affected pagehttps://directionalforce.com/
Element#template--18773108130051__hero_PMmC8T > .hero > .hero__media > superpowered-video > video
Accessible nameSorry, your browser doesn't support embedded videos. Consider updating your browser to latest version or using a different browser.
Markup<video class="video " preload="auto" autoplay="" playsinline="" muted="" loop="" controlslist="nodownload">
How to fixAdd captions to the video element by including a track element with a kind attribute set to 'captions' and a src attribute pointing to a caption file.
Low
Low-quality alternative text
Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 1.1.1 Non-text Content (Level A)
Ref BBKRGU
Affected pagehttps://directionalforce.com/
Elementdiv > nav > div:nth-of-type(3) > label > span > img
Markup<img class="country-flag" loading="lazy" src="//cdn.shopify.com/static/images/flags/us.svg?width=32" alt="United States" srcset="//cdn.shopify.com/static/images/flags/us.svg?width=32 32w" width="32" height="24">
How to fixReview the alt text for each image and update it to provide a clear and concise description of the image content. Ensure that each image has unique alt text that reflects its purpose or content.
Low
Low-quality alternative text
Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 1.1.1 Non-text Content (Level A)
Ref OBJACB
Affected pagehttps://directionalforce.com/
Elementform#DrawerMenuCountryForm > a:nth-of-type(184) > img
Markup<img class="country-flag" src="//cdn.shopify.com/static/images/flags/us.svg?width=32" alt="United States" srcset="//cdn.shopify.com/static/images/flags/us.svg?width=32 32w" width="32" height="24">
How to fixUpdate the alt text for each image to provide a unique and descriptive text that accurately represents the content of the image.
Low
Low-quality alternative text
Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 1.1.1 Non-text Content (Level A)
Ref CV4DL3
Affected pagehttps://directionalforce.com/
Elementfooter#SiteFooter-sections--18773108326659__footer > div:nth-of-type(2) > div:nth-of-type(2) > div:nth-of-type(1) > button:nth-of-type(1) > img
Markup<img class="country-flag" loading="lazy" style="width:20px;height:20px;margin-right:12px;margin-left:1px;" src="//cdn.shopify.com/static/images/flags/us.svg?width=32" alt="United States" srcset="//cdn.shopify.com/static/images/flags/us.svg?width=32 32w" width="32" height="24">
How to fixReview the alt text for each image and update it to provide a unique and descriptive text that accurately represents the content of the image. For example, if the image is a flag, the alt text could be 'Flag of the United States' or a brief description of the image's purpose.
Low
Low-quality alternative text
Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Component
5 affected pages
5 instances
WCAG WCAG 2.1 SC 1.1.1 Non-text Content (Level A)
Ref TGC0QV
Affected pagehttps://directionalforce.com/
Elementheader#MainHeader > div > div:nth-of-type(3) > button > img
Markup<img class="country-flag" src="//cdn.shopify.com/static/images/flags/us.svg?width=32" alt="United States" srcset="//cdn.shopify.com/static/images/flags/us.svg?width=32 32w" width="32" height="24">
How to fixUpdate the alt text for each image to provide a unique and descriptive text that accurately represents the content of the image. For example, if the image is a flag, the alt text could be 'Flag of the United States' or 'USA flag'.
Low
Page has no level-one heading
The page exposes no <h1>, so its topic is not conveyed in the heading structure.
Component
2 affected pages
2 instances
WCAG WCAG 2.1 SC 1.3.1 Info and Relationships (Level A)
Ref 9CVRF7
Affected pagehttps://directionalforce.com/
Elementhtml > body
Accessible name<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5VJH9GSW"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
Skip to content
.announcements-bar {
font-size: 12px;
text-transform: none;
letter-spacing: 0.02em;
}
.announcement {
max-width: none;
padding: 8px;
}
.announcement a {
text-decoration: underline;
}
FIT SUMMER SALE
15% OFF + FREE SHIPPING
USE CODE: FITSUMMER
FORCE MULTIPLY 🇺🇸
<link href="//directionalforce.com/cdn/shop/t/2/assets/component-drawers.css?v=43849788768772658021731782883" rel="stylesheet" type="text/css" media="all" />
<link href="//directionalforce.com/cdn/shop/t/2/assets/component-accordions.css?v=54473555434749272731731782883" rel="stylesheet" type="text/css" media="all" />
<link href="//directionalforce.com/cdn/shop/t/2/assets/component-search.css?v=184115848755030619871731782883" rel="stylesheet" type="text/css" media="all" />
.header-logo > * {
margin-top: 10px;;
margin-bottom: 10px;;
}
@media only screen and (min-width:768px) {
.header-logo > * {
margin-top: 30px;;
margin-bottom: 30px;;
}
}
Menu
HomeWeight Vests - Ruck Packs - PlatesShop All
<a role="button" class="header-shortlink flex center-center no-js" href="/collections/all">Shop All</a>
Who We Are
<a role="button" class="header-shortlink flex center-center no-js" href="/pages/our-mission">Who We Are</a>
Force Multiplier Magazine
Country/region
<a role="button" class="header-shortlink flex center-center no-js" href="#localization">US · USD $</a>
Search
Account
View my cart (0)
0
Home
Weight Vests - Ruck Packs - Plates
Shop All
Shop All
Mens
Mens Shorts
Jogger Sets
Mens Tees
Hoodies
Long Sleeve Shirts
Mens Coats-Jackets
Women's
Bras - Leggings
Women's Tee's - Tanks
Womens Hoodies
Womens Jogger Sets
Womens Shorts
Women's Jackets
Gifts For Him
Gift For Her
Hats
Patches
Collections
Eyewear
Accessories
Bags-Backpacks
Fitness Equipment
Sporting Goods
Gift Cards
Outlet
Team & Large-Scale Sporting Goods
Supplements
Socks
Footwear
Outlet
@media only screen and (min-width: 1024px) {
#panel-shop-all-drawer-menu__item-js-container {
clip-path: url("#drawer-clip")
}
}
Who We Are
Who We Are
Our Mission
Our Network
Our Logo
@media only screen and (min-width: 1024px) {
#panel-who-we-are-drawer-menu__item-js-container {
clip-path: url("#drawer-clip")
}
}
Force Multiplier Magazine
Ruck Club
Our Reviews
Collabs
GovX Discounts
Contact
Vest Plate Instructions / Vest-Ruck Care
Disclaimers
United States · USD $
Language English
Español
Français
العربية
Italiano
Deutsch
<div class="drawer-submenu__item"><form method="post" action="/localization" id="DrawerMenuLanguageForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><h2 class="visually-hidden" id="DrawerMenuLanguageLabelNoScript">Language</h2>
<select class="btn btn--full" name="locale_code" aria-labelledby="DrawerMenuLanguageLabelNoScript"><option value="AL">
Albania (ALL L)
</option><option value="DZ">
Algeria (DZD د.ج)
</option><option value="AD">
Andorra (EUR €)
</option><option value="AO">
Angola (USD $)
</option><option value="AI">
Anguilla (XCD $)
</option><option value="AG">
Antigua & Barbuda (XCD $)
</option><option value="AR">
Argentina (USD $)
</option><option value="AM">
Armenia (AMD դր.)
</option><option value="AW">
Aruba (AWG ƒ)
</option><option value="AU">
Australia (AUD $)
</option><option value="AT">
Austria (EUR €)
</option><option value="AZ">
Azerbaijan (AZN ₼)
</option><option value="BS">
Bahamas (BSD $)
</option><option value="BH">
Bahrain (USD $)
</option><option value="BD">
Bangladesh (BDT ৳)
</option><option value="BB">
Barbados (BBD $)
</option><option value="BE">
Belgium (EUR €)
</option><option value="BZ">
Belize (BZD $)
</option><option value="BJ">
Benin (XOF Fr)
</option><option value="BM">
Bermuda (USD $)
</option><option value="BO">
Bolivia (BOB Bs.)
</option><option value="BA">
Bosnia & Herzegovina (BAM КМ)
</option><option value="BW">
Botswana (BWP P)
</option><option value="BR">
Brazil (USD $)
</option><option value="VG">
…[truncated by Evolize: exceeded D1 value limit]
Markup<body class="woolman">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5VJH9GSW"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<a class="skip-to-content-link visually-hidden" href="#MainContent">
Skip to content
</a><!-- BEGIN sections: header-group -->
<div id="shopify-section-sections--18773108293891__announcements-bar" class="shopify-section shopify-section-group-header-group section-anim-in section-in-view">
<style>
.announcement… How to fixAdd a level-one heading (h1) to the page that accurately describes its content or purpose. This heading should be the first heading on the page and should be descriptive and concise.
Low
Low-quality alternative text
Alt text looks like a filename, a generic word ("image", "photo"), or is duplicated across unrelated images — it likely does not describe the content.
Component
3 affected pages
34 instances
WCAG WCAG 2.1 SC 1.1.1 Non-text Content (Level A)
Ref 6P3N01
Affected pagehttps://directionalforce.com/
Elementgridy-slider#slider-template--18773108130051__featured_collection_or_products_FLjY46 > div:nth-of-type(1) > div:nth-of-type(1) > a > figure > img
Markup<img srcset="//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&width=90 90w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&width=128 128w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&width=165 165w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&width=180 180w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&width=280 280w,//directi…
How to fixUpdate the alt text to describe the content of the image in a concise and accurate manner.
Low
Video may be missing captions
A video element has no captions or subtitles track. Whether captions are needed depends on the audio content and requires manual review.
Component
1 affected page
2 instances
WCAG WCAG 2.1 SC 1.2.2 Captions (Prerecorded) (Level A)
Ref QPEORC
Affected pagehttps://directionalforce.com/
Elementdiv#template--18773108130051__hero_PMmC8T > div > div:nth-of-type(1) > superpowered-video > video
Accessible nameSorry, your browser doesn't support embedded videos. Consider updating your browser to latest version or using a different browser.
Markup<video class="video " preload="auto" autoplay="" playsinline="" muted="" loop="" controlslist="nodownload">
<source src="https://cdn.shopify.com/videos/c/o/v/29fefb8c3c1749d5beff776109c9b34c.mp4" type="video/mp4">Sorry, your browser doesn't support embedded videos. Consider updating your browser to latest version or using a different browser.</video> How to fixAdd captions or subtitles to the video, or provide an alternative way for users to access the audio content, such as a transcript. Verify that the captions are accurate and synchronized with the audio.
Low
Text has insufficient colour contrast
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Component
1 affected page
2 instances
WCAG WCAG 2.1 SC 1.4.3 Contrast (Minimum) (Level AA)
Ref 98QUVO
Affected pagehttps://directionalforce.com/
Element.header-shortlink.center-center[href="/"]
Accessible nameHome
Markup<a class="header-shortlink flex center-center" href="/">Home</a>
How to fixIncrease the contrast between the text color and background color to meet the minimum contrast ratio thresholds, such as using a darker or lighter color for the text or background.
Low
Text has insufficient colour contrast
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Component
1 affected page
2 instances
WCAG WCAG 2.1 SC 1.4.3 Contrast (Minimum) (Level AA)
Ref 5200ZY
Affected pagehttps://directionalforce.com/
Elementbutton[data-drawer-submenu-open="/collections/all"]
Accessible nameShop All
Markup<button class="header-shortlink js flex center-center" style="gap:4px" data-drawer-submenu-open="/collections/all">
How to fixIncrease the contrast between the text color and background color of the 'Shop All' button to meet the minimum contrast ratio thresholds.
Low
Text has insufficient colour contrast
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 1.4.3 Contrast (Minimum) (Level AA)
Ref W9UYH4
Affected pagehttps://directionalforce.com/
Element.rte--no-max.rte.size--default > p > strong
Accessible nameUSE CODE: FITSUMMER
Markup<strong>USE CODE: FITSUMMER</strong>
How to fixIncrease the contrast between the text color and the background color by using a more pronounced color scheme or adjusting the font color to meet the minimum contrast ratio requirements.
Low
Text has insufficient colour contrast
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 1.4.3 Contrast (Minimum) (Level AA)
Ref BYBN8M
Affected pagehttps://directionalforce.com/
Element.header-shortlink.center-center.flex:nth-child(2)
Accessible nameWeight Vests - Ruck Packs - Plates
Markup<a class="header-shortlink flex center-center" href="/collections/weight-vest-plates">Weight Vests - Ruck Packs - Plates</a>
How to fixIncrease the contrast between the text color and background color of the navigation link to meet the minimum contrast ratio thresholds as defined by WCAG 2.1 SC 1.4.3.
Low
Text has insufficient colour contrast
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 1.4.3 Contrast (Minimum) (Level AA)
Ref T7D212
Affected pagehttps://directionalforce.com/
Element.sm-size--huge
Accessible nameFIT SUMMER SALE
Markup<h2 class="hero__title mt sm-mt size--small sm-size--huge" style="--mt: 60px; --sm-mt: 60px">FIT SUMMER SALE</h2>
How to fixIncrease the contrast between the text color and the background color by adjusting the CSS styles for the .hero__title class, ensuring the contrast ratio meets the WCAG 2.1 guidelines for minimum contrast.
Low
Text has insufficient colour contrast
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 1.4.3 Contrast (Minimum) (Level AA)
Ref WHH0L6
Affected pagehttps://directionalforce.com/pages/contact
Element.btn--primary
Accessible nameSend
Markup<button type="submit" class="btn btn--primary mt-16">
Send
</button> How to fixIncrease the contrast between the text color and background color of the button to meet the minimum contrast ratio thresholds.
Low
Text has insufficient colour contrast
Text and background colours do not meet the minimum contrast ratio, reducing legibility.
Component
1 affected page
1 instance
WCAG WCAG 2.1 SC 1.4.3 Contrast (Minimum) (Level AA)
Ref UA7KSV
Affected pagehttps://directionalforce.com/
Element.col-sm-max-8.sm-text-align-center.text-align-center > h4
Accessible name15% OFF + FREE SHIPPING
Markup<h4 class="subheading mt sm-mt size--small sm-size--default" style="--mt: 10px; --sm-mt: 60px">15% OFF + FREE SHIPPING</h4>
How to fixIncrease the contrast between the text color and the background color by adjusting the CSS styles, such as changing the font color or background color, to meet the minimum contrast ratio thresholds.