Accessibility at Nomad
Nomad's app was scanned with axe-core on all eight screens it shows here, in light and dark, at phone and desktop widths, and the last scan found no violations. That is a start, not a finish. This page says what has been checked and what has not.

What Nomad 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 app starts with a "Skip to main content" link. Trips open from the keyboard with Enter or Space, and the rest of the controls are native buttons and links. Dialogs close on Escape but do not trap focus or return it afterward. A full keyboard-only walk has not been done.
Evidence
- frontend/src/components/nomad/NomadShell.tsx in the Nomad repo: the skip link and the main landmark it targets
- frontend/src/components/nomad/a11y.test.tsx: a trip card is one button that opens with Enter and Space, and its name is its visible text
Partly supported
Screen reader landmarks and labels
axe-core finds every control named, every landmark labeled, headings in order, and no ARIA role misuse on the eight screens scanned. Nobody has listened to Nomad with a screen reader.
Evidence
- captures/nomad-a11y.spec.ts in the screenshots harness: axe-core 4.14.0 on eight screens, two widths, two themes (32 scans), zero violations at every impact level on 10/29/2026
- frontend/src/components/nomad/a11y.test.tsx: the two navigation landmarks have different labels, the search button is named by its visible text, and trip titles are h2 headings under the page h1
Partly supported
Contrast in light and dark
axe-core's color-contrast rule passes on the eight screens scanned, in light and dark. Five color pairs failed on the first scan and were fixed, each with a test. Screens that were not scanned have not been checked.
Evidence
- The same 32 axe-core scans: no color-contrast violation at 1440 or 375 pixels wide, in either theme
- frontend/src/contrast.test.ts and a11y.test.tsx: the checked-item, itinerary time, amber chip, and primary button colors that failed are pinned, and the teal chip's dark-theme color was darkened
Partly supported
Reduced motion
CSS animations and transitions switch off when the reader asks for reduced motion, through the Renkara design system's stylesheet. The dialog and the new-trip page animate with framer-motion springs, which ignore that setting. Nothing has been tested in a browser.
Evidence
- node_modules/@renkara/design-system tokens.css in the Nomad frontend: the prefers-reduced-motion block (read, not run)
- frontend/src/components/nomad/Sheet.tsx and frontend/src/pages/NewTripPage.tsx: the framer-motion animations, with no reduced-motion handling
Not yet tested
Text resize and zoom
Not yet tested. Nobody has checked the app at 200 percent text size or browser zoom.
Partly supported
Mobile and touch
The app has a labeled bottom navigation bar for phones. The eight screens scanned at 375 by 667 pixels show no horizontal overflow and no axe-core violations. Touch target size has not been measured.
Evidence
- The same 32 axe-core scans: the 375-pixel runs report no horizontal overflow on any of the eight screens
- frontend/src/components/nomad/NomadShell.tsx: the Mobile navigation landmark
No WCAG conformance level is claimed for Nomad or for this website. The checks so far are automated (axe-core) plus a few unit tests. No one has audited Nomad against WCAG or used it with a screen reader, and Nomad is still in development.
What does not work yet
- Only eight screens were scanned: the trips list, the trip overview, itinerary, bookings, checklists, expenses, journal, and the import-from-a-file dialog. The map, new trip, explore, profile, and settings screens, and the read-only share view, were not.
- No screen reader test, no recorded keyboard-only walk of every flow, and no measurement of touch targets.
- Dialogs do not trap focus or restore it on close. The checklist progress bar is not exposed as a progress bar to assistive technology. Springs in the dialog and the new-trip page ignore reduced motion.
- Text resize has no test, and reduced motion has not been run in a browser.
- This website passes the kit's axe-core scan at 375 and 1440 pixels in both themes. It has not been tested with a screen reader either.
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 Nomad 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.
Nomad is not open yet. Be the first to know when it is.
Leave your email and we will write when Nomad opens. That is the only thing this list is for.
We will send one email to confirm your address. After that, we write only about Nomad opening, and every email has a one-click unsubscribe. What we keep, and why.