Accessibility Conformance Report

PM Stage Accessibility Conformance Report

WCAG Edition (based on VPAT® Version 2.5)

Name of Product/VersionPM Stage — Web application, rolling release (version = deployed commit shown at /api/health)
Report Date2026-10-14
Report StatusDraft — automated, scripted, macOS VoiceOver and iPhone VoiceOver (public flows) checks complete; NVDA and iPhone workspace passes scheduled
Product DescriptionPM Stage is a web application for in-house creative and marketing teams. It brings project and task management, request forms, email communications, digital business cards, photo-request handling, brand lockups and proof review into one workspace. People use it in a desktop or mobile browser; requesters and clients also reach public pages without an account (request forms, business cards, QR landing pages, proof viewers and review links).
Contact Informationsupport@pmstage.com
NotesPM Stage is built and maintained in-house and released continuously. This report is produced from a criteria register kept with the source code and is regenerated after each evaluation pass; the date above is the last pass. Where a criterion shows 'Not Evaluated', manual testing is scheduled but has not been completed; automated findings are reported as soon as they exist. Level AAA criteria are listed but not claimed.
Evaluation Methods UsedAutomated rules. axe-core 4.11 (WCAG 2.x A/AA rule set) run through Playwright on every public and workspace page listed in the scope, at desktop (1280 px) and phone (375 px) sizes in Chrome, and again in WebKit (the iOS Safari engine) at iPhone 15 size for the public pages, after each release. Command: npm run a11y:scan. Scripted keyboard and structure checks. A Playwright script tabs through every page and records focus order, visible focus, keyboard traps, the skip link, unnamed controls, focus hidden behind other content and focus-triggered changes; it also checks reflow at 320 px, 200% zoom, WCAG text spacing, headings and landmarks, autocomplete on personal-data fields, generic link text, consistent navigation, pause controls on rotating content, and required-field errors on public forms. Command: npm run a11y:eval. Review by the development team. Criteria that need judgement (media, timing, sensory and colour cues, help, authentication, error prevention, pointer alternatives) are reviewed against the product's behaviour and code, with the surface named in each remark. Screen-reader testing. VoiceOver on macOS with Safari: a scripted pass walks every item on each public and workspace page the way a VoiceOver user does (VO+Right) and records the text VoiceOver speaks; transcripts are kept as evidence and controls announced without a name, images read as file names and generic links are reported. Command: npm run a11y:voiceover. VoiceOver on iPhone (Safari) was run by hand over the public flows (request form, business card, sign-in) with no issues. NVDA on Windows and the iPhone pass over the workspace flows are scheduled and not yet complete.

Scope of this report

Public pages (no account)

• Marketing site (pmstage.com)

• Sign in, sign up, email verification and two-step verification

• Request forms (/f/…)

• Digital business cards (/card/…)

• QR landing pages (/q/…)

• Production Portal viewers and client review links (/view/…, /review/…)

• Personal pages (/p/…)

• Privacy, Terms and Sub-processors

Workspace (signed in)

• Dashboard home and Photo Services

• Projects: list, board, task details, subtasks, comments

• Forms builder and submissions

• Communications (email templates, campaigns)

• Business card editor

• Production Portal editor

• Brand permissions and workflows

• Lockup generator

• Calendar and Programs

• Teams, members and settings

• Trash and Support

Representative flows tested

1. Sign in, sign out and recover a password

2. Accept an invitation and join a team

3. Create a project, add tasks and subtasks, move them between sections

4. Update a task from the list and from the details panel (status, assignee, dates, comments, attachments)

5. Build a request form, publish it and share the link

6. Fill in and submit a public request form, including file upload and multi-day entries

7. Review submissions and act on a request (photo request processing)

8. Create and edit a digital business card, including the header, banners and QR block

9. Open a public business card and save the contact

10. Compose and send a communication from a template

11. Review a proof in the Production Portal viewer and leave a comment

12. Manage team members, roles and settings

13. Navigate the workspace with the sidebar, search and keyboard only

14. Use the application at 200% and 400% zoom and on a phone-sized screen

Scripted evaluations merged into this report

• public: 8 pages on https://pmstage.com, 2026-10-14 (2026-10-14-07-09-18-public.json)

• dashboard: 10 pages on https://pmstage.com, 2026-10-14 (2026-10-14-08-46-34-dashboard.json)

• editors: 4 pages on https://pmstage.com, 2026-10-14 (2026-10-14-09-00-00-editors.json)

Non-text contrast measurements merged into this report

• dashboard: 10 pages, 2026-10-14 (2026-10-14-07-12-40-dashboard.json)

• editors: 4 pages, 2026-10-14 (2026-10-14-07-13-27-editors.json)

• public: 8 pages, 2026-10-14 (2026-10-14-07-33-22-public.json)

Screen-reader passes merged into this report

• public: VoiceOver on macOS with Safari, 8 pages, 2026-10-14 (2026-10-14-05-24-27-public.json)

• dashboard: VoiceOver on macOS with Safari, 10 pages, 2026-10-14 (2026-10-14-05-34-36-dashboard.json)

Automated scans merged into this report

• public: 16 page views on https://pmstage.com, 2026-10-14 (2026-10-14-07-06-53-public.json)

• public-webkit-iPhone15: 8 page views on https://pmstage.com, 2026-10-14 (2026-10-14-07-07-40-public.json)

• dashboard: 20 page views on https://pmstage.com, 2026-10-14 (2026-10-14-07-07-58-dashboard.json)

Applicable Standards/Guidelines

This report covers the degree of conformance for the following accessibility standard/guidelines:

Standard/GuidelineIncluded In Report
Web Content Accessibility Guidelines 2.2Level A (Yes), Level AA (Yes), Level AAA (No — listed, not claimed)

WCAG 2.2 is backwards compatible: every Level A and AA criterion of WCAG 2.0 and 2.1 is included in the tables below.

Terms

The terms used in the Conformance Level information are defined as follows:

• 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. In a final report this is only used for WCAG Level AAA criteria; while this report is a draft it also marks Level A/AA criteria whose manual verification is still pending.

WCAG 2.2 Report

Note: When reporting on conformance with the WCAG 2.2 Success Criteria, they are scoped for full pages, complete processes, and accessibility-supported ways of using technology as documented in the WCAG 2.2 Conformance Requirements.

Table 1: Success Criteria, Level A

CriteriaConformance LevelRemarks and Explanations
1.1.1 Non-text Content (Level A)SupportsVoiceOver (macOS, Safari) read 1677 items across 18 pages with nothing announced without a name. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported. Automated rules passed on 18 routes (desktop and phone, Chrome and WebKit).
1.2.1 Audio-only and Video-only (Prerecorded) (Level A)Not ApplicablePM Stage’s own interface has no audio-only or video-only media. Customers may add video to Production Portal proofs; that is customer content and is covered under 1.2.2. Last verified 2026-10-14.
1.2.2 Captions (Prerecorded) (Level A)Partially SupportsThe product’s interface contains no video. The Production Portal viewer plays video that customers upload into a proof; the viewer does not yet offer a caption track, so captions are available only when the file itself carries them. Last verified 2026-10-14.
1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)Partially SupportsAs 1.2.2: no media of our own; customer-uploaded video in Production Portal proofs has no audio-description or transcript option in the viewer. Last verified 2026-10-14.
1.3.1 Info and Relationships (Level A)SupportsScripted checks passed on all 22 page view(s). VoiceOver (macOS, Safari) read 1677 items across 18 pages with nothing announced without a name. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported.
1.3.2 Meaningful Sequence (Level A)SupportsVoiceOver (macOS, Safari) read 1677 items across 18 pages with nothing announced without a name. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported. Reading order in the VoiceOver transcripts matches the visual order on every page walked.
1.3.3 Sensory Characteristics (Level A)SupportsInstructions refer to things by name, not by shape, colour or position: required fields are marked with an asterisk and the word “required” in the error message, actions are labelled buttons, and drag handles are accompanied by named menu actions. Reviewed on request forms, the task list and the builders. Last verified 2026-10-14.
1.4.1 Use of Color (Level A)SupportsColour never carries meaning alone: links in running text are underlined, task statuses show a label next to the colour chip, required fields use an asterisk and text, and validation errors are written out. Verified with the automated link-in-text-block rule on every public page. Last verified 2026-10-14.
1.4.2 Audio Control (Level A)Not ApplicableNothing plays audio automatically. Video in Production Portal proofs starts only when the viewer presses play. Last verified 2026-10-14.
2.1.1 Keyboard (Level A)SupportsScripted checks passed on all 22 page view(s).
2.1.2 No Keyboard Trap (Level A)SupportsScripted checks passed on all 22 page view(s).
2.1.4 Character Key Shortcuts (Level A, WCAG 2.1)SupportsThere are no single-character keyboard shortcuts. The shortcuts that exist use modifier keys (for example Ctrl/⌘+Z and Ctrl/⌘+Shift+Z in the form and card editors). Last verified 2026-10-14.
2.2.1 Timing Adjustable (Level A)SupportsNothing in the product has a time limit except the sign-in session, which an administrator sets in Security settings and which can be extended by signing in again; the email verification code is valid for ten minutes and a new one can be requested without limit. Last verified 2026-10-14.
2.2.2 Pause, Stop, Hide (Level A)SupportsScripted checks passed on all 1 page view(s).
2.3.1 Three Flashes or Below Threshold (Level A)SupportsNothing flashes. Transitions are fades, slides and wipes under 1.5 seconds with no strobing. Last verified 2026-10-14.
2.4.1 Bypass Blocks (Level A)SupportsScripted checks passed on all 14 page view(s).
2.4.2 Page Titled (Level A)SupportsScripted checks passed on all 22 page view(s).
2.4.3 Focus Order (Level A)SupportsTab order follows the visual order: the skip link, then the sidebar, then the page content top to bottom. Measured by the scripted keyboard walk on public, workspace and editor pages (backward jumps counted). Scripted checks passed on all 22 page view(s). Last verified 2026-10-14.
2.4.4 Link Purpose (In Context) (Level A)SupportsScripted checks passed on all 22 page view(s). VoiceOver (macOS, Safari) read 1677 items across 18 pages with nothing announced without a name. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported.
2.5.1 Pointer Gestures (Level A, WCAG 2.1)SupportsNo gesture needs more than one pointer or a drawn path: swiping a slideshow has arrow buttons and dots, pinch zoom in the proof viewer has zoom buttons, and drag-and-drop has single-click alternatives where it exists (see 2.5.7). iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported. Last verified 2026-10-14.
2.5.2 Pointer Cancellation (Level A, WCAG 2.1)SupportsActions trigger on release, not press; drags can be cancelled by dropping back where they started or pressing Escape. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported. Last verified 2026-10-14.
2.5.3 Label in Name (Level A, WCAG 2.1)SupportsVisible labels are the accessible names: buttons use their text, icon buttons carry the label the tooltip shows, and the automated rule for label-in-name passes on every page. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported. Last verified 2026-10-14.
2.5.4 Motion Actuation (Level A, WCAG 2.1)Not ApplicableNothing is operated by moving or shaking the device. Last verified 2026-10-14.
3.1.1 Language of Page (Level A)SupportsScripted checks passed on all 22 page view(s).
3.2.1 On Focus (Level A)SupportsScripted checks passed on all 22 page view(s).
3.2.2 On Input (Level A)SupportsChanging a field never submits a form or moves you elsewhere. Autosave in the task details and editors saves in place and announces it; filters update the list on the same page. Last verified 2026-10-14.
3.2.6 Consistent Help (Level A, WCAG 2.2)SupportsHelp is in the same place on every workspace page (Support in the sidebar) and every public page links to support@pmstage.com in its footer. Last verified 2026-10-14.
3.3.1 Error Identification (Level A)SupportsScripted checks passed on all 2 page view(s). iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported.
3.3.2 Labels or Instructions (Level A)SupportsScripted checks passed on all 2 page view(s). iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported.
3.3.7 Redundant Entry (Level A, WCAG 2.2)SupportsNothing asks for the same information twice in one process: invitations carry the email address into sign-up, and the workspace remembers the organisation and team you joined. Last verified 2026-10-14.
4.1.1 Parsing (Level A)Not ApplicableWCAG 2.2 removed this criterion (it is always satisfied). Listed for completeness with older report templates. Last verified 2026-10-14.
4.1.2 Name, Role, Value (Level A)SupportsScripted checks passed on all 22 page view(s). VoiceOver (macOS, Safari) read 1677 items across 18 pages with nothing announced without a name. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported.

Table 2: Success Criteria, Level AA

CriteriaConformance LevelRemarks and Explanations
1.2.4 Captions (Live) (Level AA)Not ApplicableNo live audio or video anywhere in the product. Last verified 2026-10-14.
1.2.5 Audio Description (Prerecorded) (Level AA)Partially SupportsAs 1.2.3 for customer-uploaded video in Production Portal proofs. Last verified 2026-10-14.
1.3.4 Orientation (Level AA, WCAG 2.1)SupportsNo screen locks to one orientation; every page is used in portrait and landscape on phones and tablets. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported. Last verified 2026-10-14.
1.3.5 Identify Input Purpose (Level AA, WCAG 2.1)SupportsScripted checks passed on all 5 page view(s).
1.4.3 Contrast (Minimum) (Level AA)SupportsAutomated rules passed on 18 routes (desktop and phone, Chrome and WebKit).
1.4.4 Resize Text (Level AA)SupportsScripted checks passed on all 22 page view(s).
1.4.5 Images of Text (Level AA)SupportsText is real text throughout. The only images of text are customer logos and banners that customers upload (brand marks), which WCAG exempts. Last verified 2026-10-14.
1.4.10 Reflow (Level AA, WCAG 2.1)SupportsPublic pages and workspace lists reflow to 320 px with no sideways scrolling. The three editors (form builder, card editor, Production Portal builder) and the project task grid are two-dimensional working surfaces sized for 1024 px and wider; their canvases and grids scroll inside their own regions, which WCAG lists as the exception for content that requires two-dimensional layout. Scripted checks passed on all 18 page view(s).
1.4.11 Non-text Contrast (Level AA, WCAG 2.1)SupportsText-field, select and switch boundaries use a 3:1 border on light and dark themes; icon-only buttons rely on icons that meet 3:1; focus indicators are measured against their surroundings. Measured by script (npm run a11y:contrast) on public, workspace and editor pages. Measured 485 controls on 22 pages: every control boundary, icon and focus indicator is at least 3:1 against its surroundings. Last verified 2026-10-14.
1.4.12 Text Spacing (Level AA, WCAG 2.1)SupportsScripted checks passed on all 22 page view(s).
1.4.13 Content on Hover or Focus (Level AA, WCAG 2.1)SupportsTooltips and hover cards (task previews, column tooltips) appear on hover and focus, can be dismissed with Escape, stay open while the pointer moves onto them, and go away when the pointer or focus leaves. Last verified 2026-10-14.
2.4.5 Multiple Ways (Level AA)SupportsWorkspace pages are reachable from the sidebar navigation, from search, from links inside related records (project → task → request) and by direct URL. Public pages are single pages reached by their link or QR code. Last verified 2026-10-14.
2.4.6 Headings and Labels (Level AA)SupportsScripted checks passed on all 22 page view(s). VoiceOver (macOS, Safari) read 1677 items across 18 pages with nothing announced without a name. iPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported.
2.4.7 Focus Visible (Level AA)SupportsScripted checks passed on all 22 page view(s).
2.4.11 Focus Not Obscured (Minimum) (Level AA, WCAG 2.2)SupportsScripted checks passed on all 22 page view(s).
2.5.7 Dragging Movements (Level AA, WCAG 2.2)SupportsEvery drag-and-drop surface has a single-pointer and a keyboard alternative: tasks move between sections and projects through menus and bulk actions; and in the project task list, the subtask list, the form builder and the business card builder each drag handle is a named, focusable control — Space picks the item up, the arrow keys move it, Space drops it and Escape cancels, with spoken instructions and position announcements. Verified by script on the card builder (an element moved one position down by keyboard alone). Last verified 2026-10-14.
2.5.8 Target Size (Minimum) (Level AA, WCAG 2.2)SupportsiPhone VoiceOver (Safari) manual pass on the public pages (request form, business card, sign-in) by the development team on 2026-10-14, exploring by touch with VoiceOver reading each element: no issues reported. Automated rules passed on 18 routes (desktop and phone, Chrome and WebKit).
3.1.2 Language of Parts (Level AA)SupportsThe interface is in English and marked as such. Customer content is shown as entered; the editors do not yet offer a language mark-up for passages in other languages, which WCAG allows for user-generated text. Last verified 2026-10-14.
3.2.3 Consistent Navigation (Level AA)SupportsScripted checks passed on all 1 page view(s).
3.2.4 Consistent Identification (Level AA)SupportsThe same action has the same name and icon everywhere: Save, Add to Contacts, New Project, Restore and Delete use the same labels across the product. Last verified 2026-10-14.
3.3.3 Error Suggestion (Level AA)SupportsError messages say what to change: “Email is required”, “Please enter a valid email address”, and date and time fields name the expected format. Last verified 2026-10-14.
3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)SupportsDeleting a project, a card or a form asks for confirmation and goes to Trash, from which it can be restored for 30 days; emptying Trash and permanent deletion ask for a second confirmation; form submissions can be reviewed before sending when the form uses the review step. Last verified 2026-10-14.
3.3.8 Accessible Authentication (Minimum) (Level AA, WCAG 2.2)SupportsSigning in needs no memory or transcription test: email and password with the browser’s password manager allowed, Google sign-in, and a verification code sent by email that can be pasted. Two-step verification uses an authenticator app or an email code; there is no CAPTCHA puzzle to solve (the bot check is a silent one). Last verified 2026-10-14.
4.1.3 Status Messages (Level AA, WCAG 2.1)SupportsSaves, failures and task changes are announced through a visually hidden live region (the save badge, the card editor and task edits call it); public-form validation errors are marked as alerts. Checked by script on the public forms; VoiceOver confirmation of the workspace announcements is part of the next AT pass. Scripted checks passed on all 2 page view(s). Last verified 2026-10-14.

Table 3: Success Criteria, Level AAA

CriteriaConformance LevelRemarks and Explanations
1.2.6 Sign Language (Prerecorded) (Level AAA)Not Evaluated—
1.2.7 Extended Audio Description (Prerecorded) (Level AAA)Not Evaluated—
1.2.8 Media Alternative (Prerecorded) (Level AAA)Not Evaluated—
1.2.9 Audio-only (Live) (Level AAA)Not Evaluated—
1.3.6 Identify Purpose (Level AAA, WCAG 2.1)Not Evaluated—
1.4.6 Contrast (Enhanced) (Level AAA)Not Evaluated—
1.4.7 Low or No Background Audio (Level AAA)Not Evaluated—
1.4.8 Visual Presentation (Level AAA)Not Evaluated—
1.4.9 Images of Text (No Exception) (Level AAA)Not Evaluated—
2.1.3 Keyboard (No Exception) (Level AAA)Not Evaluated—
2.2.3 No Timing (Level AAA)Not Evaluated—
2.2.4 Interruptions (Level AAA)Not Evaluated—
2.2.5 Re-authenticating (Level AAA)Not Evaluated—
2.2.6 Timeouts (Level AAA, WCAG 2.1)Not Evaluated—
2.3.2 Three Flashes (Level AAA)Not Evaluated—
2.3.3 Animation from Interactions (Level AAA, WCAG 2.1)Not Evaluated—
2.4.8 Location (Level AAA)Not Evaluated—
2.4.9 Link Purpose (Link Only) (Level AAA)Not Evaluated—
2.4.10 Section Headings (Level AAA)Not Evaluated—
2.4.12 Focus Not Obscured (Enhanced) (Level AAA, WCAG 2.2)Not Evaluated—
2.4.13 Focus Appearance (Level AAA, WCAG 2.2)Not Evaluated—
2.5.5 Target Size (Enhanced) (Level AAA, WCAG 2.1)Not Evaluated—
2.5.6 Concurrent Input Mechanisms (Level AAA, WCAG 2.1)Not Evaluated—
3.1.3 Unusual Words (Level AAA)Not Evaluated—
3.1.4 Abbreviations (Level AAA)Not Evaluated—
3.1.5 Reading Level (Level AAA)Not Evaluated—
3.1.6 Pronunciation (Level AAA)Not Evaluated—
3.2.5 Change on Request (Level AAA)Not Evaluated—
3.3.5 Help (Level AAA)Not Evaluated—
3.3.6 Error Prevention (All) (Level AAA)Not Evaluated—
3.3.9 Accessible Authentication (Enhanced) (Level AAA, WCAG 2.2)Not Evaluated—

Summary

LevelSupportsPartially SupportsDoes Not SupportNot ApplicableNot Evaluated
A262040
AA221010
AAA000031

Generated by scripts/acr-build.mjs on 2026-10-14 from the criteria register (87 criteria). VPAT® is a registered service mark of the Information Technology Industry Council (ITI).