Accessibility
Accessibility Commitment
Patriot BioSolutions is built to support accessible use across public and authenticated workflows.
Current practices
- Semantic headings, landmark regions, and form labels across core pages.
- Visible focus states and keyboard-navigable actions for major workflows.
- Accessible empty/error states with plain-language instructions.
- Animations respect
prefers-reduced-motionuser preference. - Body text, support text, structural borders, status badges, and card edges increase contrast when the operating system requests higher contrast (e.g., macOS Increase Contrast, Windows Contrast Themes), via
prefers-contrast: more. - Skip-to-content link and ARIA landmark roles on all pages.
- Dropdown menus and accordions support full keyboard navigation.
VPAT: WCAG 2.1 Conformance Report
Voluntary Product Accessibility Template (VPAT) based on ITI VPAT 2.4 Rev. This historical report records the March 23, 2026 assessment of Patriot BioSolutions Procurement Platform. The interface has changed since that assessment, including video and keyboard shortcuts. Known inaccurate video and shortcut ratings have been withdrawn and marked Not Evaluated. The remaining historical ratings have not been revalidated for the current release and should not be used as a current conformance determination.
Product:Patriot BioSolutions Procurement PlatformReport date:March 23, 2026Standard:WCAG 2.1 Level AA (with selected AAA)Contact:support@patriotbiosolutions.comEvaluation:Testing with Lighthouse, axe-core, manual keyboard/screen reader testing, and automated WCAG auditing across public and authenticated workflows.
WCAG 2.1 Level A
| Criterion | Name | Conformance | Remarks |
|---|---|---|---|
| 1.1.1 | Non-text Content | Supports | All informational images have alt text. Decorative SVGs use aria-hidden. Form inputs have associated labels. |
| 1.2.1 | Audio-only and Video-only (Prerecorded) | Not Evaluated | Reassessment required: the current homepage includes silent decorative background video. Review its purpose and text alternatives; the historical claim that there is no video is withdrawn. |
| 1.2.2 | Captions (Prerecorded) | Not Evaluated | Reassessment required: homepage background video is muted and decorative. Confirm whether any meaningful audio or other prerecorded media requires captions. |
| 1.2.3 | Audio Description or Media Alternative | Not Evaluated | Reassessment required: determine whether the background video conveys information beyond the surrounding text and whether a media alternative is needed. |
| 1.3.1 | Info and Relationships | Supports | Semantic HTML used throughout: headings, landmarks, lists, tables with scope attributes, fieldsets with legends, and ARIA roles for interactive widgets. |
| 1.3.2 | Meaningful Sequence | Supports | DOM order matches visual presentation. CSS layout does not alter reading order. |
| 1.3.3 | Sensory Characteristics | Supports | Instructions do not rely solely on shape, color, size, or visual location. Form errors use text labels. |
| 1.4.1 | Use of Color | Supports | Color is not the sole means of conveying information. Status indicators use text labels and icons alongside color. |
| 1.4.2 | Audio Control | Not Applicable | Platform does not auto-play audio. |
| 2.1.1 | Keyboard | Supports | All interactive elements are keyboard accessible. Dropdown menus, accordions, and modals support full keyboard navigation with arrow keys, Tab, Enter, Space, and Escape. |
| 2.1.2 | No Keyboard Trap | Supports | Focus traps in modals can be dismissed with Escape key. No other keyboard traps exist. |
| 2.1.4 | Character Key Shortcuts | Not Evaluated | Reassessment required: data tables support j/k while focused. Record navigation now scopes j/k to its own focused controls. The historical claim that no character shortcuts exist is withdrawn. |
| 2.2.1 | Timing Adjustable | Not Applicable | No timed interactions. Session management uses standard auth token expiry with re-authentication. |
| 2.2.2 | Pause, Stop, Hide | Supports | Animations respect prefers-reduced-motion. No auto-updating content that cannot be paused. |
| 2.3.1 | Three Flashes or Below Threshold | Supports | No content flashes more than three times per second. |
| 2.4.1 | Bypass Blocks | Supports | Skip-to-main-content link is present on all pages. Landmark regions (banner, navigation, main, contentinfo) allow assistive technology navigation. |
| 2.4.2 | Page Titled | Supports | Every page has a unique, descriptive title via Next.js metadata. Format: 'Page Name | Patriot BioSolutions'. |
| 2.4.3 | Focus Order | Supports | Focus order follows DOM order which matches visual layout. Modal focus management moves focus into and out of dialogs correctly. |
| 2.4.4 | Link Purpose (In Context) | Supports | Link text is descriptive in context. Generic links like 'Learn more' are within card components that provide context. |
| 2.5.1 | Pointer Gestures | Not Applicable | No functionality requires multipoint or path-based gestures. |
| 2.5.2 | Pointer Cancellation | Supports | Click/tap actions fire on pointer up. No down-event-only handlers. |
| 2.5.3 | Label in Name | Supports | Visible labels match or are contained within accessible names for all form controls and buttons. |
| 2.5.4 | Motion Actuation | Not Applicable | No functionality is triggered by device motion. |
| 3.1.1 | Language of Page | Supports | HTML lang attribute is set to 'en' on all pages. |
| 3.2.1 | On Focus | Supports | No context changes occur on focus. Dropdowns open on click, not on focus. |
| 3.2.2 | On Input | Supports | Form inputs do not trigger context changes. Submission requires explicit button activation. |
| 3.3.1 | Error Identification | Supports | Form errors are identified in text and associated with fields via aria-invalid and native validation messages. |
| 3.3.2 | Labels or Instructions | Supports | All form fields have visible labels. Required fields are indicated with aria-required. Placeholder text supplements but does not replace labels. |
| 4.1.1 | Parsing | Supports | HTML is generated by React/Next.js with valid markup. TypeScript strict mode prevents attribute errors. |
| 4.1.2 | Name, Role, Value | Supports | Custom controls use ARIA roles (menu, menuitem, region, progressbar), states (aria-expanded, aria-invalid, aria-hidden), and properties (aria-controls, aria-labelledby). |
WCAG 2.1 Level AA
| Criterion | Name | Conformance | Remarks |
|---|---|---|---|
| 1.3.4 | Orientation | Supports | Content is not restricted to a single display orientation. Responsive layout adapts to portrait and landscape. |
| 1.3.5 | Identify Input Purpose | Supports | Form fields use appropriate input types (email, tel) and autocomplete attributes where applicable. |
| 1.4.3 | Contrast (Minimum) | Supports | Text contrast ratios meet or exceed 4.5:1 for normal text and 3:1 for large text. Verified via Lighthouse and manual spot checks. |
| 1.4.4 | Resize Text | Supports | Content is readable and functional at 200% browser zoom. Layout uses relative units (rem, %, viewport units). |
| 1.4.5 | Images of Text | Supports | No images of text are used. All text is rendered as HTML. Certification badges use inline SVG with text labels. |
| 1.4.10 | Reflow | Supports | Content reflows at 320px viewport width without horizontal scrolling. Comparison table uses overflow-x-auto for wide content. |
| 1.4.11 | Non-text Contrast | Supports | UI components and graphical objects meet 3:1 contrast ratio. Focus indicators, form borders, and badge icons verified against background colors. |
| 1.4.12 | Text Spacing | Supports | Content remains readable with increased letter spacing (0.12em), word spacing (0.16em), and line height (1.5). No overflow or clipping. |
| 1.4.13 | Content on Hover or Focus | Supports | Dropdown menus triggered on hover are dismissible with Escape, persistent while hovered, and do not obscure other content. |
| 2.4.5 | Multiple Ways | Supports | Pages are reachable via navigation menu, footer links, breadcrumbs, and direct URL. Insights have category browsing. |
| 2.4.6 | Headings and Labels | Supports | Headings describe topic or purpose. Form labels identify field purpose. Section headings follow a logical hierarchy. |
| 2.4.7 | Focus Visible | Supports | All interactive elements have visible focus-visible outlines (3px solid). Dark backgrounds use inverted (white) focus rings. |
| 3.1.2 | Language of Parts | Supports | Content is in English only. No mixed-language content requiring lang attribute on individual elements. |
| 3.2.3 | Consistent Navigation | Supports | Navigation components appear in the same relative order across all pages. Public and admin navigation are distinct but internally consistent. |
| 3.2.4 | Consistent Identification | Supports | Components with the same function use consistent labels and icons across the platform. |
| 3.3.3 | Error Suggestion | Supports | Validation errors provide suggestions for correction via native browser validation and custom error messages. |
| 3.3.4 | Error Prevention (Legal, Financial, Data) | Supports | Order submissions include confirmation steps. Lead form data is reversible (no legal commitment). Quote requests can be reviewed before submission. |
| 4.1.3 | Status Messages | Supports | Form submission errors use role='alert' for screen reader announcement. Toast notifications are announced without focus change. |
WCAG 2.1 Level AAA (selected criteria)
| Criterion | Name | Conformance | Remarks |
|---|---|---|---|
| 1.4.6 | Contrast (Enhanced) | Partially Supports | When the user-agent reports prefers-contrast: more (macOS Increase Contrast, Windows Contrast Themes, iOS Increase Contrast), body and support text strengthen to 7:1+ where feasible while preserving brand hue; structural borders strengthen to 3:1+ (WCAG 1.4.11). Some tokens (e.g., tertiary support text) remain below 7:1 under MORE because hue preservation is a design constraint. AAA conformance is therefore opt-in and partial. See 1.4.3 for base-palette AA conformance. |
Need an accommodation?
Send feedback to support@patriotbiosolutions.com and include the page URL, browser/device details, and accessibility barrier encountered.