Skip to main content

Trust

Accessibility

We are committed to making Standard Works usable by everyone, including people who rely on assistive technology. This page is our Accessibility Conformance Report (a VPATĀ 2.5) describing how the product measures up against the Web Content Accessibility Guidelines (WCAG) 2.2, Level AA.

About this report

Standard evaluated
WCAG 2.2, Level A and AA
Report format
VPAT 2.5 (WCAG edition)
Scope
Public marketing site and application dashboard, including the homepage product demos and the Case Builder workspace (facts, issues, people & organizations). The Case Builder timeline, transcripts, reports and research sections are development previews that do not ship in production builds; they were audited and are reported where relevant
Report date
September 6, 2026

Evaluation methods. Manual source-code review of every page, layout and interactive component against each WCAG 2.2 A/AA success criterion; accessibility lint rules that run on every commit; a computed color-contrast test over the design-system palette; axe-core checks in the component test suite; and an axe-core runtime scan of representative routes that runs with the end-to-end suite.

This is a self-assessment backed by a code-level audit and active remediation. It has not yet been certified by an independent third-party auditor. Conformance claims for criteria that require live assistive-technology verification (screen-reader testing with VoiceOver, NVDA, and JAWS, plus a runtime keyboard walkthrough and automated runtime scans) are stated conservatively as Partially Supports until that testing is complete. Those items are tracked in the roadmap below.

Key

Conformance levels

Supports
The functionality meets the criterion without known defects.
Partially Supports
Some functionality meets the criterion; some does not.
Does Not Support
The majority of functionality does not meet the criterion.
Not Applicable
The criterion is not relevant to the product.

Table 1

Success criteria, Level A

  • 1.1.1Non-text Content

    Partially Supports
    Icon-only controls carry accessible names or visually hidden text, including labels that hide below a breakpoint. Decorative logos and animation elements use empty alt text or aria-hidden. Charts carry a written description in place of the generic generated label and expose their numbers as a visually hidden data table; the knowledge graph exposes a count label, the entity types shown, and a hidden list of the entities in view. The PDF viewer renders a selectable text layer and a Text view when page text is available, and each page image is described by its text layer. Timeline fact boxes are focusable and carry their date, text, issues and source as text, with the Spreadsheet view named as the equivalent. Gaps: user-uploaded audio and video have no text alternative, spreadsheet conditional formatting is color-only, and the PDF text layer depends on page text being available.
  • 1.2.1Audio-only and Video-only (Prerecorded)

    Partially Supports
    The marketing site contains no prerecorded video; its vignettes are silent, decorative DOM/canvas animations. The dashboard's document viewer can play user-uploaded audio/video, for which no text or audio alternative is generated. To be remediated where media carries information.
  • 1.2.2Captions (Prerecorded)

    Partially Supports
    The only video element is the dashboard document viewer, which plays user-uploaded media with no captions track. To be remediated where video carries information.
  • 1.2.3Audio Description or Media Alternative

    Not Applicable
    No prerecorded synchronized media conveying information beyond decorative motion.
  • 1.3.1Info and Relationships

    Partially Supports
    Data tables use table markup with scoped headers and aria-sort, and every header cell in the legal-hold, comparison and spreadsheet tables is scoped. The dashboard sidebar and the Analysis and Case Builder section switchers are navigation landmarks with aria-current. Every page has a single main landmark and a heading outline rooted at an h1, including on mobile. Segmented and chip selectors are radiogroups, checkbox rows and filter tiles expose their state, and no interactive control is nested inside another. Gaps: the evaluation matrix relies on display: contents for its rows, which some assistive technology flattens; the global font-weight rule renders strong and em without visual emphasis; chart legends drawn on the canvas are not in the document, though the hidden data table carries the same series.
  • 1.3.2Meaningful Sequence

    Supports
    DOM order matches the visual reading order on reviewed pages.
  • 1.3.3Sensory Characteristics

    Supports
    Instructions do not rely solely on shape, size, or position.
  • 1.4.1Use of Color

    Partially Supports
    State is conveyed with text or an icon alongside color: evaluation badges and the matrix print their labels, chip and segmented selectors expose aria-checked, toggles expose aria-pressed or aria-checked, chart series carry decal patterns, and the graph's hidden entity list names each type. Gaps: graph node colors, timeline and transcript issue coding, and spreadsheet conditional formatting remain color-only in the visible rendering; line and scatter series carry no decal.
  • 1.4.2Audio Control

    Not Applicable
    No auto-playing audio.
  • 2.1.1Keyboard

    Partially Supports
    Every primary call to action, the chat drawer trigger, the firm home case cards, the upload drop zone and the document dialog's close, layout and paging controls are native buttons or links reachable by Tab. Hover-revealed controls appear on focus. Menus, listboxes and combobox result lists follow the arrow-key, Home, End and Escape contract; split panes, the chat drawer and table columns resize from the keyboard as separators, and table rows resize with Alt and the arrow keys. Charts drill through from their hidden data table; the graph pans and zooms from the keyboard and its entities open from a hidden list. Gaps: markup drawing and its resize handles, and the layout editor's grid drag, remain pointer-only; graph node drag is layout-only and documented as non-essential.
  • 2.1.2No Keyboard Trap

    Supports
    No keyboard traps identified; dialogs manage focus, close on Escape, return focus to the element that opened them, and every step of the signup flow provides a keyboard-reachable close control.
  • 2.1.4Character Key Shortcuts

    Partially Supports
    The document coding panel offers single-character shortcuts (1 to 9, P, and Shift with a digit) that are active only while keyboard focus is inside the coding panel, so they cannot fire while a user types or works elsewhere in the dialog. They cannot yet be turned off or remapped from a setting.
  • 2.2.1Timing Adjustable

    Supports
    No time limits on content.
  • 2.2.2Pause, Stop, Hide

    Partially Supports
    A global prefers-reduced-motion rule stops decorative CSS animations and reduces transitions to a single frame; JavaScript-driven animations, the force-directed graph's layout, chart entrance animations and the logo marquee honor the same preference, the marquee following it live. The homepage's auto-playing product demos provide a visible Skip control and jump to their end state under reduced motion. Gap: the logo marquee offers no on-page pause control for users without the OS preference set.
  • 2.3.1Three Flashes or Below Threshold

    Supports
    No flashing content.
  • 2.4.1Bypass Blocks

    Supports
    A "Skip to main content" link and a single main landmark are present on every public and dashboard page.
  • 2.4.2Page Titled

    Supports
    Per-route page titles are set through the framework's metadata templates on every public, authentication and dashboard route, including the firm home, the documents pages, every Case Builder section and the not-found page.
  • 2.4.3Focus Order

    Partially Supports
    Focus order follows the visual order. Dialogs, including the document viewer and the entity detail panel, move focus in on open and return it to the element that opened them from every open site; both mobile menus are modal; the guided tour moves focus to each step. To be confirmed by live assistive-technology testing.
  • 2.4.4Link Purpose (In Context)

    Supports
    Icon-only links carry an accessible name, links that open a new tab say so in hidden text, linked-count cells on Case Builder cards describe what they count, and no bare "click here" links were found.
  • 2.5.1Pointer Gestures

    Partially Supports
    The graph pans and zooms with single key presses; the transcripts workspace's panels provide single-click move and resize controls beside drag. Gap: the graph has no on-screen zoom control for pointer users.
  • 2.5.2Pointer Cancellation

    Supports
    Activation occurs on the up-event for standard controls.
  • 2.5.3Label in Name

    Supports
    Visible labels match accessible names on reviewed controls.
  • 2.5.4Motion Actuation

    Not Applicable
    No motion-actuated functionality.
  • 3.1.1Language of Page

    Supports
    The page language is declared on the root html element.
  • 3.2.1On Focus

    Supports
    No change of context occurs on focus.
  • 3.2.2On Input

    Supports
    No unexpected change of context occurs on input.
  • 3.2.6Consistent HelpNew in 2.2

    Supports
    A contact mechanism appears consistently in the navigation and footer.
  • 3.3.1Error Identification

    Partially Supports
    The careers application marks empty required fields aria-invalid and describes them by the announced error; case-settings fields, signup, SMS and authenticator enrollment, and inline dashboard errors carry role=alert. Gaps: the login, contact, import-productions, invite-user and create-case forms report validation through toast notifications, which are announced but not associated with the offending field.
  • 3.3.2Labels or Instructions

    Supports
    Every form control across authentication, careers, settings dialogs, the chart builder, the query builder and the filter editors is associated with a visible label or carries an accessible name; required fields are marked aria-required; a lint rule for unassociated labels runs on every commit.
  • 3.3.7Redundant EntryNew in 2.2

    Supports
    Multi-step flows do not require re-entering previously provided information.
  • 4.1.1Parsing

    Supports
    Obsolete in WCAG 2.2; no parsing-blocking markup issues were found.
  • 4.1.2Name, Role, Value

    Partially Supports
    Native elements and UI primitives expose correct roles; every popover dialog is named; toggles, chip and segmented selectors, filter and sort triggers, sheet tabs and tri-state selection checkboxes expose their state; no control is nested inside another; separators expose their value. Gaps: the graph canvas is an application region described by a hidden list rather than a navigable widget, and the chart canvas is described by a hidden table rather than exposing each datum.

Table 2

Success criteria, Level AA

  • 1.2.4Captions (Live)

    Not Applicable
    No live media.
  • 1.2.5Audio Description (Prerecorded)

    Not Applicable
    No informational prerecorded video.
  • 1.3.4Orientation

    Supports
    Content is responsive and not locked to a single orientation.
  • 1.3.5Identify Input Purpose

    Partially Supports
    Public-facing identifying fields (careers application, signup, login, MFA phone) carry the appropriate input type and autocomplete tokens. Gaps: the contact dialog's email, phone, and organization fields lack autocomplete tokens; remaining identifying fields in the dashboard are still being annotated.
  • 1.4.3Contrast (Minimum)

    Partially Supports
    Measured against the design tokens: brand blue text is 8.7:1 on white and 7.2:1 on the dashboard surface; brand red 5.9:1 and 4.9:1; white on blue 8.7:1. Shortfalls: the muted gray (neutral-400) is 2.6:1 on white and 2.2:1 on the dashboard surface where it is used for hints and eyebrows; body gray (neutral-500) is 4.7:1 on white but 4.3:1 on the page background and 3.9:1 on the dashboard surface; green as text is 3.2:1; light placeholder text is 1.5:1; and this report's own "Supports" badge is 2.7:1. These are recorded brand decisions and are pinned by a test so that any change to them is deliberate.
  • 1.4.4Resize Text

    Supports
    Layout uses relative units and reflows on zoom.
  • 1.4.5Images of Text

    Supports
    Text is live text, not images of text.
  • 1.4.10Reflow

    Supports
    The responsive layout reflows to small viewports without loss of content (data tables scroll within a container).
  • 1.4.11Non-text Contrast

    Partially Supports
    Focus indicators are brand blue at 7.2:1 or better on every surface. Control borders (the warm accent at 1.5:1 and neutral-300 at 1.5:1) do not meet 3:1 on their own and rely on fill and shadow; one chart series and four graph node colors fall below 3:1 against white. See the roadmap.
  • 1.4.12Text Spacing

    Supports
    Text containers use minimum heights; no fixed line-heights clip text on reviewed pages.
  • 1.4.13Content on Hover or Focus

    Partially Supports
    Popovers are dismissable and hoverable; the explanations that used to live only in hover tooltips (locked controls, provenance badges, key and type icons, column descriptions) are also exposed as visually hidden text, and the disabled search-mode and OCR tooltips open on focus as well as hover. Gaps: timeline fact boxes and transcript annotations keep native title tooltips as a supplement to their hidden text, and the chart-builder Pareto and Trend toggles explain themselves through title only.
  • 2.4.5Multiple Ways

    Supports
    The site provides navigation plus search within document collections.
  • 2.4.6Headings and Labels

    Supports
    Every public, authentication, dashboard and Case Builder page has a heading outline rooted at one h1, visually hidden where the design hides it, including the pricing, careers and login pages and the Case Builder list pages.
  • 2.4.7Focus Visible

    Supports
    A global focus-visible rule draws a 2px brand-blue outline on every focusable element, no component removes the outline without drawing its own ring, and text fields draw an inset ring in addition to their border change.
  • 2.4.11Focus Not Obscured (Minimum)New in 2.2

    Partially Supports
    A scroll padding equal to the fixed public navbar keeps a focused or anchored element from scrolling underneath it. To be confirmed for the dashboard's sticky toolbars by live testing.
  • 2.5.7Dragging MovementsNew in 2.2

    Partially Supports
    Split panes, the chat drawer, table columns, the settings rail divider and the transcripts panels have keyboard or single-click alternatives to drag, and table rows resize with Alt and the arrow keys. Gaps: markup move and resize handles and the layout editor's grid remain drag-only; graph node drag is layout-only.
  • 2.5.8Target Size (Minimum)New in 2.2

    Partially Supports
    The mobile menu buttons meet the 44 by 44 minimum; pagination arrows, page-size buttons and the transcript video seek slider meet the 24 by 24 CSS-pixel minimum. Gaps: search operator chips (about 20 pixels tall), Case Builder key-fact stars (14 pixels), filter tiles and checkboxes (14 to 20 pixels), color swatches (20 pixels) and several 10-pixel text buttons remain below the minimum.
  • 3.1.2Language of Parts

    Supports
    Content is English throughout; no foreign-language passages require markup.
  • 3.2.3Consistent Navigation

    Supports
    The navbar and footer are consistent across pages.
  • 3.2.4Consistent Identification

    Supports
    Components are identified consistently.
  • 3.3.3Error Suggestion

    Partially Supports
    Some forms suggest corrections; coverage is inconsistent (see 3.3.1).
  • 3.3.4Error Prevention (Legal, Financial, Data)

    Partially Supports
    Destructive actions (e.g. delete case) use a typed confirmation dialog. Checkout/billing flows to be reviewed.
  • 3.3.8Accessible Authentication (Minimum)New in 2.2

    Supports
    Email and password with authenticator-app or SMS second factors are supported; password managers and paste are not blocked, fields carry autocomplete tokens, and no CAPTCHA or other cognitive-function test is imposed.
  • 4.1.3Status Messages

    Partially Supports
    Loading, empty and error states across the documents table, the list pages, My Library, Case Builder, and the analysis charts and graph are status or alert regions; pagination, selection counts, chat streaming, upload progress, find-match counters, the coding panel's applied values, the report wizard's step and the guided tour's step are announced; toast notifications announce once through the toast library's live region. Gaps: background job polling chips and the documents warnings banner are not yet announced.

Remediation roadmap

What we have fixed, and what is next.

Completed in this pass

  • Primary calls to action, the chat drawer trigger, firm home case cards, the upload drop zone and the document dialog's close, layout and paging controls are native, keyboard-reachable controls (2.1.1)
  • Dialogs move focus in on open and return it to the opener on close from every open site; both mobile menus are modal; a regression that kept the closed document dialog mounted and hid the page from assistive technology was found and reverted (2.4.3, 4.1.2)
  • Coding hotkeys are active only with focus inside the coding panel, the armed field takes real focus, and applied values are announced (2.1.4, 4.1.2, 4.1.3)
  • Hover-revealed controls appear on keyboard focus; labels hidden below a breakpoint have hidden twins (2.1.1, 4.1.2)
  • Dashboard sidebar is a navigation landmark with aria-current and a modal mobile menu (1.3.1, 2.4.3)
  • No interactive control is nested inside another: card headers, table cells, dropdown rows, the search-mode menu (4.1.2)
  • Chip and segmented selectors are radiogroups with arrow keys; every form control is labeled; every dialog has a description; every popover dialog is named; title-only names became accessible names (3.3.2, 4.1.2)
  • Menus, listboxes and combobox result lists follow the arrow-key, Home, End and Escape contract (2.1.1, 4.1.2)
  • Split panes, the chat drawer and table columns resize from the keyboard as separators; rows resize with Alt and the arrow keys (2.1.1, 2.5.7)
  • A global focus-visible outline, a brand-blue ring token, and no outline removed without a replacement (2.4.7, 1.4.11)
  • Reduced motion now also covers the graph layout, chart animations and the logo marquee, and the marquee follows the preference live (2.2.2)
  • Nested main landmarks removed, heading outlines rooted at an h1 on every page, titles on the auth pages, scoped table headers (1.3.1, 2.4.1, 2.4.2, 2.4.6)
  • Careers form marks invalid fields; signup, enrollment and inline dashboard errors are alerts (3.3.1)
  • Loading, empty and error states, upload progress, wizard steps and tour steps are announced (4.1.3)
  • Charts describe themselves and expose a hidden data table with keyboard drill-through; the graph pans and zooms from the keyboard and lists its entities (1.1.1, 2.1.1)
  • Accessibility lint rules at error, repo guard tests, a contrast test and axe-core checks in the test suites (evaluation methods)

Outstanding: brand and layout decisions

  • Color contrast. The muted gray text, green as text, light placeholders, control borders, one chart series and four graph node colors fall below the thresholds listed under 1.4.3 and 1.4.11; this report's own Supports badge is among them. Fixing them changes the visual design and is a brand decision.
  • Target size. Operator chips, key-fact stars, filter tiles and checkboxes, color swatches and several small text buttons remain below 24 by 24 CSS pixels (2.5.8).
  • New visible controls. A pause control for the logo marquee (2.2.2), an on-screen zoom control for the graph (2.5.1), a visible table view for charts, numeric position inputs for markup handles and the layout editor (2.5.7), and visible helper text in place of the remaining title-only explanations (1.4.13).

Outstanding: medium impact

  • Convert the remaining toast-only validation (login, contact, import, invite, create case) to field-associated, announced errors (3.3.1, 4.1.3)
  • Announce background job polling and the documents warnings banner (4.1.3)
  • Extend autocomplete tokens to the contact dialog and remaining dashboard identifying fields (1.3.5)
  • Captions or a text alternative for user-uploaded audio and video where it carries information (1.2.1, 1.2.2)
  • Non-color coding for graph nodes, timeline and transcript issues, and spreadsheet formatting (1.4.1)
  • A setting to turn off or remap the coding hotkeys (2.1.4)

Required to finalize this report

  • Live assistive-technology testing (VoiceOver, NVDA, JAWS) and a full keyboard walkthrough
  • Running the axe-core end-to-end scan against a deployed build and recording its results here

Feedback

Run into a barrier?

If you encounter an accessibility barrier on Standard Works, or you need information in an alternative format, please tell us at accessibility@standardworks.ai. We aim to respond promptly and will work with you to provide the information or functionality you need. See our broader trust commitments for more.

Last updated September 6, 2026. VPATĀ® is a registered trademark of the Information Technology Industry Council (ITI).