Product: O.D.I.N. (Orchestrated Dispatch & Inventory Network) Version: 1.3.27 Vendor: Sublab 3DP Contact: sublab3dp@gmail.com Date: February 2026 Report Format: VPAT 2.5 (Revised Section 508 Edition)
This report covers conformance with:
- Web Content Accessibility Guidelines (WCAG) 2.1 — Level AA
- Revised Section 508 (36 CFR 1194) — applicable to education and government procurement
| Term | Definition |
|---|---|
| Supports | The functionality of the product has at least one method that meets the criterion without known defects or meets with equivalent facilitation. |
| Partially Supports | Some functionality of the product does not meet the criterion. |
| Does Not Support | The majority of product functionality does not meet the criterion. |
| Not Applicable | The criterion is not relevant to the product. |
| Not Evaluated | The product has not been evaluated against the criterion. |
- Manual keyboard navigation testing
- Visual inspection of color contrast ratios
- Screen reader testing (partial — VoiceOver on macOS)
- Browser developer tools accessibility audit (Chrome Lighthouse)
- Manual review of ARIA landmarks and roles
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.1.1 Non-text Content | Partially Supports | Icons use Lucide React with aria-labels. Printer status indicators and dashboard icons have text alternatives. Some chart visualizations (Recharts) may lack comprehensive text alternatives for all data points. Camera feed frames do not have text descriptions. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | O.D.I.N. does not include prerecorded audio-only or video-only content. Camera feeds are live streams, not prerecorded. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | O.D.I.N. does not include prerecorded multimedia content. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | No prerecorded multimedia content. |
| 1.3.1 Info and Relationships | Partially Supports | HTML5 semantic elements are used for page structure. Data tables use proper table markup. Some dynamic content areas generated by React may not fully convey structural relationships to assistive technologies. |
| 1.3.2 Meaningful Sequence | Supports | Content is presented in a logical reading order. The DOM structure follows visual layout order. |
| 1.3.3 Sensory Characteristics | Partially Supports | Instructions generally do not rely solely on sensory characteristics. Some printer status information is conveyed through color alone (see 1.4.1). |
| 1.4.1 Use of Color | Partially Supports | Printer status (online/offline/error) uses color-coded indicators. Status text labels accompany most color indicators, but some compact dashboard views may rely on color alone. |
| 1.4.2 Audio Control | Not Applicable | O.D.I.N. does not auto-play audio. |
| 2.1.1 Keyboard | Partially Supports | Most interactive elements (buttons, links, form controls) are keyboard accessible. Some modal dialogs may not properly trap focus. Dropdown menus and context menus may not be fully navigable via keyboard. |
| 2.1.2 No Keyboard Trap | Partially Supports | Generally no keyboard traps exist. Some modal dialogs may not release focus properly on close, requiring the user to use a mouse click to exit. |
| 2.1.4 Character Key Shortcuts | Not Applicable | O.D.I.N. does not implement single character key shortcuts. |
| 2.2.1 Timing Adjustable | Supports | JWT session timeout (24 hours) is sufficiently long. WebSocket reconnection is automatic. No time-limited user interactions. |
| 2.2.2 Pause, Stop, Hide | Partially Supports | Real-time printer telemetry updates automatically. Users cannot pause the auto-updating dashboard content. Camera feeds stream continuously when viewed. |
| 2.3.1 Three Flashes or Below Threshold | Supports | No content flashes more than three times per second. |
| 2.4.1 Bypass Blocks | Partially Supports | A skip-to-content link is present. The sidebar navigation is consistent across pages. Some pages with lengthy content may lack in-page skip links. |
| 2.4.2 Page Titled | Supports | Each page has a descriptive title reflecting its content (e.g., "Dashboard", "Printers", "Job Queue"). |
| 2.4.3 Focus Order | Partially Supports | Focus order generally follows visual layout. Some dynamically rendered content (modals, toast notifications) may not receive focus in the expected order. |
| 2.4.4 Link Purpose (In Context) | Supports | Links and buttons have descriptive text or aria-labels that convey their purpose in context. |
| 2.5.1 Pointer Gestures | Supports | All functionality operable through pointer uses simple single-pointer actions (click/tap). No multi-point or path-based gestures are required. |
| 2.5.2 Pointer Cancellation | Supports | Actions are triggered on the up-event (click release). Drag-and-drop is not used for critical operations. |
| 2.5.3 Label in Name | Supports | Visible labels match accessible names for form controls and buttons. |
| 2.5.4 Motion Actuation | Not Applicable | O.D.I.N. does not use device motion for input. |
| 3.1.1 Language of Page | Supports | The HTML lang attribute is set to "en". |
| 3.2.1 On Focus | Supports | Focusing on an element does not trigger unexpected changes of context. |
| 3.2.2 On Input | Supports | Changing form input values does not automatically submit forms or trigger unexpected navigation. Filter controls update content in place as expected. |
| 3.3.1 Error Identification | Partially Supports | Form validation errors are displayed visually near the relevant fields. Some error messages may not be programmatically associated with their form controls via aria-describedby. |
| 3.3.2 Labels or Instructions | Supports | Form fields have visible labels. Required fields are indicated. Placeholder text supplements but does not replace labels. |
| 4.1.1 Parsing | Supports | React generates well-formed HTML. No duplicate IDs in static content. (Note: WCAG 2.2 has removed this criterion as always satisfied by modern browsers.) |
| 4.1.2 Name, Role, Value | Partially Supports | Standard HTML form controls expose correct roles and values. Custom components (status badges, toggle switches, dropdown menus) may not consistently expose correct ARIA roles and states. |
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | O.D.I.N. does not include live audio content. Camera feeds are video-only. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | No prerecorded multimedia content. |
| 1.3.4 Orientation | Supports | Content is not restricted to a single display orientation. The responsive layout adapts to both portrait and landscape. |
| 1.3.5 Identify Input Purpose | Partially Supports | Login form fields (username, password) use appropriate autocomplete attributes. Other forms (printer configuration, job submission) may not consistently use autocomplete or input purpose attributes. |
| 1.4.3 Contrast (Minimum) | Partially Supports | The dark theme provides generally good contrast for primary text and UI elements. Some status indicators (colored badges, progress bars) may not meet the 4.5:1 contrast ratio against the dark background. Secondary text in some areas may fall below the minimum contrast ratio. |
| 1.4.4 Resize Text | Supports | Text can be resized up to 200% using browser zoom without loss of content or functionality. The responsive layout adjusts appropriately. |
| 1.4.5 Images of Text | Supports | O.D.I.N. uses rendered text throughout. No images of text are used except in the application logo. |
| 1.4.10 Reflow | Partially Supports | Content reflows at 320px viewport width for most pages. Some data-heavy tables (printer list, job queue, analytics) may require horizontal scrolling at narrow widths. |
| 1.4.11 Non-text Contrast | Partially Supports | Most UI components (buttons, form controls, icons) meet the 3:1 contrast ratio. Some status indicators and chart elements may not meet this threshold against adjacent colors. |
| 1.4.12 Text Spacing | Supports | Content remains readable and functional when text spacing is overridden per the criterion (line height 1.5x, paragraph spacing 2x, letter spacing 0.12em, word spacing 0.16em). |
| 1.4.13 Content on Hover or Focus | Partially Supports | Tooltips appear on hover for icon buttons and truncated text. Tooltips are generally dismissible (by moving the pointer) but may not all be hoverable (pointer cannot move to the tooltip itself without it disappearing). |
| 2.4.5 Multiple Ways | Supports | Content is accessible via sidebar navigation, page URLs (direct linking), and browser history. A search function is available for models and printers. |
| 2.4.6 Headings and Labels | Supports | Pages use descriptive headings (h1, h2, h3) and form labels that describe the topic or purpose. |
| 2.4.7 Focus Visible | Partially Supports | Browser default focus indicators are preserved for most elements. Some custom-styled buttons and interactive elements may have reduced or unclear focus indicators due to Tailwind CSS styling. |
| 3.1.2 Language of Parts | Not Applicable | O.D.I.N. content is in a single language (English). No multilingual content exists. |
| 3.2.3 Consistent Navigation | Supports | The sidebar navigation is consistent across all pages. Navigation order and labeling do not change between pages. |
| 3.2.4 Consistent Identification | Supports | Components with the same function have consistent labeling and appearance across the application (e.g., "Add" buttons, "Delete" actions, status badges). |
| 3.3.3 Error Suggestion | Partially Supports | Some form validation provides suggestions for correction (e.g., "Password must be at least 8 characters"). Not all error states provide specific remediation guidance. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Supports | Destructive actions (deleting printers, purging jobs, erasing user data) require confirmation dialogs before execution. |
| 4.1.3 Status Messages | Partially Supports | Toast notifications announce operation results (success/failure). Some status changes (printer state updates via WebSocket, job progress) may not be announced to screen readers via ARIA live regions. |
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 302.1 Without Vision | Partially Supports | ARIA landmarks are used for major page regions. Most interactive elements have accessible names. Screen reader users may have difficulty with real-time dashboard updates, chart data, and camera feeds. |
| 302.2 With Limited Vision | Partially Supports | Browser zoom to 200% is supported. Some color-dependent status indicators may be difficult to distinguish with low vision. |
| 302.3 Without Perception of Color | Partially Supports | Most status information includes text labels alongside color. Some compact views may rely on color alone for printer status differentiation. |
| 302.4 Without Hearing | Supports | O.D.I.N. does not rely on audio for any functionality. All information is conveyed visually or through text. |
| 302.5 With Limited Hearing | Supports | Same as 302.4 — no audio dependency. |
| 302.6 Without Speech | Supports | O.D.I.N. does not require speech input. |
| 302.7 With Limited Manipulation | Partially Supports | Most functionality is accessible via keyboard. Some interactions (modal focus management, dropdown navigation) may require mouse input. No multi-finger gestures or fine motor movements are required. |
| 302.8 With Limited Reach and Strength | Supports | O.D.I.N. is a web application with no physical reach requirements. Standard input devices are supported. |
| 302.9 With Limited Language, Cognitive, and Learning Abilities | Partially Supports | The interface uses consistent navigation and clear labels. Technical terminology (filament types, printer protocols) may present comprehension challenges but is inherent to the domain. |
| Area | Current Status | Planned Improvement |
|---|---|---|
| Chart accessibility | Charts (Recharts) lack comprehensive text alternatives | Investigate adding data tables alongside charts as alternatives |
| Modal focus management | Some modals may not trap/release focus correctly | Audit and fix focus trap behavior in all modal components |
| Color-only status indicators | Some compact views rely on color alone | Add text labels or patterns to all status indicators |
| ARIA live regions | Real-time updates may not be announced to screen readers | Add aria-live regions for printer state changes and job progress |
| Focus indicators | Some custom elements have weak focus styling | Add visible focus ring styles to all interactive elements |
| Contrast ratios | Some secondary text and status badges may be below 4.5:1 | Audit and adjust color palette for AA compliance |
For accessibility questions, issues, or requests for information in alternative formats:
Sublab 3DP Email: sublab3dp@gmail.com
We welcome feedback on the accessibility of O.D.I.N. and are committed to improving the experience for all users.
This VPAT is based on the ITI VPAT 2.5 template. It represents Sublab 3DP's best assessment of O.D.I.N.'s accessibility at the time of publication. Accessibility conformance is evaluated against the stated standards and may change with product updates.