Accessibility

Accessibility at Assay

Assay's web app is built on the Renkara design system and keeps a keyboard map for working a run. Here is what the product supports today and what has actually been checked. We do not claim a WCAG conformance level for the product, and Assay has no automated accessibility scan yet.

Illustration: a quiet public reading room in soft light, with a wide level entrance, a low service counter, and clear open aisles between the shelves.
The product

What Assay supports today

Each line says what the product does, how we know, and where to look. “Not yet tested” means exactly that: we have not checked, and we do not claim it.

  • Partly supported

    Keyboard operation

    A run can be worked from the keyboard: j and k move between cases, J and K between steps, Space toggles a step, and p, f, b, and n record pass, fail, blocked, or not applicable. Shortcuts are ignored while you type in a text box, and the shortcut sheet opens as a dialog. Command-K opens a command palette.

    Evidence

    • frontend/src/__tests__/keyboard.test.ts in the Assay repo: the guard that stops single-key shortcuts firing while you type treats inputs, textareas, selects, and editable elements as typing targets
    • frontend/src/__tests__/commandPalette.test.tsx: Command-K and the header search button open the palette, and choosing a command navigates
    • A recorded keyboard-only walkthrough of every page has not been done yet.
  • Partly supported

    Screen reader landmarks and labels

    Case status, assignee kind, and run progress carry text labels (the progress bar has a name and a value, the assignee icons are labeled, and filter buttons report whether they are pressed). Assay has not been run through axe-core and has not been tested with a screen reader.

    Evidence

    • frontend/src/pages/RunView.tsx: progressbar role with value, aria-label on assignee icons, aria-pressed on filters, aria-current on the open case, aria-modal on the shortcut sheet
    • frontend/src/__tests__/status.test.ts covers the status labels
  • Partly supported

    Contrast in light and dark

    Assay uses the Renkara design system's light and dark tokens. Its tests recompute the contrast of the violet accent on the light and dark card backgrounds and require 4.5 to 1. No other text or control has been measured, and there is no axe-core color-contrast scan.

    Evidence

    • frontend/src/__tests__/brand.test.ts in the Assay repo: reads --brand-accent from global.css and requires at least 4.5:1 against the light and dark card backgrounds
  • Not yet tested

    Reduced motion

    Assay's interface uses the Renkara design system's motion presets, which are designed to honor the reduced-motion setting. Assay's own tests do not check this.

  • Not yet tested

    Text resize and zoom

    Resizing text to 200 percent has not been tested.

  • Partly supported

    Mobile and touch

    The dashboard, plans, runs, and run view fit a 375 by 667 phone screen with no sideways scrolling, and the result buttons are at least 36 pixels tall. Assay's own tests do not yet hold every control to 44 pixels.

    Evidence

    • frontend/e2e/mobile.spec.ts: horizontal overflow of at most 1 pixel on the dashboard, plans, runs, and run view at 375 by 667
    • frontend/e2e/mobile.spec.ts: the Pass button is visible and at least 36 pixels tall at 375 by 667

No WCAG conformance level is claimed for Assay. Its tests check keyboard handling, status text, and a 375 pixel layout, but no one has run axe-core against it or audited it against WCAG, and it has not been tested with assistive technology.

Known gaps

What does not work yet

  • Assay has no axe-core scan, so contrast beyond the accent, names, and landmarks are unmeasured.
  • Assay has not been tested with a screen reader, and no keyboard-only walkthrough has been recorded.
  • Reduced motion and 200 percent text resize are not covered by Assay's tests.
  • The mobile test holds result buttons to 36 pixels, not the 44 pixels this site holds its own controls to.
This website

How this site is built and checked

This site targets WCAG 2.2 level AA. That is a target we build and test toward, not a certification, and no one has audited it for conformance.

  • Structure

    A skip link, labeled landmarks (header, navigation, main, footer), one h1 per page, and headings that do not skip levels.

  • Keyboard and focus

    Links and buttons are native elements, so they work from the keyboard. Focus is drawn as a visible ring, and the menu closes with Escape.

  • Contrast

    Text meets 4.5 to 1 in both the light and dark themes, checked against the stylesheet by the test suite.

  • Motion

    Transitions and animation switch off when your system asks for reduced motion.

  • Small screens and zoom

    Layouts hold at 375 pixels wide with no sideways scrolling, text resizes with the browser, and touch targets are at least 44 pixels.

  • Automated scan

    Every page is scanned with axe-core at 375 and 1440 pixels in light and dark, and the checks fail on any serious or critical violation. Automated tools find only part of the problems, so this is a floor, not proof.

  • Images

    Every product screenshot has a text description and comes in a light and a dark version that follows your theme.

  • Your theme choice

    The theme follows your system setting until you pick one with the button in the header.

Feedback

Tell us what is in your way

If something here or in Assay does not work for you, write to Renkara Media Group. Say what you were doing, what you used, and what happened, and a person will answer.

Statement last reviewed 10/29/2026.