#accessibility.chat
accessibility.chat — Luke AI Accessibility Intelligence Platform & Research Engine

ACCESSIBILITY CONFORMANCE REPORT · VPAT 2.5

Accessibility Conformance Report

accessibility.chat (web platform, including the Luke assistant) evaluated against WCAG 2.2 Level AA. Every row names the evidence behind it, and the rows nothing measured say so.

How to read this report

Most rows below say Partially Supports, and that is deliberate. Automated tooling detects roughly a third of WCAG issues. Where a criterion passed automated checks but no person verified it, this report says Partially Supports rather than Supports, because “the checker found nothing” and “this criterion is met” are different claims.

One criterion is reported as Does Not Support, and no criterion has been marked Supports on the strength of automated evidence alone. In 2025 the FTC fined an accessibility vendor $1M because its claims were not supported by competent and reliable evidence. This is the document where that standard applies, so it is written to survive being checked.

Product and report information

Product and report metadata
Productaccessibility.chat (web platform, including the Luke assistant) — Public beta
Report date2026-08-29
Standard evaluatedWCAG 2.2 Level AA
Also relevantSection 508 (Revised, 2017); EN 301 549 v3.2.1
Report formatVPAT® 2.5 (ITI, November 2023) structure
Evaluated byaccessibility.chat engineering. This is a self-assessment; no independent audit has been commissioned.
Contactaccessibility@accessibility.chat

Summary

  • 21Supports
  • 21Partially Supports
  • 1Does Not Support
  • 8Not Applicable
  • 4Not Evaluated

55 success criteria assessed across WCAG 2.2 Level A and Level AA.

Evaluation methods

  1. axe-core 4.13 in Chromium, colour contrast enabled

    tests/a11y/browser-audit.mjs. 11 pages at 1280×900 and at 320×512, the viewport SC 1.4.10 specifies for 1280px at 400% zoom. WCAG 2.0/2.1/2.2 A and AA rulesets.

    0 violations across 22 page/viewport combinations.

  2. Programmatic focus-indicator check

    Every focusable control on each page receives focus; computed outline, box-shadow, border, background and text-decoration are compared before and after.

    470 of 470 controls change appearance on focus.

  3. Reflow measurement

    Document scrollWidth against clientWidth at 320px on every page.

    0 pages scroll horizontally.

  4. Streaming-answer contract guard

    tests/browser/answer-contract.mjs. Asserts the answer container is not a live region, that announcements stay under 8 per answer, that start and completion each announce once, that focus never lands on <body>, and that a stop control exists.

    Passing. Announcements per answer went from 3,399 to 2 when this was introduced.

  5. Automated coverage limit

    Automated tooling detects roughly a third of WCAG issues. Nothing here substitutes for manual review or for testing with assistive-technology users.

    Neither manual audit nor assistive-technology user testing has been performed.

WCAG 2.2 Level A

WCAG 2.2 Level A success criteria, conformance level, evidence and remarks
CriterionConformanceEvidenceRemarks
1.1.1Non-text ContentPartially Supportsaxe-core image-alt: no violations. Alt text quality is not machine-checkable.Every image carries an alt attribute and decorative icons are aria-hidden. Whether each alt text conveys the right meaning has not been reviewed by a human. Article hero images use author-supplied alt text that is not editorially checked.
1.2.1Audio-only and Video-only (Prerecorded)Not ApplicableNo prerecorded audio-only or video-only content is published.Voice input is live speech recognition, not prerecorded media.
1.2.2Captions (Prerecorded)Not ApplicableNo prerecorded video content.Will require re-evaluation if video is added.
1.2.3Audio Description or Media AlternativeNot ApplicableNo prerecorded video content.
1.3.1Info and RelationshipsPartially Supportsaxe-core landmark, heading-order, list and table rules: no violations, after correcting duplicate <main> landmarks on eight pages and a footer heading-level skip.Structure is conveyed programmatically. Whether every visual relationship has a programmatic equivalent has not been manually reviewed.
1.3.2Meaningful SequencePartially Supportsaxe-core (Chromium, 11 pages × 2 viewports): no violations. Not manually verified.DOM order matches visual order in the layouts tested. The article rail is a sticky grid column placed after the article in source order, so reading order is preserved.
1.3.3Sensory CharacteristicsNot EvaluatedNo manual audit and no assistive-technology user testing has been performed.Requires human review of instruction wording. Not yet performed.
1.4.1Use of ColorPartially SupportsReviewed during the evidence-card work: authority tier carries a text label, not colour alone.Source cards state "PRIMARY AUTHORITY" and "Luke wrote this, not a regulator" in text. A full page-by-page review for colour-only meaning has not been done.
1.4.2Audio ControlNot ApplicableNo audio plays automatically.Spoken answers are user-initiated and can be stopped.
2.1.1KeyboardPartially Supportsaxe-core plus a focus sweep of 383 controls. Two defects found and fixed: a tabbable aria-hidden file input, and a horizontally scrolling region that could not be reached by keyboard.No full manual keyboard walkthrough of the Luke workspace has been performed. Earlier measurement found the send button was not reached within 40 Tab presses; that path has since been changed but not re-walked end to end by a person.
2.1.2No Keyboard TrapPartially SupportsThe canvas drawer closes on Escape and returns focus; verified in code and by test.Not verified by a manual pass through every dialog.
2.1.4Character Key ShortcutsSupportsNo single-character key shortcuts are implemented.
2.2.1Timing AdjustableSupportsNo time limits are imposed on reading or input.Answer generation can be stopped by the user at any point.
2.2.2Pause, Stop, HideSupportsStreaming answers have a Stop control. prefers-reduced-motion is honoured globally.
2.3.1Three Flashes or BelowSupportsNo flashing content is used.
2.4.1Bypass BlocksSupportsA skip link is present, and the duplicate <main> landmarks that undermined it on eight pages have been removed. axe landmark rules: no violations.
2.4.2Page TitledSupportsaxe document-title: no violations. Each route sets its own metadata title.
2.4.3Focus OrderPartially Supportsaxe tabindex rule: no positive tabindex anywhere. Focus returns to the composer after submit.Order has not been walked manually on every page.
2.4.4Link Purpose (In Context)Partially Supportsaxe link-name: no violations.Every link has an accessible name. Whether each name is meaningful out of context has not been reviewed.
2.5.1Pointer GesturesSupportsNo multipoint or path-based gestures are required.
2.5.2Pointer CancellationPartially SupportsControls are native buttons and links, which activate on up-event by default.Custom drag interactions in the sidebar have not been individually reviewed.
2.5.3Label in NamePartially Supportsaxe label-content-name-mismatch: no violations.Not manually verified against every visible label.
2.5.4Motion ActuationNot ApplicableNo motion-actuated functionality.
3.1.1Language of PageSupportsaxe html-has-lang: no violations. <html lang="en">.
3.2.1On FocusSupportsNo context change occurs on focus.
3.2.2On InputSupportsNo form submits or navigates on input alone.
3.2.6Consistent HelpSupportsContact and methodology links appear in the footer in the same position on every page.
3.3.1Error IdentificationPartially SupportsForm errors are rendered as text adjacent to the control.Error handling across the Luke workspace has not been systematically audited.
3.3.2Labels or InstructionsPartially Supportsaxe form-field-multiple-labels and label rules: no violations.Sufficiency of instructions is a human judgement and has not been reviewed.
3.3.7Redundant EntrySupportsNo multi-step flow re-asks for information already provided in the same session.
4.1.2Name, Role, ValuePartially Supportsaxe ARIA rules: no violations, after fixing an aria-hidden file input that remained in the tab order on two pages.Custom composite widgets have not been verified against a screen reader.

WCAG 2.2 Level AA

WCAG 2.2 Level AA success criteria, conformance level, evidence and remarks
CriterionConformanceEvidenceRemarks
1.2.4Captions (Live)Not ApplicableNo live audio content is broadcast.Speech input transcribes the user’s own voice; it is not a broadcast.
1.2.5Audio Description (Prerecorded)Not ApplicableNo prerecorded video content.
1.3.4OrientationSupportsNo orientation lock is applied; layout is responsive and was measured at 320px.
1.3.5Identify Input PurposePartially Supportsaxe-core autocomplete-valid: no violations.The email subscription field uses an appropriate autocomplete token. Not every input collecting user information has been individually reviewed.
1.4.3Contrast (Minimum)Supportsaxe-core colour-contrast with layout, enabled: 0 violations across 11 pages at two viewports. This is the check the jsdom harness cannot run and had been skipping.Measured on rendered pages, not inferred from tokens.
1.4.4Resize TextSupportsRoot font size is a reader preference (--base-font-size, 18px default); measured at 320px with no loss of content.Viewport allows scaling to 5×; no maximum-scale=1 lock.
1.4.5Images of TextSupportsNo images of text are used for content; all text is live text.Logotype is exempt.
1.4.10ReflowSupportsMeasured: scrollWidth minus clientWidth is 0 on all 11 pages at 320×512. Wide tables scroll inside their own keyboard-reachable container.320px is 1280px at 400% zoom, the condition the criterion specifies.
1.4.11Non-text ContrastPartially Supportsaxe-core: no violations. The rule does not cover every graphical object.Focus indicators and control borders were checked; custom graphics were not individually measured.
1.4.12Text SpacingNot EvaluatedNo manual audit and no assistive-technology user testing has been performed.Requires applying the specified spacing overrides and re-inspecting. Not yet performed.
1.4.13Content on Hover or FocusPartially SupportsReviewed for the article rail and evidence cards: no hover-only content that obscures.Dropdown menus dismiss on Escape. A full inventory of hover-triggered content has not been made.
2.4.5Multiple WaysSupportsSite search, category navigation, author indexes, sitemap and RSS are all present.
2.4.6Headings and LabelsPartially Supportsaxe heading-order and form label rules: no violations after the footer heading-level fix.Descriptiveness is a human judgement and has not been reviewed.
2.4.7Focus VisibleSupportsMeasured programmatically: 470 of 470 focusable controls change computed appearance on focus across all 11 pages.This is a stronger check than axe performs, which cannot see focus styling.
2.4.11Focus Not Obscured (Minimum)Partially SupportsThe sticky article rail occupies its own grid column and cannot overlap content; verified by measuring bounding boxes at six viewports.The site header is fixed. Whether it can obscure a focused control on long forms has not been measured across every page.
2.5.7Dragging MovementsDoes Not SupportThe Luke sidebar supports drag-and-drop to move a conversation into a project, and no single-pointer alternative to that drag has been implemented.Reported as a known gap rather than left blank. A menu-based "Move to project" action is the intended remedy.
2.5.8Target Size (Minimum)Partially SupportsInteractive controls use a min-height of 40–44px in the composer and rails.Not measured programmatically across every control. Inline links in prose rely on the spacing exception and have not been individually checked.
3.1.2Language of PartsNot EvaluatedNo manual audit and no assistive-technology user testing has been performed.Content is English throughout; quoted foreign-language passages have not been audited for lang attributes.
3.2.3Consistent NavigationSupportsHeader and footer are rendered by a shared AppShell on every route.
3.2.4Consistent IdentificationPartially SupportsShared components give repeated controls the same name across pages.Not systematically reviewed.
3.3.3Error SuggestionNot EvaluatedNo manual audit and no assistive-technology user testing has been performed.Requires manual review of each error path.
3.3.4Error Prevention (Legal, Financial, Data)Not ApplicableNo legal commitments, financial transactions or irreversible data deletions are offered.There is currently no purchase or billing flow.
3.3.8Accessible Authentication (Minimum)SupportsSign-in is federated through Google; no cognitive function test is imposed.No CAPTCHA is used on the authentication path.
4.1.3Status MessagesPartially Supportstests/browser/answer-contract.mjs asserts start and completion each announce exactly once and that the streaming container is not a live region. Announcements per answer were measured at 3,399 before this work and 2 after.The completion criterion for this fix is confirmation from a real screen reader user, which no automated measurement can supply. That has not happened.

What this report does not cover

  • No testing with assistive-technology users has been performed. Automated checks and developer review cannot substitute for it, and several rows above say so directly.
  • No independent third-party audit has been commissioned.
  • SC 2.5.7 Dragging Movements does not conform: moving a conversation into a project requires a drag with no single-pointer alternative.
  • Automated tooling detects roughly a third of WCAG issues, so the clean automated result is a floor on quality, not a ceiling.
  • The Luke workspace has not been walked end to end with a keyboard by a person since the focus-management changes.

Reporting a barrier

If something here is wrong, or you hit a barrier this report does not describe, tell us at accessibility@accessibility.chat. We treat a reported barrier as a defect with a named owner, not as feedback.

See also our accessibility statement, security and data handling, and research methodology.