Voluntary Product Accessibility Template
Accessibility conformance report.
This report documents how veterandesign.com measures against WCAG 2.1 Level A and Level AA, using the ITI VPAT 2.5 template. Veteran Design audits accessibility for federal and state buyers, so its own site is held to the same standard and the evidence is published here as a live reference.
Report status
Evaluation is complete: automated testing, code and DOM inspection, computed contrast, reflow, and a manual keyboard-only and VoiceOver pass. Every conformance result is backed by recorded evidence; no criterion is marked Supports without it.
- Product name
- veterandesign.com
- Product version
- Production site
- Report date
- 2026-06-24
- Report version
- 1.1
- Template
- ITI VPAT 2.5, WCAG edition
- Standard
- WCAG 2.1 Level A and Level AA
- Product description
- Marketing and procurement website for Veteran Design LLC. Static, content-driven pages with no user accounts, forms, or transactions.
- Scope evaluated
- Home page and the Capability statement, Velocity, and Build routes, plus the shared header, footer, and error page.
- Evaluator
- Veteran Design LLC
- Contact
- Brad Shroyer, brad@veterandesign.com
- Phone
- (480) 382-4019
- Automated testing with axe-core 4.12.1 against the WCAG 2.0 and 2.1 Level A and AA rule sets, run across the home page and the Capability, Velocity, and Build routes.
- Manual code and DOM inspection of landmarks, headings, lists, labels, names, roles, and states, including functional verification of the dynamic controls, the Offerings disclosure menu and the mobile navigation menu, in the browser.
- Computed color-contrast ratios for every text token against the page surface using the WCAG relative-luminance formula.
- Responsive reflow testing at 320 CSS pixels and a text-spacing override test against the WCAG 1.4.12 metrics.
- Manual keyboard-only operation and VoiceOver (macOS) screen-reader testing across the home page and the Capability, Velocity, Build, and Accessibility routes, performed by Brad Shroyer, principal.
35
Supports
0
Partially Supports
0
Does Not Support
15
Not Applicable
- Supports
- The functionality has at least one method that meets the criterion without known defects, or meets with equivalent facilitation.
- Partially Supports
- Some functionality does not meet the criterion.
- Does Not Support
- The majority of the functionality does not meet the criterion.
- Not Applicable
- The criterion is not relevant to the product.
| Success criterion | Conformance level | Remarks and explanations |
|---|---|---|
| 1.1.1Non-text Content | Supports | Informative images provide text alternatives: the chevron mark is exposed through its link name, and the SBA VOSB badge carries descriptive alt text. Decorative arrow glyphs are hidden with aria-hidden, and the film-grain texture is a CSS background. Automated testing found no missing or empty alternatives. |
| 1.2.1Audio-only and Video-only (Prerecorded) | Not Applicable | The site contains no prerecorded audio-only or video-only content. |
| 1.2.2Captions (Prerecorded) | Not Applicable | The site contains no prerecorded synchronized media. |
| 1.2.3Audio Description or Media Alternative (Prerecorded) | Not Applicable | The site contains no prerecorded video or synchronized media. |
| 1.3.1Info and Relationships | Supports | Content uses semantic structure: header, main, nav, and footer landmarks, a single H1 per page with a logical heading order, ordered and definition lists, and aria-current on the active navigation item. Programmatic structure was verified by DOM inspection and automated testing. Screen-reader confirmation is part of the manual pass. |
| 1.3.2Meaningful Sequence | Supports | Reading order follows DOM order and matches the visual order. No CSS positioning reorders content in a way that changes meaning. |
| 1.3.3Sensory Characteristics | Supports | Instructions do not rely on shape, size, color, or location alone. Directional arrow glyphs are decorative and hidden from assistive technology. |
| 1.4.1Use of Color | Supports | Color is never the sole means of conveying information. Inline links carry a persistent underline, and the active or current navigation item carries an underline indicator and aria-current in addition to amber color, so the state is perceivable without relying on color. Primary actions use a visible border plus text. |
| 1.4.2Audio Control | Not Applicable | No audio plays automatically. |
| 2.1.1Keyboard | Supports | Interactive elements are native links and buttons. The Offerings control is a disclosure button that reveals its links in the Tab order when open and closes on Escape; the mobile menu is set inert when collapsed. A manual keyboard-only pass confirmed every control is operable by Tab, Enter, Space, and Escape, with no reliance on the pointer. |
| 2.1.2No Keyboard Trap | Supports | No custom focus-trapping is implemented; collapsed overlays use the inert attribute rather than trapping focus. A manual keyboard-only pass confirmed focus moves into and back out of the open menu and disclosure with Tab and Shift+Tab, with no trap. |
| 2.1.4Character Key Shortcuts | Supports | No single-character key shortcuts are implemented. |
| 2.2.1Timing Adjustable | Not Applicable | The content sets no time limits. |
| 2.2.2Pause, Stop, Hide | Supports | The only motion is brief entrance animation under 400 milliseconds. No content blinks, auto-scrolls, or auto-updates, and the prefers-reduced-motion setting disables the entrance animation. |
| 2.3.1Three Flashes or Below Threshold | Supports | No content flashes; nothing approaches the three-flash threshold. |
| 2.4.1Bypass Blocks | Supports | A skip link targets the main landmark, and header, main, and footer landmarks are present. Skip-link activation is confirmed in the manual keyboard pass. |
| 2.4.2Page Titled | Supports | Each route sets a descriptive, unique document title. Automated testing confirmed a present, non-empty title on every page. |
| 2.4.3Focus Order | Supports | DOM order is logical and matches the visual order, and dropdown items receive tabindex -1 when the menu is closed. A manual keyboard-only pass confirmed the Tab sequence follows the visual order, including the disclosure links inserted directly after their button when the menu is open. |
| 2.4.4Link Purpose (In Context) | Supports | Link text is descriptive in its context, and decorative arrows are hidden from assistive technology. Automated testing reported no empty or ambiguous link names. |
| 2.5.1Pointer Gestures | Supports | All operation uses single-point activation. No path-based or multipoint gestures are required. |
| 2.5.2Pointer Cancellation | Supports | Activation occurs on the up event through native controls. No action completes on the down event. |
| 2.5.3Label in Name | Supports | Visible control text is contained in each control's accessible name. The icon-only menu button uses an aria-label that names its function. Speech-input behavior is confirmed in the manual pass. |
| 2.5.4Motion Actuation | Not Applicable | No functionality is operated by device motion or user motion. |
| 3.1.1Language of Page | Supports | The html element declares lang of en. Automated testing confirmed a valid page language. |
| 3.2.1On Focus | Supports | Moving focus to an element does not trigger a change of context. Menus open on activation, not on focus. |
| 3.2.2On Input | Not Applicable | The site has no form fields or settings controls that change context on input. Contact uses mailto and external scheduling links. |
| 3.3.1Error Identification | Not Applicable | The site collects no user input, so no input errors are generated. |
| 3.3.2Labels or Instructions | Not Applicable | The site contains no input fields requiring labels or instructions. |
| 4.1.1Parsing | Supports | Markup is well-formed with unique IDs and properly nested elements. Automated testing reported no parsing or duplicate-ID issues. This criterion is obsolete in WCAG 2.2 and is retained here for WCAG 2.1. |
| 4.1.2Name, Role, Value | Supports | Custom controls expose appropriate roles, states, and properties. The Offerings control is a disclosure button with aria-expanded and aria-controls revealing a list of links, the navigation marks the active item with aria-current, and the mobile menu button exposes aria-expanded and an aria-label. Programmatic exposure was verified by DOM inspection and automated testing. State announcements are confirmed by screen reader in the manual pass. |
| Success criterion | Conformance level | Remarks and explanations |
|---|---|---|
| 1.2.4Captions (Live) | Not Applicable | The site contains no live audio or synchronized media. |
| 1.2.5Audio Description (Prerecorded) | Not Applicable | The site contains no prerecorded video. |
| 1.3.4Orientation | Supports | Content is not restricted to a single orientation and adapts to portrait and landscape. |
| 1.3.5Identify Input Purpose | Not Applicable | The site has no input fields that collect information about the user. |
| 1.4.3Contrast (Minimum) | Supports | All text meets or exceeds 4.5:1 against the near-black surface: primary text 13.85:1, secondary text 8.58:1, muted text 4.95:1, and the amber accent 7.55:1. Verified by computed ratios and by automated testing reporting no contrast violations on any page. |
| 1.4.4Resize Text | Supports | Text and layout remain readable and complete at 200 percent zoom with no loss or clipping. Verified by browser zoom and reflow testing. |
| 1.4.5Images of Text | Supports | Text is rendered as live text throughout. The only raster image is the SBA VOSB badge, which is a logo and is exempt. |
| 1.4.10Reflow | Supports | Content reflows to a single column at 320 CSS pixels with no loss of information and no two-dimensional scrolling. Verified at 320 pixel width on the home page and all sub-pages. Data tables in this report are an exception permitted by the criterion and scroll horizontally on narrow screens. |
| 1.4.11Non-text Contrast | Supports | User interface component boundaries and states meet the 3:1 minimum. The focus indicator and primary buttons use amber at 7.55:1, and secondary and ghost button borders use a dedicated interactive-border token at 3.66:1. Hairline dividers are decorative and are not the sole means of identifying a control. |
| 1.4.12Text Spacing | Supports | Applying the WCAG text-spacing metrics, line height 1.5, letter spacing 0.12em, word spacing 0.16em, and paragraph spacing 2em, produced no clipping or loss of content. Verified by an injected override. |
| 1.4.13Content on Hover or Focus | Supports | The Offerings menu, which can appear on hover, is dismissable with Escape, stays visible while the pointer moves onto it, and persists until dismissed. Hover and focus behavior is confirmed in the manual pass. |
| 2.4.5Multiple Ways | Supports | Pages are reachable through the persistent header navigation, the footer navigation, and the XML sitemap, providing more than one way to locate content. |
| 2.4.6Headings and Labels | Supports | Headings and section labels describe the content they introduce. Automated testing reported no empty headings and no heading-order skips. |
| 2.4.7Focus Visible | Supports | A global focus-visible style applies a 2 pixel amber outline at 7.55:1 with a 2 pixel offset, and no rule removes outlines. A manual keyboard-only pass confirmed a visible focus indicator on every interactive element while tabbing through each page. |
| 3.1.2Language of Parts | Supports | All content is in English. No passage is in another language that would require a lang change. |
| 3.2.3Consistent Navigation | Supports | The header and footer navigation appear in the same relative order and location on every page. |
| 3.2.4Consistent Identification | Supports | Components with the same function carry consistent names and labels across pages. |
| 3.3.3Error Suggestion | Not Applicable | The site collects no user input, so no input errors or suggestions arise. |
| 3.3.4Error Prevention (Legal, Financial, Data) | Not Applicable | The site processes no legal, financial, or data-submission transactions. |
| 4.1.3Status Messages | Not Applicable | The site presents no dynamic status messages. Content is static with no live regions or asynchronous updates. |
This report targets WCAG 2.1 Level AA. WCAG 2.1 Level AAA criteria and the success criteria added in WCAG 2.2 are outside its scope. The ITI VPAT 2.5 WCAG edition supports reporting against WCAG 2.0, 2.1, and 2.2; the conformance asserted here is WCAG 2.1 Level A and Level AA. This report reflects the state of the site on the report date and is updated as the site changes.