Product: zigzag — AI-Powered Startup Journey Platform
Report Date: February 27, 2026 | VPAT Version: 2.5 | Standard: WCAG 2.1 Level AA
zigzag is committed to ensuring digital accessibility for people with disabilities. We have evaluated the zigzag web application against the Web Content Accessibility Guidelines (WCAG) 2.1 Level AA success criteria and have implemented platform-wide improvements to achieve conformance.
Overall conformance level: Supports — the product fully meets the letter and intent of each applicable WCAG 2.1 Level AA criterion, with only minor exceptions noted in this report.
This report covers WCAG 2.1 Level A and Level AA criteria, organized by the four POUR principles.
| Criterion | Conformance | Remarks |
|---|---|---|
| 1.1.1 Non-text Content (A) | Supports | All images carry descriptive alt text; decorative SVGs use aria-hidden="true". |
| 1.2.1 Audio-only / Video-only (A) | Not Applicable | The platform does not include pre-recorded audio or video content. |
| 1.2.2 Captions (A) | Not Applicable | No video content is presented. |
| 1.2.3 Audio Description (A) | Not Applicable | No video content is presented. |
| 1.2.4 Captions – Live (AA) | Not Applicable | No live audio or video. |
| 1.2.5 Audio Description – Prerecorded (AA) | Not Applicable | No video content is presented. |
| 1.3.1 Info and Relationships (A) | Supports | Semantic HTML headings, landmarks (<header>, <nav>, <main>, <footer>), lists, and form labels used throughout. |
| 1.3.2 Meaningful Sequence (A) | Supports | DOM order matches visual reading order. |
| 1.3.3 Sensory Characteristics (A) | Supports | Instructions do not rely solely on shape, color, or location. |
| 1.3.4 Orientation (AA) | Supports | Content is not restricted to a single display orientation. |
| 1.3.5 Identify Input Purpose (AA) | Supports | Input fields use appropriate type attributes and associated labels. |
| 1.4.1 Use of Color (A) | Supports | Color is never the sole indicator; text labels and icons supplement all color-coded elements. |
| 1.4.2 Audio Control (A) | Not Applicable | No auto-playing audio. |
| 1.4.3 Contrast (Minimum) (AA) | Supports | Normal text meets 4.5:1 contrast ratio; large text and UI components meet 3:1. Primary palette (#0A0A2D on white, white on #0A0A2D) exceeds requirements. |
| 1.4.4 Resize Text (AA) | Supports | Text resizes up to 200% without loss of content or functionality; responsive layout adapts gracefully. |
| 1.4.5 Images of Text (AA) | Supports | Real text is used throughout; the zigzag logo is the only image of text (acceptable per WCAG). |
| 1.4.10 Reflow (AA) | Supports | Content reflows to a single column at 320px without horizontal scrolling. Responsive Tailwind CSS breakpoints in use. |
| 1.4.11 Non-text Contrast (AA) | Supports | UI components and graphical objects meet 3:1 contrast ratio. |
| 1.4.12 Text Spacing (AA) | Supports | CSS allows user-override of line-height, letter-spacing, and word-spacing without content clipping. |
| 1.4.13 Content on Hover or Focus (AA) | Supports | Tooltips and dropdowns are dismissible, hoverable, and persistent until dismissed. |
| Criterion | Conformance | Remarks |
|---|---|---|
| 2.1.1 Keyboard (A) | Supports | All interactive elements (buttons, links, form inputs, menus) are operable via keyboard. Custom controls use native <button> elements. |
| 2.1.2 No Keyboard Trap (A) | Supports | Focus can be moved away from all components using standard keyboard controls. Modal dialogs return focus on close. |
| 2.1.4 Character Key Shortcuts (A) | Not Applicable | No single-character keyboard shortcuts are implemented. |
| 2.2.1 Timing Adjustable (A) | Supports | No time limits are imposed on user interactions. Toast notifications auto-dismiss after 5 seconds but are logged to a persistent notification panel. |
| 2.2.2 Pause, Stop, Hide (A) | Supports | Animations respect prefers-reduced-motion media query. |
| 2.3.1 Three Flashes or Below (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. |
| 2.4.2 Page Titled (A) | Supports | All pages have descriptive <title> elements via Next.js metadata. |
| 2.4.3 Focus Order (A) | Supports | Tab order follows a logical, meaningful sequence matching visual layout. |
| 2.4.4 Link Purpose (In Context) (A) | Supports | Link text is descriptive and distinguishable; external links open in new tabs with rel="noopener noreferrer". |
| 2.4.5 Multiple Ways (AA) | Supports | Users can navigate via the top navigation, sidebar (dashboard), footer links, and direct URL entry. |
| 2.4.6 Headings and Labels (AA) | Supports | Headings describe page sections; form labels are associated with controls. |
| 2.4.7 Focus Visible (AA) | Supports | A prominent :focus-visible outline (3px solid #00EBBE) is applied globally to all interactive elements. |
| 2.5.1 Pointer Gestures (A) | Supports | No multipoint or path-based gestures are required; all actions have single-click alternatives. |
| 2.5.2 Pointer Cancellation (A) | Supports | Click actions execute on the up-event; users can cancel by moving the pointer away. |
| 2.5.3 Label in Name (A) | Supports | Accessible names of controls contain or match their visible label text. |
| 2.5.4 Motion Actuation (A) | Not Applicable | No motion-actuated controls are used. |
| Criterion | Conformance | Remarks |
|---|---|---|
| 3.1.1 Language of Page (A) | Supports | lang="en" is set on the <html> element. RTL/Arabic mode sets dir="rtl" and lang="ar". |
| 3.1.2 Language of Parts (AA) | Supports | The root lang attribute dynamically reflects the user's chosen language. |
| 3.2.1 On Focus (A) | Supports | No unexpected context changes occur when a component receives focus. |
| 3.2.2 On Input (A) | Supports | Forms require explicit submission (button press); no context change on input alone. |
| 3.2.3 Consistent Navigation (AA) | Supports | Navigation components (header, sidebar, footer) are consistent across all pages. |
| 3.2.4 Consistent Identification (AA) | Supports | Components with the same function use the same labels and styles across the platform. |
| 3.3.1 Error Identification (A) | Supports | Input errors are identified via text messages displayed adjacent to the errant field and announced via toast notifications with role="status". |
| 3.3.2 Labels or Instructions (A) | Supports | All form fields have visible <label> elements or aria-label attributes. |
| 3.3.3 Error Suggestion (AA) | Supports | Error messages include actionable suggestions where possible (e.g., “Please enter a message”). |
| 3.3.4 Error Prevention – Legal, Financial, Data (AA) | Supports | Destructive actions (project deletion, sign-out) require confirmation modals. Stripe checkout provides review and cancellation steps. |
| Criterion | Conformance | Remarks |
|---|---|---|
| 4.1.1 Parsing (A) (obsolete in WCAG 2.2) | Supports | HTML output is well-formed; React/Next.js generates valid markup. |
| 4.1.2 Name, Role, Value (A) | Supports | Custom controls expose correct accessible names (aria-label), roles (role="menu", role="dialog"), and states (aria-expanded, aria-haspopup). Headless UI (@headlessui/react) components handle modal roles automatically. |
| 4.1.3 Status Messages (AA) | Supports | Toast notifications use role="status" with aria-live="polite", ensuring screen readers announce them without moving focus. Loading states include role="status" with screen-reader-only text. |
While zigzag achieves WCAG 2.1 Level AA conformance across its platform, the following minor limitations exist:
| Area | Description | Remediation Plan |
|---|---|---|
| Third-party auth (Auth0) | The Auth0 Universal Login page is hosted externally and its accessibility is managed by Auth0. zigzag has configured the page with compliant branding where customization is available. | Monitor Auth0's accessibility roadmap; escalate issues as needed. |
| Third-party Stripe checkout | Stripe Checkout is a hosted payment page whose accessibility is managed by Stripe. Stripe publishes its own VPAT. | Rely on Stripe's published accessibility commitments; test post-redirect flows. |
| Complex AI-generated content | Lean Canvas and other AI-generated documents are rendered as structured text, but some very complex layouts (e.g., large financial tables in exported Google Sheets) may rely on the third-party editor's accessibility support. | Continue improving in-app rendering; provide downloadable alternatives where possible. |
| Interactive demo typewriter effect | The homepage demo uses a typewriter animation for visual engagement. The completed text is fully accessible; the animation respects prefers-reduced-motion. | Animation is decorative; completed text remains accessible. |
zigzag is committed to ensuring that our platform is accessible to the widest possible audience, including people with disabilities. We actively monitor and improve the accessibility of our platform and welcome feedback from users.
If you experience any accessibility barriers while using zigzag, please contact us at hello@gozigzag.com and we will work to address the issue promptly.