Skip to main content
Accessibility Statement

Voluntary Product Accessibility Template (VPAT®)

Version 2.5 · WCAG 2.2 Edition

Product Information

Product NameOnChange Web Application
Product Version1.0
Product DescriptionSaaS platform for website change detection, monitoring, and alerting
DateApril 14, 2026
Contactaccessibility@onchange.dev
Evaluation MethodsAutomated testing (axe-core, Lighthouse), manual keyboard/screen reader testing (NVDA, VoiceOver), code review

Applicable Standards/Guidelines

StandardIncluded in Report
WCAG 2.2Level A, Level AA — Yes
Revised Section 508Yes (Chapter 5: 501.1 Scope, 504.2 Content Creation)
EN 301 549Yes (Chapter 9: Web, Chapter 11: Software)

Conformance Level Definitions

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.

Chapter 3: WCAG 2.2 Report

Tables 1 & 2: Success Criteria, Level A & Level AA

CriteriaLevelConformanceRemarks and Explanations
1.1.1 Non-text ContentASupportsAll 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)ANot ApplicableThe product does not include prerecorded audio-only or video-only content.
1.2.2 Captions (Prerecorded)ANot ApplicableThe product does not include prerecorded synchronized media.
1.2.3 Audio Description or Media Alternative (Prerecorded)ANot ApplicableNo prerecorded video content is present in the product.
1.2.4 Captions (Live)AANot ApplicableThe product does not include live audio content.
1.2.5 Audio Description (Prerecorded)AANot ApplicableNo prerecorded video content.
1.3.1 Info and RelationshipsASupportsSemantic 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 SequenceASupportsDOM order matches visual presentation. CSS layout does not alter the meaningful reading sequence.
1.3.3 Sensory CharacteristicsASupportsInstructions do not rely solely on sensory characteristics (shape, color, size, visual location, orientation, or sound).
1.3.4 OrientationAASupportsContent is not restricted to a single display orientation. The application renders correctly in both portrait and landscape modes.
1.3.5 Identify Input PurposeAASupportsForm inputs use appropriate autocomplete attributes (email, name, current-password, new-password) to identify their purpose.
1.4.1 Use of ColorASupportsColor is supplemented by text labels and icons. Status indicators use both color dots and text labels (OK, Changed, Error, Pending).
1.4.2 Audio ControlANot ApplicableThe product does not auto-play audio.
1.4.3 Contrast (Minimum)AAPartially SupportsPrimary 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 TextAASupportsAll 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 TextAASupportsNo images of text are used. All text is rendered as styled HTML/CSS text.
1.4.10 ReflowAASupportsContent reflows properly at 320px CSS viewport width without horizontal scrolling (except data tables). Responsive design with mobile-first approach.
1.4.11 Non-text ContrastAASupportsUI components (buttons, inputs, badges) and graphical objects achieve minimum 3:1 contrast ratio against adjacent colors.
1.4.12 Text SpacingAASupportsContent 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 FocusAASupportsTooltip and dropdown content is dismissible (Escape), hoverable, and persistent until dismissed. Implemented via Base UI accessible primitives.
2.1.1 KeyboardASupportsAll 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 TrapASupportsUsers can navigate to and away from all components using Tab/Shift+Tab. Escape closes modals, dialogs, and dropdown menus.
2.1.4 Character Key ShortcutsASupportsSingle-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 AdjustableASupportsNo time limits are imposed on user interactions. Session tokens have reasonable expiry with automatic refresh.
2.2.2 Pause, Stop, HideASupportsLoading 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 ThresholdASupportsNo content flashes more than three times per second.
2.4.1 Bypass BlocksASupportsSkip-to-main-content link is provided as the first focusable element on every page. Navigation is consistent.
2.4.2 Page TitledASupportsAll pages have descriptive <title> elements using Next.js Metadata API with template pattern: "%s | OnChange".
2.4.3 Focus OrderASupportsTab 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)ASupportsLink text is descriptive in context. Icon-only buttons have aria-label attributes.
2.4.5 Multiple WaysAASupportsContent is reachable via navigation menu, search (Cmd+K), direct URL, and breadcrumb navigation.
2.4.6 Headings and LabelsAASupportsHeadings describe page sections. Form labels clearly identify their associated inputs.
2.4.7 Focus VisibleAASupportsFocus indicators use outline-ring with visible offset. All interactive elements show clear focus state via :focus-visible.
2.4.11 Focus Not Obscured (Minimum)AASupportsSticky header is compact (48px). Focused elements are not fully obscured. Bottom mobile nav accounts for padding.
2.5.1 Pointer GesturesASupportsNo functionality requires multipoint or path-based gestures. All actions use single-pointer click/tap.
2.5.2 Pointer CancellationASupportsActions fire on mouse-up (click), not mouse-down. Users can abort by moving pointer away.
2.5.3 Label in NameASupportsAccessible names of UI components contain the visible text label.
2.5.4 Motion ActuationANot ApplicableNo functionality is triggered by device motion or user motion.
2.5.7 Dragging MovementsAANot ApplicableNo drag-and-drop interactions are required for core functionality.
2.5.8 Target Size (Minimum)AASupportsInteractive targets meet 24x24 CSS pixel minimum. Mobile navigation uses minimum 44x44 touch targets.
3.1.1 Language of PageASupportsHTML lang attribute set to "en" on all pages via Next.js root layout.
3.1.2 Language of PartsAASupportsAll content is in English. No mixed-language sections requiring lang overrides.
3.2.1 On FocusASupportsFocus does not trigger context changes. All actions require explicit activation (click/Enter).
3.2.2 On InputASupportsForm inputs do not automatically submit or trigger navigation on value change.
3.2.3 Consistent NavigationAASupportsNavigation mechanisms (header, bottom nav, sidebar) appear in the same relative order across pages.
3.2.4 Consistent IdentificationAASupportsComponents with the same functionality have consistent labels and icons across all pages.
3.2.6 Consistent HelpASupportsHelp access points (settings link, footer, accessibility contact) are consistently located.
3.3.1 Error IdentificationAPartially SupportsLogin/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 InstructionsASupportsAll form inputs have visible <Label> elements. Placeholder text supplements labels. Required fields are marked.
3.3.3 Error SuggestionAAPartially SupportsAuthentication errors suggest corrective action. Monitor creation form validates URL format. Some advanced forms need enhanced suggestions.
3.3.4 Error Prevention (Legal, Financial, Data)AASupportsDestructive actions (delete monitor, regenerate API key) require confirmation dialogs.
3.3.7 Redundant EntryASupportsUsers are not asked to re-enter previously provided information within a session.
3.3.8 Accessible Authentication (Minimum)AASupportsAuthentication uses standard email/password form fields with paste support and autocomplete. No cognitive function tests (CAPTCHA).
4.1.2 Name, Role, ValueASupportsCustom UI components (dropdowns, dialogs, tabs) use Base UI primitives providing correct ARIA roles, states, and properties.
4.1.3 Status MessagesAASupportsToast 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

CriteriaConformanceRemarks
501.1 Scope — Incorporation of WCAG 2.2 Level A and Level AASupportsSee WCAG 2.2 section in Chapter 3 above.
504.2 Content Creation or EditingNot ApplicableProduct is a monitoring tool, not an authoring tool. Users configure monitors but do not create or edit published content.
602.3 Electronic Support DocumentationSupportsAll 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

CriteriaConformanceRemarks
9.x Web — All WCAG 2.2 Level A and AA CriteriaSupportsSee Chapter 3 WCAG 2.2 table for detailed per-criterion evaluation.
11.x Software — User interface elementsSupportsWeb application UI components use accessible primitives (Base UI) ensuring correct roles, states, and properties.
12.1.2 Accessible DocumentationSupportsProduct documentation is published as accessible HTML web pages.
12.2.4 Accessible Support ServicesSupportsSupport 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.