Skip to main content

Voluntary Product Accessibility Template (VPAT)

WCAG 2.1 Level AA Accessibility Conformance Report

Report Date: July 23, 2026 | Version 1.0

Product Information

Product Name
EatPal - Meal Planning Platform
Product Version
Web Application v2.0
Vendor
EatPal, Inc.
Evaluation Methods
Automated testing (axe-core, Lighthouse), Manual testing, Screen reader testing (NVDA, VoiceOver)
Applicable Standards
WCAG 2.1 Level AA, Section 508, ADA Title III

Conformance Summary

42
Supports
3
Partially Supports
5
Not Applicable
93%
Overall Compliance

EatPal substantially conforms to WCAG 2.1 Level AA. This conformance report documents the accessibility status of all applicable success criteria. The evaluation was conducted using a combination of automated testing tools, manual inspection, and assistive technology testing.

Conformance Level Definitions

Supports:
The functionality of the product has at least one method that meets the criterion without known defects.
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.

WCAG 2.1 Level A Success Criteria

CriterionSuccess CriterionConformanceRemarks and Explanations
1.1.1Non-text Content
Supports
All images have alt text. Decorative images use aria-hidden or empty alt.
1.2.1Audio-only and Video-only (Prerecorded)
Not Applicable
No audio-only or video-only content.
1.2.2Captions (Prerecorded)
Not Applicable
No prerecorded video content with audio.
1.2.3Audio Description or Media Alternative
Not Applicable
No prerecorded video content.
1.3.1Info and Relationships
Supports
Semantic HTML, ARIA landmarks and table headers throughout. Every prerendered page carries exactly one h1 and skips no heading level; five pages jumped h1 to h3 until September 2026 and a gate now checks the built output.
1.3.2Meaningful Sequence
Supports
Reading order matches visual order. Tab sequence is logical.
1.3.3Sensory Characteristics
Supports
Instructions don't rely solely on shape, size, or location. Color is not the only indicator.
1.4.1Use of Color
Supports
Color is never the sole indicator. Icons, text, and patterns supplement color coding.
1.4.2Audio Control
Supports
No auto-playing audio. All media requires user interaction.
2.1.1Keyboard
Supports
All functionality accessible via keyboard. Custom components support standard keyboard patterns.
2.1.2No Keyboard Trap
Supports
Radix-based modal dialogs trap and release focus correctly. The custom accessibility-settings panel cycles focus within itself while open and returns focus to the trigger on Escape, on the close button and on a backdrop click.
2.1.4Character Key Shortcuts
Supports
Keyboard shortcuts use modifier keys (Ctrl/Cmd+K). Can be disabled in settings.
2.2.1Timing Adjustable
Supports
Extended timeout option available in accessibility settings.
2.2.2Pause, Stop, Hide
Supports
Motion can be reduced by the operating system or by the toggle in the accessibility panel, and each switch reaches both engines: framer-motion through a single MotionConfig at the app root, and CSS through a universal rule under both the media query and an html.reduce-motion class. Every looping animation stops under either.
2.3.1Three Flashes or Below Threshold
Supports
No content flashes more than 3 times per second.
2.4.1Bypass Blocks
Supports
Skip to main content link on every page. Activating it moves keyboard focus into the main landmark rather than only scrolling to it.
2.4.2Page Titled
Supports
All pages have unique, descriptive titles via react-helmet-async.
2.4.3Focus Order
Supports
Focus order follows logical reading sequence. Tab index properly managed.
2.4.4Link Purpose (In Context)
Supports
Link text describes destination. Generic links have aria-label.
2.5.1Pointer Gestures
Supports
No multipoint or path-based gestures required. Single pointer alternatives available.
2.5.2Pointer Cancellation
Supports
Actions trigger on up-event. Abort mechanism available for drag operations.
2.5.3Label in Name
Partially Supports
Text controls include their visible label in the accessible name. Icon-only buttons all expose an accessible name; icon-only controls built on other elements are still being reviewed.
2.5.4Motion Actuation
Supports
No motion-activated functionality. All features have standard input alternatives.
3.1.1Language of Page
Supports
HTML lang="en" attribute set on root element.
3.2.1On Focus
Supports
Focus does not trigger unexpected context changes.
3.2.2On Input
Supports
Form inputs do not auto-submit. Changes announced to screen readers.
3.3.1Error Identification
Supports
Form errors clearly identified with text and ARIA. Error messages linked to fields.
3.3.2Labels or Instructions
Supports
All form fields have visible labels. Instructions provided for complex inputs.
4.1.1Parsing
Supports
Valid HTML5. No duplicate IDs. Proper nesting maintained.
4.1.2Name, Role, Value
Partially Supports
Custom components use appropriate ARIA roles, states, and properties. The 38 icon-only buttons that announced as just "button" were named in September 2026 and a gate keeps them named.

WCAG 2.1 Level AA Success Criteria

CriterionSuccess CriterionConformanceRemarks and Explanations
1.2.4Captions (Live)
Not Applicable
No live audio content.
1.2.5Audio Description (Prerecorded)
Not Applicable
No prerecorded video content.
1.3.4Orientation
Supports
Content adapts to portrait and landscape. No orientation lock.
1.3.5Identify Input Purpose
Supports
Form inputs use appropriate autocomplete attributes.
1.4.3Contrast (Minimum)
Partially Supports
The primary brand colour was darkened in September 2026 so that body text and white-on-primary both meet 4.5:1 in the light theme, and the dark theme uses a dark foreground on primary for the same reason; both were previously below 3:1. A high-contrast mode is available. Some components still use hardcoded colours that do not remap under high-contrast mode, and an automated axe scan of the signed-in pages runs in CI against a per-page budget; migration to semantic tokens is in progress.
1.4.4Resize Text
Supports
Text resizes up to 200% without loss of functionality. Font size settings available.
1.4.5Images of Text
Supports
No images of text used for content. Logo is exception per WCAG.
1.4.10Reflow
Supports
Content reflows at 320px width. Every public route is measured in a real browser at that width; the billing toggle and the contact address on this site were fixed in September 2026 after failing it.
1.4.11Non-text Contrast
Supports
UI components and graphics meet 3:1 contrast ratio.
1.4.12Text Spacing
Supports
Content adapts to user-adjusted text spacing without loss of functionality.
1.4.13Content on Hover or Focus
Supports
Tooltips are dismissible, hoverable, and persistent until dismissed.
2.4.5Multiple Ways
Supports
Navigation menu, search, sitemap, and command palette provide multiple paths.
2.4.6Headings and Labels
Supports
Headings and labels describe topic or purpose clearly.
2.4.7Focus Visible
Supports
Focus indicators visible on all interactive elements. Enhanced focus mode available.
3.1.2Language of Parts
Supports
Single language (English) used throughout. lang attribute updated if content language changes.
3.2.3Consistent Navigation
Supports
Navigation components appear consistently across pages.
3.2.4Consistent Identification
Supports
Components with same function have consistent labels and appearance.
3.3.3Error Suggestion
Supports
Error messages provide suggestions for correction when possible.
3.3.4Error Prevention (Legal, Financial, Data)
Supports
Confirmation dialogs for destructive actions. Undo available for data changes.
4.1.3Status Messages
Supports
Status updates announced via ARIA live regions without focus change.

This Voluntary Product Accessibility Template (VPAT) is provided for informational purposes only. The information contained herein is subject to change without notice. EatPal makes no warranties, express or implied, in this document.

This document was prepared based on the product version available at the date of publication. Accessibility features may vary in different versions or configurations of the product. For the most current accessibility information, please contact [email protected].

Contact Information

For questions about this VPAT or to report accessibility issues, please contact: