Accessible by default
Not bolted on. Not an afterthought. Proper ARIA labels, full keyboard navigation, screen reader support, and WCAG-compliant contrast from day one. Every user gets the same powerful experience.
Full keyboard navigation
Every feature in WISEROWS is reachable without a mouse. Tab through elements. Enter to activate. Escape to dismiss. Arrow keys to navigate within complex widgets. Skip links to jump to main content. No keyboard traps.
- Tab / Shift+Tab to move between interactive elements
- Enter and Space to activate buttons and links
- Arrow keys for menus, tabs, and table cells
- Escape to close modals, dropdowns, and panels
- Skip navigation link to jump to main content
- No keyboard traps — you can always Tab out
Screen reader support
Tested with VoiceOver, NVDA, and JAWS. Every component uses correct ARIA roles, states, and properties. Dynamic changes announce via live regions. Form errors link to inputs. Table cells describe their column and row context.
- Correct ARIA roles on every interactive component
- aria-label for icon-only buttons and ambiguous elements
- aria-describedby for form validation errors
- aria-live="polite" for filter result counts
- aria-live="assertive" for error notifications
- aria-expanded, aria-selected, aria-checked state tracking
Color contrast & focus rings
Every text element meets WCAG AA contrast ratios. Focus indicators use a consistent 2px ring with offset, visible against any background. Color is never the sole means of conveying information — labels, icons, and shapes always accompany color coding.
- 4.5:1 contrast ratio for normal text (WCAG AA)
- 3:1 contrast ratio for large text and UI components
- 2px focus ring with ring-offset for visibility
- Focus-visible: only shows focus ring on keyboard navigation
- Color + text label for all status indicators
- Forced-colors media query support for Windows HCM
Reduced motion support
Vestibular disorders affect millions. When the operating system's "reduce motion" preference is on, WISEROWS replaces all animations with instant state changes. Same functionality. Same visual states. Zero motion.
- Detects prefers-reduced-motion automatically
- Spring animations become instant transitions
- CSS transitions set to 0ms duration
- Parallax and scroll-linked animations disabled
- Loading spinners replaced with static indicators
- No opt-in required — works system-wide
easing: spring
easing: none
How it feels
Everyone gets the full experience.
Tab through the interface and every focus ring is clear. Turn on your screen reader and every button, every table cell, every status badge announces itself correctly. Enable reduced motion and the UI still works perfectly — it just stops moving. Accessibility isn't a mode. It's how the product works.
