diff --git a/_bmad-output/implementation-artifacts/3-10-provide-clear-focus-indicators.md b/_bmad-output/implementation-artifacts/3-10-provide-clear-focus-indicators.md new file mode 100644 index 0000000..d3d5ce6 --- /dev/null +++ b/_bmad-output/implementation-artifacts/3-10-provide-clear-focus-indicators.md @@ -0,0 +1,195 @@ +# Story 3.10: Provide Clear Focus Indicators + +Status: review + +## Story + +As a **keyboard user**, +I want to clearly see which element has focus, +So that I know where I am on the page at all times. + +## Acceptance Criteria + +1. **No bare `outline: none`**: Every `outline: none` or `outline: 0` in the codebase has a corresponding `:focus-visible` alternative nearby — either in the same rule block or an adjacent selector. The global `:focus-visible` override cannot be relied on silently. +2. **Visible focus ring**: All interactive elements (links, buttons, inputs, checkboxes) display a clearly visible focus ring when focused via keyboard (`:focus-visible`). +3. **Consistent focus style**: All element-specific focus rules use `:focus-visible` (not `:focus`) to ensure outlines appear for keyboard navigation but not on mouse click. +4. **Sufficient contrast**: The `--aurora` (#7EC8C8) focus outline achieves ≥3:1 contrast ratio against every background it is rendered on (verified against the site's dark backgrounds; flagged if any light-background context exists). +5. **Forced colors support**: A `@media (forced-colors: active)` block is present in `style.css`, ensuring focus outlines use `Highlight` or `ButtonText` system colors so Windows High Contrast mode users see focus indicators. +6. **No focus suppression in `compare.html`**: No inline `outline: none` or `:focus` suppression in the `