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.

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.
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.
| D, W, M, Y, A | Day, Week, Month, Year, and Agenda views |
|---|---|
| Left and right arrows | Previous and next period |
| . | Jump to today |
| Escape | Close the open panel |
| ? | Show or hide the shortcut list |
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.
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.
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.