Voluntary Product Accessibility Template (VPAT®)
Version 2.5 · WCAG 2.2 Edition
Product Information
| Product Name | OnChange Web Application |
| Product Version | 1.0 |
| Product Description | SaaS platform for website change detection, monitoring, and alerting |
| Date | April 14, 2026 |
| Contact | accessibility@onchange.dev |
| Evaluation Methods | Automated testing (axe-core, Lighthouse), manual keyboard/screen reader testing (NVDA, VoiceOver), code review |
Applicable Standards/Guidelines
| Standard | Included in Report |
| WCAG 2.2 | Level A, Level AA — Yes |
| Revised Section 508 | Yes (Chapter 5: 501.1 Scope, 504.2 Content Creation) |
| EN 301 549 | Yes (Chapter 9: Web, Chapter 11: Software) |
Conformance Level Definitions
The functionality of the product has at least one method that meets the criterion without known defects or meets with equivalent facilitation.
Some functionality of the product does not meet the criterion.
The majority of product functionality does not meet the criterion.
The criterion is not relevant to the product.
The product has not been evaluated against the criterion.
Chapter 3: WCAG 2.2 Report
Tables 1 & 2: Success Criteria, Level A & Level AA
| Criteria | Level | Conformance | Remarks and Explanations |
|---|---|---|---|
| 1.1.1 Non-text Content | A | Supports | All functional images, icons, and controls have text alternatives via aria-label or alt attributes. Decorative elements use aria-hidden="true". |
| 1.2.1 Audio-only and Video-only (Prerecorded) | A | Not Applicable | The product does not include prerecorded audio-only or video-only content. |
| 1.2.2 Captions (Prerecorded) | A | Not Applicable | The product does not include prerecorded synchronized media. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | Not Applicable | No prerecorded video content is present in the product. |
| 1.2.4 Captions (Live) | AA | Not Applicable | The product does not include live audio content. |
| 1.2.5 Audio Description (Prerecorded) | AA | Not Applicable | No prerecorded video content. |
| 1.3.1 Info and Relationships | A | Supports | Semantic HTML5 elements (nav, main, header, footer, section) structure all pages. Heading hierarchy (h1-h3) is maintained. Form inputs have associated <label> elements. Data tables use proper <thead>/<tbody> markup. |
| 1.3.2 Meaningful Sequence | A | Supports | DOM order matches visual presentation. CSS layout does not alter the meaningful reading sequence. |
| 1.3.3 Sensory Characteristics | A | Supports | Instructions do not rely solely on sensory characteristics (shape, color, size, visual location, orientation, or sound). |
| 1.3.4 Orientation | AA | Supports | Content is not restricted to a single display orientation. The application renders correctly in both portrait and landscape modes. |
| 1.3.5 Identify Input Purpose | AA | Supports | Form inputs use appropriate autocomplete attributes (email, name, current-password, new-password) to identify their purpose. |
| 1.4.1 Use of Color | A | Supports | Color is supplemented by text labels and icons. Status indicators use both color dots and text labels (OK, Changed, Error, Pending). |
| 1.4.2 Audio Control | A | Not Applicable | The product does not auto-play audio. |
| 1.4.3 Contrast (Minimum) | AA | Partially Supports | Primary text achieves 4.5:1 contrast ratio. Some muted-foreground text in secondary UI elements may approach minimum thresholds in certain theme configurations. Active remediation in progress. |
| 1.4.4 Resize Text | AA | Supports | All text can be resized up to 200% via browser zoom without loss of content or functionality. Layout uses relative units. |
| 1.4.5 Images of Text | AA | Supports | No images of text are used. All text is rendered as styled HTML/CSS text. |
| 1.4.10 Reflow | AA | Supports | Content reflows properly at 320px CSS viewport width without horizontal scrolling (except data tables). Responsive design with mobile-first approach. |
| 1.4.11 Non-text Contrast | AA | Supports | UI components (buttons, inputs, badges) and graphical objects achieve minimum 3:1 contrast ratio against adjacent colors. |
| 1.4.12 Text Spacing | AA | Supports | Content adapts when users override line height (1.5x), letter spacing (0.12em), word spacing (0.16em), and paragraph spacing (2x). |
| 1.4.13 Content on Hover or Focus | AA | Supports | Tooltip and dropdown content is dismissible (Escape), hoverable, and persistent until dismissed. Implemented via Base UI accessible primitives. |
| 2.1.1 Keyboard | A | Supports | All functionality is operable via keyboard. Custom shortcuts: Cmd/Ctrl+K (search), N (new monitor). Tab navigation reaches all interactive elements. |
| 2.1.2 No Keyboard Trap | A | Supports | Users can navigate to and away from all components using Tab/Shift+Tab. Escape closes modals, dialogs, and dropdown menus. |
| 2.1.4 Character Key Shortcuts | A | Supports | Single-character shortcut (N for new monitor) only activates when focus is not on text inputs/textareas. Can be avoided by not pressing the key. |
| 2.2.1 Timing Adjustable | A | Supports | No time limits are imposed on user interactions. Session tokens have reasonable expiry with automatic refresh. |
| 2.2.2 Pause, Stop, Hide | A | Supports | Loading spinners are the only auto-updating content and stop once data loads. No auto-scrolling or blinking content. |
| 2.3.1 Three Flashes or Below Threshold | A | Supports | No content flashes more than three times per second. |
| 2.4.1 Bypass Blocks | A | Supports | Skip-to-main-content link is provided as the first focusable element on every page. Navigation is consistent. |
| 2.4.2 Page Titled | A | Supports | All pages have descriptive <title> elements using Next.js Metadata API with template pattern: "%s | OnChange". |
| 2.4.3 Focus Order | A | Supports | Tab order follows logical left-to-right, top-to-bottom reading order. Focus is managed programmatically in search dialog. |
| 2.4.4 Link Purpose (In Context) | A | Supports | Link text is descriptive in context. Icon-only buttons have aria-label attributes. |
| 2.4.5 Multiple Ways | AA | Supports | Content is reachable via navigation menu, search (Cmd+K), direct URL, and breadcrumb navigation. |
| 2.4.6 Headings and Labels | AA | Supports | Headings describe page sections. Form labels clearly identify their associated inputs. |
| 2.4.7 Focus Visible | AA | Supports | Focus indicators use outline-ring with visible offset. All interactive elements show clear focus state via :focus-visible. |
| 2.4.11 Focus Not Obscured (Minimum) | AA | Supports | Sticky header is compact (48px). Focused elements are not fully obscured. Bottom mobile nav accounts for padding. |
| 2.5.1 Pointer Gestures | A | Supports | No functionality requires multipoint or path-based gestures. All actions use single-pointer click/tap. |
| 2.5.2 Pointer Cancellation | A | Supports | Actions fire on mouse-up (click), not mouse-down. Users can abort by moving pointer away. |
| 2.5.3 Label in Name | A | Supports | Accessible names of UI components contain the visible text label. |
| 2.5.4 Motion Actuation | A | Not Applicable | No functionality is triggered by device motion or user motion. |
| 2.5.7 Dragging Movements | AA | Not Applicable | No drag-and-drop interactions are required for core functionality. |
| 2.5.8 Target Size (Minimum) | AA | Supports | Interactive targets meet 24x24 CSS pixel minimum. Mobile navigation uses minimum 44x44 touch targets. |
| 3.1.1 Language of Page | A | Supports | HTML lang attribute set to "en" on all pages via Next.js root layout. |
| 3.1.2 Language of Parts | AA | Supports | All content is in English. No mixed-language sections requiring lang overrides. |
| 3.2.1 On Focus | A | Supports | Focus does not trigger context changes. All actions require explicit activation (click/Enter). |
| 3.2.2 On Input | A | Supports | Form inputs do not automatically submit or trigger navigation on value change. |
| 3.2.3 Consistent Navigation | AA | Supports | Navigation mechanisms (header, bottom nav, sidebar) appear in the same relative order across pages. |
| 3.2.4 Consistent Identification | AA | Supports | Components with the same functionality have consistent labels and icons across all pages. |
| 3.2.6 Consistent Help | A | Supports | Help access points (settings link, footer, accessibility contact) are consistently located. |
| 3.3.1 Error Identification | A | Partially Supports | Login/signup forms display clear error messages with AlertCircle icon. Dashboard error boundary provides retry. Some form fields under enhancement for inline validation. |
| 3.3.2 Labels or Instructions | A | Supports | All form inputs have visible <Label> elements. Placeholder text supplements labels. Required fields are marked. |
| 3.3.3 Error Suggestion | AA | Partially Supports | Authentication errors suggest corrective action. Monitor creation form validates URL format. Some advanced forms need enhanced suggestions. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Supports | Destructive actions (delete monitor, regenerate API key) require confirmation dialogs. |
| 3.3.7 Redundant Entry | A | Supports | Users are not asked to re-enter previously provided information within a session. |
| 3.3.8 Accessible Authentication (Minimum) | AA | Supports | Authentication uses standard email/password form fields with paste support and autocomplete. No cognitive function tests (CAPTCHA). |
| 4.1.2 Name, Role, Value | A | Supports | Custom UI components (dropdowns, dialogs, tabs) use Base UI primitives providing correct ARIA roles, states, and properties. |
| 4.1.3 Status Messages | AA | Supports | Toast notifications (Sonner) use role="status" for success messages and role="alert" for errors, making them available to assistive technologies without receiving focus. |
Chapter 4: Revised Section 508 Report
Chapter 5 — 501.1 Scope, 504.2 Content Creation or Editing
| Criteria | Conformance | Remarks |
|---|---|---|
| 501.1 Scope — Incorporation of WCAG 2.2 Level A and Level AA | Supports | See WCAG 2.2 section in Chapter 3 above. |
| 504.2 Content Creation or Editing | Not Applicable | Product is a monitoring tool, not an authoring tool. Users configure monitors but do not create or edit published content. |
| 602.3 Electronic Support Documentation | Supports | All support documentation is provided as accessible web pages conforming to WCAG 2.2 AA. |
Chapter 5: EN 301 549 Report
European accessibility requirements for ICT products and services
| Criteria | Conformance | Remarks |
|---|---|---|
| 9.x Web — All WCAG 2.2 Level A and AA Criteria | Supports | See Chapter 3 WCAG 2.2 table for detailed per-criterion evaluation. |
| 11.x Software — User interface elements | Supports | Web application UI components use accessible primitives (Base UI) ensuring correct roles, states, and properties. |
| 12.1.2 Accessible Documentation | Supports | Product documentation is published as accessible HTML web pages. |
| 12.2.4 Accessible Support Services | Supports | Support is available via accessible web forms and email (accessibility@onchange.dev). |
Legal Disclaimer
This VPAT is a self-assessment based on the ITI VPAT® Version 2.5 template and represents our best understanding of the product's accessibility conformance as of the evaluation date. This document is provided for informational purposes and does not constitute a legal warranty. For questions, to request a formal third-party audit, or to report accessibility barriers, contact accessibility@onchange.dev.
VPAT® is a registered trademark of the Information Technology Industry Council (ITI). This report follows the ITI VPAT® 2.5 Rev format for WCAG 2.2 conformance reporting.