feat: Phase 2 — saved recipes, browser, accessibility, level UX #69
No reviewers
Labels
No labels
accessibility
backlog
beta-feedback
bug
duplicate
enhancement
help wanted
invalid
needs-design
needs-triage
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/kiwi#69
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/orch-auto-lifecycle"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Test plan
- Global :focus-visible ring in theme.css — covers all interactive elements with keyboard-nav focus ring without affecting mouse/touch users - Removed pulse-urgent animation (safety policy violation — infinite animation) - Global prefers-reduced-motion guard suppresses all animations system-wide - Added .sr-only utility class for screen-reader-only content - Tab bar (RecipesView): role=tablist/tab/tabpanel + aria-selected + arrow key nav - Modal focus management: trap focus on open, restore on close, Escape to dismiss (SaveRecipeModal, RecipeDetailPanel, SavedRecipesPanel new-collection dialog) - aria-modal=true on all modal dialogs - Icon-only buttons now have contextual aria-labels: chip-remove: "Remove constraint: vegetarian" / "Remove allergy: peanuts" bookmark: "Bookmark: {title}" / "Remove bookmark: {title}" dismiss: "Hide recipe: {title}" browser save toggle: "Save recipe: {title}" / "Edit saved recipe: {title}" - InventoryList qty +/- buttons: aria-label="Increase/Decrease quantity" - Quantity number inputs: aria-label="Quantity" - Select elements (SavedRecipesPanel): labelled via .sr-only for-id pattern - Star rating group: role=group + aria-labelledby; each star: aria-pressed - Ingredient checkboxes: label wraps input + span (label association fix) - aria-live="polite" announcer for dynamic recipe results count - Dynamic aria-labels on status messages (role=alert/status + aria-live)- "Use What I Have" / "Allow Swaps" / "Get Creative" / "Surprise Me 🎲" - Active level shows a one-liner description beneath the selector - Hover tooltips repeat the description for mouse users - Label changed from "Creativity Level" to "How far should we stretch?" - Wildcard confirmation copy updated to match new framing