Report Information
| Product Name | The Parley — ChatGPT Data Migration Tool |
|---|---|
| Report Date | April 2026 |
| Product Description | A browser-based tool that converts ChatGPT data exports into Markdown files for import into BYOK (Bring Your Own Key) applications. All processing occurs client-side; no data is transmitted to servers. |
| Contact | Dylan Goldblatt — ngoldbla@kennesaw.edu |
| Evaluation Methods | Manual source code review of all HTML, CSS, and JavaScript; static analysis against WCAG 2.1 success criteria; keyboard-only navigation testing. |
| Pages Evaluated | index.html, the-parley.html, chatgpt-markdown-converter.html |
| VPAT Version | 2.4 |
| Applicable Standards | WCAG 2.1 Level A & AA, Revised Section 508 |
WCAG 2.1 Level A — Conformance Results
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.1.1 Non-text Content | Partially Supports | Inline SVG icons throughout all pages lack aria-hidden="true" attributes. While decorative SVGs appear adjacent to text headings, screen readers may announce them as unnamed image elements. No <img> elements are present. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Applicable | No audio or video content is present in any page. |
| 1.2.2 Captions (Prerecorded) | Not Applicable | No video or multimedia content is present. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | Not Applicable | No video or multimedia content is present. |
| 1.3.1 Info and Relationships | Does Not Support | All page content is wrapped in generic <div> elements with no semantic landmarks (<main>, <header>, <footer>, <nav>). The organization mode selection cards are not grouped in a <fieldset>. The step indicator widget uses plain divs without list markup or ARIA structure. The "Your Name" input label lacks a for/id association. |
| 1.3.2 Meaningful Sequence | Supports | DOM order matches the visual reading sequence across all pages. CSS layout does not reorder content. |
| 1.3.3 Sensory Characteristics | Supports | Instructions use text labels alongside visual indicators. No instructions rely solely on shape, size, or visual location. |
| 1.4.1 Use of Color | Partially Supports | The selected organization mode card is indicated solely by an orange border color change. No icon, text change, or ARIA state supplements this color signal. Step progress connector bars also rely on color alone to indicate completion. |
| 1.4.2 Audio Control | Not Applicable | No audio plays on any page. |
| 2.1.1 Keyboard | Does Not Support | Organization mode selection cards are <div> elements with @click handlers only. They have no tabindex, no keyboard event handlers, and no ARIA role. Keyboard users cannot select an organization mode — a core feature of the application. Native buttons and form inputs are keyboard-accessible. |
| 2.1.2 No Keyboard Trap | Supports | No focus traps, modal dialogs, or tabindex="-1" focus sinks are present. Focus moves freely through all focusable elements. |
| 2.1.4 Character Key Shortcuts | Not Applicable | No single-character keyboard shortcuts are defined. |
| 2.2.1 Timing Adjustable | Not Applicable | No time limits are imposed. All processing is client-side with no session timeouts. |
| 2.2.2 Pause, Stop, Hide | Supports | The only animation is a temporary loading spinner during conversion. It stops automatically when processing completes and does not loop for more than five seconds under normal conditions. |
| 2.3.1 Three Flashes or Below Threshold | Supports | No content flashes more than three times per second. |
| 2.4.1 Bypass Blocks | Does Not Support | No skip navigation link is provided on any page. No <main> landmark exists for screen reader navigation. Keyboard users must tab through the entire header and step indicator to reach interactive content. |
| 2.4.2 Page Titled | Supports | All pages have descriptive, unique <title> elements: "The Parley - ChatGPT Data Migration Tool" (index and the-parley) and "ChatGPT to Markdown Converter" (chatgpt-markdown-converter). |
| 2.4.3 Focus Order | Partially Supports | Native focusable elements follow a logical DOM order. However, because the organization mode cards are not focusable, the tab order skips from file upload directly to checkboxes, omitting the most critical user choice. |
| 2.4.4 Link Purpose (In Context) | Supports | All link text is descriptive (e.g., "ChatGPT Settings," "Cherry Studio Knowledge Base Documentation"). External links do not warn about opening in new tabs, but link text describes the destination. |
| 2.5.1 Pointer Gestures | Not Applicable | No multipoint or path-based gestures are required. |
| 2.5.2 Pointer Cancellation | Supports | Click handlers fire on the up event (standard browser behavior). No mousedown/pointerdown actions are used. |
| 2.5.3 Label in Name | Supports | All visible button labels match their accessible names. No aria-label attributes contradict visible text. |
| 2.5.4 Motion Actuation | Not Applicable | No device motion or shake-based features are implemented. |
| 3.1.1 Language of Page | Supports | All pages declare <html lang="en">. |
| 3.2.1 On Focus | Supports | No element triggers a context change (navigation, form submission) on focus. |
| 3.2.2 On Input | Supports | Form controls update reactive data only. No auto-submission or navigation occurs on input change. Conversion requires an explicit button press. |
| 3.3.1 Error Identification | Does Not Support | All error conditions use alert() dialogs. Error messages are generic ("Please complete all required fields") and do not identify the specific field in error. No inline error messages, aria-invalid attributes, or aria-describedby associations are used. |
| 3.3.2 Labels or Instructions | Partially Supports | Checkbox labels are correctly associated via wrapping <label> elements. The file input has a for/id association. However, the "Your Name" text input label lacks a for/id association — screen readers announce only the placeholder text. |
| 4.1.2 Name, Role, Value | Does Not Support | Organization mode cards have no ARIA role, no aria-checked/aria-pressed state, and no accessible name. The progress bar lacks role="progressbar" and aria-valuenow. The loading spinner has no role="status" or label. Step indicator badges communicate state through CSS class changes with no ARIA equivalent. |
WCAG 2.1 Level AA — Conformance Results
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 1.2.4 Captions (Live) | Not Applicable | No live audio or video content. |
| 1.2.5 Audio Description (Prerecorded) | Not Applicable | No video content. |
| 1.3.4 Orientation | Supports | No CSS or JavaScript locks the viewport to a single orientation. Content reflows for both portrait and landscape. |
| 1.3.5 Identify Input Purpose | Does Not Support | The "Your Name" text input does not include an autocomplete="name" attribute on any page. The file input does not require autocomplete. |
| 1.4.3 Contrast (Minimum) | Partially Supports | Body text contrast (~12:1) passes AA. However, the primary button color (hsl 38,70%,45%) with near-white text achieves only ~3.1:1, which fails AA for normal-sized text. Muted foreground text on the card background achieves ~4.0:1, below the 4.5:1 threshold. The chatgpt-markdown-converter page uses a gradient button (~3.8:1) that is borderline. |
| 1.4.4 Resize Text | Partially Supports | Font sizes use Tailwind's rem-based scale, which responds to browser text-size changes. No px-based font sizes appear in custom CSS. The step indicator layout may compress at large text sizes due to fixed horizontal layout without responsive wrapping. |
| 1.4.5 Images of Text | Supports | No text is rendered as images. All text is HTML content. |
| 1.4.10 Reflow | Partially Supports | Main content uses responsive grid classes that collapse to single-column at narrow viewports. The step indicator row does not wrap at 320px width, potentially causing horizontal overflow. |
| 1.4.11 Non-text Contrast | Does Not Support | Card borders (gray-300, ~1.3:1 against card background), the upload drop-zone dashed border (~1.3:1), and the progress bar track (~1.2:1) all fall well below the 3:1 requirement for UI component boundaries. |
| 1.4.12 Text Spacing | Supports | No CSS uses !important to lock line-height, letter-spacing, word-spacing, or paragraph spacing. User overrides are not blocked. |
| 1.4.13 Content on Hover or Focus | Not Applicable | No tooltips, popovers, or hover-triggered content overlays are present. |
| 2.4.7 Focus Visible | Partially Supports | Text inputs have explicit focus:ring-2 styles. Native buttons and checkboxes rely on browser-default focus indicators, which are visible but may not meet the enhanced 2px minimum in all browsers. No global focus suppression (outline: none) is applied. |
| 2.5.8 Target Size (Minimum) | Supports | Interactive elements (buttons, checkboxes, organization mode cards, file upload zone) all have generous touch targets. The smallest targets are the checkboxes, which use standard browser rendering at adequate size. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Not Applicable | No legal, financial, or data-deletion transactions occur. The tool converts files client-side; original data is never modified. |
| 4.1.3 Status Messages | Does Not Support | File upload confirmation, conversion progress updates, and the "Conversion Complete" announcement all appear via Alpine.js x-show without aria-live regions or role="status". Screen reader users receive no notification of these state changes. |
Revised Section 508 — Chapter 3: Functional Performance Criteria
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 302.1 Without Vision | Partially Supports | Page content is text-based and generally readable by screen readers. However, the organization mode selection is inaccessible (no ARIA roles or keyboard support), and status changes lack aria-live announcements. |
| 302.2 With Limited Vision | Partially Supports | Text scales with browser zoom. Some UI component borders (cards, upload zone) have insufficient contrast against their backgrounds (~1.3:1). Primary button text contrast is marginal. |
| 302.3 Without Perception of Color | Partially Supports | The selected organization mode card is distinguished only by border color. Step progress is indicated only by color change on connector bars. |
| 302.4 Without Hearing | Not Applicable | No audio content is presented. |
| 302.5 With Limited Hearing | Not Applicable | No audio content is presented. |
| 302.6 Without Speech | Not Applicable | No speech input is required. |
| 302.7 With Limited Manipulation | Partially Supports | Native form controls (buttons, checkboxes, text input) are keyboard-operable. The organization mode selection requires mouse clicks on non-focusable div elements. |
| 302.8 With Limited Reach and Strength | Not Applicable | Web application — no physical reach requirements. |
| 302.9 With Limited Language, Cognitive, and Learning Abilities | Supports | The interface uses a clear three-step wizard pattern with numbered indicators, short labels, and consistent layout. Instructions are written in plain English. |
Revised Section 508 — Chapters 4 & 5
| Chapter | Conformance Level | Remarks |
|---|---|---|
| Chapter 4 — Hardware (402–415) | Not Applicable | This product is a web application and does not include hardware components. |
| Chapter 5 — Software (501–504) | Not Applicable | This product is a web application accessed through standard web browsers. It is not native platform software. |
Revised Section 508 — Chapter 6: Support Documentation and Services
| Criteria | Conformance Level | Remarks and Explanations |
|---|---|---|
| 602.2 Accessibility and Compatibility Features | Partially Supports | This accessibility conformance report documents known accessibility characteristics. In-product documentation of accessibility features is not yet provided. |
| 602.3 Electronic Support Documentation | Supports | All documentation is delivered as HTML web pages, which are accessible to assistive technologies. |
| 602.4 Alternate Formats for Non-Electronic Support Documentation | Not Applicable | No printed documentation exists. |
| 603.2 Information on Accessibility and Compatibility Features | Partially Supports | This ACR is publicly available. Formal accessibility documentation for end users is in development. |
| 603.3 Accommodation of Communication Needs | Supports | Accessibility inquiries can be directed via email to ngoldbla@kennesaw.edu. |
Known Issues & Remediation Plan
Priority 1 — Core Functionality Barriers (Level A)
The four organization mode cards use <div @click> without tabindex, keyboard handlers, or ARIA roles. Keyboard-only users cannot select an organization mode. Remediation: Replace with a role="radiogroup" pattern with keyboard navigation and aria-checked state.
No <header>, <main>, <footer>, or <nav> elements are used. Screen reader users cannot navigate by landmark. Remediation: Wrap content in appropriate semantic elements.
alert()
Form validation errors display generic alert() dialogs that do not identify the specific field in error. Remediation: Implement inline error messages with aria-invalid and aria-describedby associations.
No skip link is provided on any page. Remediation: Add a "Skip to main content" link as the first focusable element.
Priority 2 — Information Access Gaps (Level A/AA)
aria-live Regions for Status Messages
File upload confirmation, conversion progress, and completion announcements appear visually but are not communicated to screen readers. Remediation: Add role="status" and aria-live="polite" to dynamic content regions.
The conversion progress bar has no role="progressbar", aria-valuenow, or aria-valuemin/aria-valuemax. Remediation: Add standard progressbar ARIA attributes.
Priority 3 — Visual & Contrast Issues (Level AA)
The golden-amber primary button color with near-white text achieves ~3.1:1, below the 4.5:1 AA threshold for normal text. Remediation: Darken the primary color or use dark text on light buttons.
Card borders, the upload drop zone, and the progress bar track are ~1.3:1 against their backgrounds (3:1 required). Remediation: Darken border colors to at least gray-400/gray-500.
aria-hidden
Decorative SVG icons are exposed to assistive technology as unnamed images. Remediation: Add aria-hidden="true" to all decorative SVGs.
Accessibility Contact
For accessibility questions, concerns, or to request accommodations:
Dylan Goldblatt
ngoldbla@kennesaw.edu
Legal Disclaimer
This report covers the accessibility conformance of The Parley as evaluated in April 2026. Conformance may change as the product is updated. This document is informational and does not constitute a legal guarantee of accessibility.
Generated using VPAT 2.4 template. VPAT is a registered trademark of the Information Technology Industry Council (ITI).