You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The frontend has many custom overlays and controls, but accessibility behavior is implemented inconsistently. Major modals are fixed div/section overlays without a shared dialog contract, focus trap, Escape handling, focus restoration, or inert background. Active navigation and tab-like controls also rely primarily on color, while several forms lack explicit labels and field-level accessible errors.
The current color tokens additionally use white text on orange combinations that do not meet WCAG AA contrast for common text sizes.
Accessibility should be solved through shared primitives and semantic tokens rather than one-off patches in every screen.
Scope
Create or adopt shared accessible primitives for dialog, alert dialog, menu/popover, combobox/listbox, tabs/segmented controls, and live feedback.
Ensure dialogs provide an accessible name, aria-modal, focus containment, sensible initial focus, Escape handling, background inertness, scroll lock, and focus restoration.
Migrate launch-critical overlays: recipe capture/editor, camera, voice inventory, hands-free setup/mode, meal-event editor, and mobile create menu.
Add aria-current to active navigation and aria-selected/aria-pressed semantics to tab and toggle groups.
Associate every form label, description, error, and required state with its control.
Give icon-only and destructive controls explicit accessible names.
Add role="alert"/aria-live behavior for async errors and status changes where appropriate.
Replace failing foreground/background token pairs with semantic action tokens that meet WCAG AA.
Add a global prefers-reduced-motion strategy and avoid essential information conveyed only through animation or color.
Review minimum text sizes, touch targets, zoom/reflow, and high-contrast behavior.
Context
The frontend has many custom overlays and controls, but accessibility behavior is implemented inconsistently. Major modals are fixed
div/sectionoverlays without a shared dialog contract, focus trap, Escape handling, focus restoration, or inert background. Active navigation and tab-like controls also rely primarily on color, while several forms lack explicit labels and field-level accessible errors.The current color tokens additionally use white text on orange combinations that do not meet WCAG AA contrast for common text sizes.
Accessibility should be solved through shared primitives and semantic tokens rather than one-off patches in every screen.
Scope
aria-modal, focus containment, sensible initial focus, Escape handling, background inertness, scroll lock, and focus restoration.aria-currentto active navigation andaria-selected/aria-pressedsemantics to tab and toggle groups.role="alert"/aria-livebehavior for async errors and status changes where appropriate.prefers-reduced-motionstrategy and avoid essential information conveyed only through animation or color.Acceptance criteria
aria-invalid/aria-describedbyor an equivalent pattern.Related
Out of scope