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 SupportsIcon-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 SupportsThe 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 SupportsThe 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 ApplicableNo prerecorded synchronized media conveying information beyond decorative motion.1.3.1Info and Relationships
Partially SupportsData 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
SupportsDOM order matches the visual reading order on reviewed pages.1.3.3Sensory Characteristics
SupportsInstructions do not rely solely on shape, size, or position.1.4.1Use of Color
Partially SupportsState 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 ApplicableNo auto-playing audio.2.1.1Keyboard
Partially SupportsEvery 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
SupportsNo 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 SupportsThe 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
SupportsNo time limits on content.2.2.2Pause, Stop, Hide
Partially SupportsA 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
SupportsNo flashing content.2.4.1Bypass Blocks
SupportsA "Skip to main content" link and a single main landmark are present on every public and dashboard page.2.4.2Page Titled
SupportsPer-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 SupportsFocus 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)
SupportsIcon-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 SupportsThe 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
SupportsActivation occurs on the up-event for standard controls.2.5.3Label in Name
SupportsVisible labels match accessible names on reviewed controls.2.5.4Motion Actuation
Not ApplicableNo motion-actuated functionality.3.1.1Language of Page
SupportsThe page language is declared on the root html element.3.2.1On Focus
SupportsNo change of context occurs on focus.3.2.2On Input
SupportsNo unexpected change of context occurs on input.3.2.6Consistent HelpNew in 2.2
SupportsA contact mechanism appears consistently in the navigation and footer.3.3.1Error Identification
Partially SupportsThe 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
SupportsEvery 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
SupportsMulti-step flows do not require re-entering previously provided information.4.1.1Parsing
SupportsObsolete in WCAG 2.2; no parsing-blocking markup issues were found.4.1.2Name, Role, Value
Partially SupportsNative 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 ApplicableNo live media.1.2.5Audio Description (Prerecorded)
Not ApplicableNo informational prerecorded video.1.3.4Orientation
SupportsContent is responsive and not locked to a single orientation.1.3.5Identify Input Purpose
Partially SupportsPublic-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 SupportsMeasured 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
SupportsLayout uses relative units and reflows on zoom.1.4.5Images of Text
SupportsText is live text, not images of text.1.4.10Reflow
SupportsThe responsive layout reflows to small viewports without loss of content (data tables scroll within a container).1.4.11Non-text Contrast
Partially SupportsFocus 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
SupportsText containers use minimum heights; no fixed line-heights clip text on reviewed pages.1.4.13Content on Hover or Focus
Partially SupportsPopovers 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
SupportsThe site provides navigation plus search within document collections.2.4.6Headings and Labels
SupportsEvery 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
SupportsA 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 SupportsA 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 SupportsSplit 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 SupportsThe 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
SupportsContent is English throughout; no foreign-language passages require markup.3.2.3Consistent Navigation
SupportsThe navbar and footer are consistent across pages.3.2.4Consistent Identification
SupportsComponents are identified consistently.3.3.3Error Suggestion
Partially SupportsSome forms suggest corrections; coverage is inconsistent (see 3.3.1).3.3.4Error Prevention (Legal, Financial, Data)
Partially SupportsDestructive 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
SupportsEmail 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 SupportsLoading, 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).