EVOLIZE Run a free assessment

Accessibility assessment of directionalforce.com

Automated technical assessment of 5 publicly accessible pages · Scanned 13 Aug 2026. Inspected 5 of 5 selected pages.

29findings detected
7critical + high
5pages inspected

What to fix first

  1. Critical Form fields are missing labels
  2. Critical Links lack accessible text
  3. Critical Links lack accessible text
  4. Critical Links lack accessible text
  5. High Interactive controls are not keyboard-accessible

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">&nbsp;</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 &amp; 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 &amp; 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&nbsp;·&nbsp;USD&nbsp;$</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 &amp; 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 &amp; 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&amp;width=90 90w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&amp;width=128 128w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&amp;width=165 165w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&amp;width=180 180w,//directionalforce.com/cdn/shop/files/file_f4f1f115-1d4e-4b45-8586-4f20e2fa51e7.png?v=1763419833&amp;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.

Keep directionalforce.com monitored

This is a point-in-time assessment. Evolize monitoring re-scans the site on a schedule, flags new and recurring issues, tracks changes over time, and verifies fixes after you make them.

Start monitoring
About this assessment.
  • Automated technical analysis of publicly accessible website 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 accessibility issue.
  • Results reflect the site at the scan date and may have changed since.
  • This is technical information, not legal advice.

Request a correction or removal · How Evolize scans