Skip to content

Accessibility

JuryBinder is built to WCAG 2.0 Level AA in both light and dark modes. This page covers what that means for you, how to use the app with a keyboard or screen reader, and how to tune JuryBinder to match any accessibility preferences you've set at the operating-system level.


Keyboard-only operation

Every interactive element in JuryBinder can be reached and activated without a mouse or touch. Here are the essentials; see the Keyboard Shortcuts page for the full list.

Universal keys

Key What it does
Tab Moves focus to the next control. The first Tab press on any page reveals a Skip to main content link — press Enter to jump straight into the current view, bypassing the header.
Shift + Tab Moves focus backwards.
Enter or Space Activates a focused button, link, checkbox, or menu item.
Escape Closes any open modal (Column Mapping, Identity Settings, License Entry, Sync Panel, Shortcuts, Merge Review). Focus returns to whatever opened the modal.

Moving between views

The view tabs in the header (Overview · Responses · Jurors · Oral Voir Dire · Selection) behave as a standard tablist:

Key What it does
Arrow Left / Right Move to the previous / next tab, wrapping at the edges.
Home Jump to the first tab (Overview).
End Jump to the last tab (Selection).

Only the currently selected tab is a Tab stop — so Tabbing past the tablist takes you straight into the page content, not through every individual tab. This matches how VoiceOver, JAWS, and NVDA users expect tab strips to behave.

Expanding juror rows on the Selection tab

Every row in the Active, Seated, and Removed strike tables has a chevron button (▸) in the first column. Tab to it and press Enter to expand / collapse the juror's detail panel. You'll hear "Expand seat 7 Jane Smith" from your screen reader. The row itself is still clickable for mouse and touch users.

Saving with the keyboard

  • Cmd/Ctrl + S — save the bundle.
  • When there are unsaved changes, a small amber dot appears in the header. Tab to it and press Enter (or read: "Unsaved changes — save now") to save from the keyboard.

Screen readers

JuryBinder has been tested with VoiceOver on macOS/iOS and is designed against the ARIA Authoring Practices guidelines.

Landmarks

Every page exposes <header>, <nav>, and <main> landmarks so you can jump between regions with your screen reader's landmark command:

  • Banner (the header bar with the logo, tabs, and action chips)
  • Navigation (the tablist)
  • Main (the current view's content — this is also the skip-link target)

Announcements for non-interactive state changes

JuryBinder uses polite live regions (aria-live="polite") for status changes that happen without a direct user action:

  • Sync state — you'll hear "Sync: connected to host", "Sync: reconnecting to host", "Sync: waiting for host approval", or "Sync: hosting, 2 clients connected" as the session progresses.
  • Merge / sync conflicts — the conflict banner announces changes.
  • Import wizard — the Column Mapping modal announces "Ready to import — name columns selected" or "Import is disabled: select First + Last Name columns, or a Full Name column" as you change the field mapping.

Labelled controls

Every icon-only button has an accessible name. The privacy toggle announces as "Privacy mode off" / "Privacy mode on, toggled on". The help link announces as "Help". The overflow menu as "More actions". The save indicator as "Unsaved changes — save now".

The time-travel slider on the History Bar announces its full position: "Mutation 3 of 17, Strike by Paul at Apr 17 2026, 10:00 AM". Use arrow keys to step through mutations.

Seat grid

Each seat on the Overview dashboard is a button (in normal mode) or a static cell (in read-only history mode). The screen-reader announcement for a seat is:

Seat 7: Jane Smith — Struck (P), flagged

Status is conveyed via three cues on every seat — colour, a 2-letter status code (AC / QL / SE / DM / SP / SC / EX), and the spoken label — so users with colour-blindness or low vision never need to consult the legend.


Colour-blindness and low vision

JuryBinder never uses colour as the sole carrier of information:

  • Seat status — colour fill plus a 2-letter code under the last name plus the screen-reader label.
  • Flagged jurors — amber dot plus a white ! glyph inside the dot plus the word "flagged" in the seat's accessible name.
  • Unsaved changes — amber dot plus a white halo (visible against the navy header regardless of colour perception) plus the accessible name.
  • Favorability — labelled icon + text buttons (strongly unfavorable ← → strongly favorable) with aria-pressed state, not colour-only chips.
  • Selection side (prosecution / defense / cause) — colour chip plus the side's name in text.

Dark mode

JuryBinder follows your operating-system colour-scheme setting via prefers-color-scheme. Dark mode uses its own contrast-tuned palette — every contrast pair is verified to meet WCAG AA on build. The focus ring switches to a lighter blue (#93c5fd) in dark mode so it stays visible against the near-black page surface.

Zoom

The viewport does not restrict user zoom. Pinch-zoom on iPad and browser zoom to 200% both work without losing functionality.


Reduced motion

If you've enabled Reduce Motion in your OS (macOS: System Settings → Accessibility → Display → Reduce motion; iOS: Accessibility → Motion → Reduce motion), JuryBinder automatically:

  • Skips the row fade-out animation when you strike or seat a juror.
  • Removes the hover lift / shadow transitions on dashboard cards.
  • Removes transitions on progress bars and score bars.
  • Keeps every state change instant rather than animated.

End states are preserved — a struck juror still disappears, a seat still recolors — but there's no motion between states.


Touch targets

Every header chip, button, and save indicator has a minimum 44×44 hit area, matching Apple's Human Interface Guidelines for touch input. On iPad and iPhone, even small visible glyphs (like the save dot) are reliably tappable.


Reporting an accessibility issue

If you hit something that doesn't work with your keyboard, screen reader, or assistive technology, please email support@docguytraining.com with the platform (Mac Safari, Chrome on Windows, iPad Safari PWA, iPad Capacitor app) and the action that failed. We treat accessibility bugs as release-blocking.