Accessibility

Accessibility at Cadence

Cadence is a web app, and this is what its code and tests show today. It has landmarks, visible focus, single-key view shortcuts, and an automated axe scan that passes. It has not been tested with a screen reader, and most of its other claims rest on code and jsdom tests, not on a person using it. We do not claim a conformance level for the app.

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 Cadence 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

    The calendar has single-key shortcuts for the Day, Week, Month, Year, and Agenda views (D, W, M, Y, A), the left and right arrow keys for the previous and next period, a period for today, Escape to close a panel, and a question mark that opens the shortcut list. Shortcuts are ignored while you type in a field. Events in the grid take Tab focus and open with Enter. The Quarter and Ticker views have no shortcut. Nobody has walked every flow with only a keyboard.

    Evidence

    • frontend/src/pages/CalendarPage.tsx and hooks/useKeyboardShortcuts.ts: the shortcut table, the ? help dialog, and the rule that shortcuts are ignored in text fields
    • frontend/src/components/calendar/EventBlock.tsx: role button, tabIndex 0, and Enter opens the event
    • frontend/src/components/layout/__tests__/Accessibility.test.tsx: navigation links are keyboard-focusable
    • A keyboard-only walkthrough of every flow has not been recorded.
  • Partly supported

    Screen reader landmarks and labels

    The page has labeled landmarks (main navigation, page content, calendar navigation), labeled buttons, and decorative icons hidden from assistive technology. An automated axe-core scan of the app and each page finds no violations. Cadence has not been tested with VoiceOver, NVDA, or any other screen reader, and the calendar grid has no table or grid semantics, so how it reads aloud is unknown.

    Evidence

    • frontend/src/__tests__/accessibility.test.tsx: vitest-axe on the whole app and on the Calendar, Tasks, Scheduling, Search, and Settings routes (6 tests, passing on 10/29/2026)
    • 71 ARIA attribute uses in 22 source files, counted by search on 10/29/2026
    • No screen-reader run is on record.
  • Partly supported

    Contrast in light and dark

    Cadence's teal accent measures 5.63 to 1 against white in light mode and 4.60 to 1 against the dark card color in dark mode, both above 4.5 to 1. On the design system's shaded surfaces the same accent is weaker: the kit's measurement of the shared tokens gives as low as 4.27 to 1 in light and 4.09 to 1 in dark for accent-colored text, which is below 4.5 to 1. The rest of the palette comes from the Renkara design system and has not been measured in the app. The automated scan runs in jsdom, which does not compute contrast. Events use their calendar's color with white text, and those combinations are unmeasured, so a pale calendar color could fail.

    Evidence

    • Computed on 10/29/2026 from frontend/src/styles/variables.css (--brand-accent 190 88% 28% light, 190 88% 36% dark) against the design system's card colors
    • Fleet showcase kit contrast check on the shared design-system tokens, 10/29/2026: accent text on shaded surfaces as low as 4.27 to 1 light and 4.09 to 1 dark
    • No contrast measurement of event colors or the full palette is on record.
  • Partly supported

    Reduced motion

    The design system's global stylesheet shortens every animation and transition to almost nothing when the system asks for reduced motion, and the public outreach page has its own reduced-motion rule. This was read from the stylesheets and not checked in a browser with the setting turned on.

    Evidence

    • node_modules/@renkara/design-system/dist/tokens.css: a prefers-reduced-motion rule sets animation and transition durations to 0.01 milliseconds
    • frontend/src/pages/PublicOutreachProposalPage.module.css: its own prefers-reduced-motion block
  • Not yet tested

    Text resize and zoom

    Nobody has tested Cadence at larger text sizes or browser zoom. Some labels in the grid are set in small fixed sizes, so large text may crowd or clip them.

  • Partly supported

    Mobile and touch

    Below a tablet width the sidebar collapses to icons, and on a phone it becomes a menu behind a hamburger button. The calendar, tasks, and scheduling pages have mobile rules in their code. No one has run the app in a browser at 375 pixels for this site, so the layout of each view on a phone is unverified.

    Evidence

    • frontend/src/components/layout/__tests__/Responsive.test.tsx: sidebar labels on desktop, icons on tablet, hamburger on mobile, menu opens and closes
    • No 375-pixel browser run of the app is on record.

No WCAG conformance level is claimed for the Cadence app. The only accessibility test is an automated axe-core scan in jsdom of the app and its five pages, which cannot judge color contrast or real keyboard and screen-reader use. The claims below were read from the code and tests on 10/29/2026. This site's own pages are scanned by the kit's axe-core run in a real browser at 375 and 1440 pixels in light and dark.

Product notes

More about Cadence

Keyboard shortcuts

These work on the calendar page when focus is not in a text field. Press ? to see the same list in the app.

Keyboard shortcuts
D, W, M, Y, ADay, Week, Month, Year, and Agenda views
Left and right arrowsPrevious and next period
.Jump to today
EscapeClose the open panel
?Show or hide the shortcut list
Known gaps

What does not work yet

  • Cadence has not been tested with a screen reader, and the calendar grid has no grid or table semantics.
  • No one has walked the app using only a keyboard, and the Quarter and Ticker views have no shortcut.
  • Accent-colored text on the design system's shaded surfaces measures as low as 4.27 to 1 in light and 4.09 to 1 in dark (below 4.5 to 1), and calendar colors behind white event text are unmeasured.
  • Larger text sizes and the Increase Contrast setting are untested, and the app was not checked on a phone.
  • The only automated test is axe in jsdom, which cannot check contrast, focus order, or real screen-reader output.
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 Cadence 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.