Make every plan explanation, calculation trace, incomplete state, and conflict explanation usable without a pointer or color perception. Keyboard and screen-reader users can navigate steps, dates, before/after state, candidate details, and loading or error states while retaining stable focus and equivalent meaning.
Acceptance criteria
First, previous, next, and last controls are keyboard operable and expose the current step semantically.
Calendar dates can be focused and activated without a pointer.
The before/after control and expandable candidate or technical details are keyboard operable.
Focus remains on a meaningful control when steps, dates, trace readiness, or outcome states change.
Selected placement, selected decision, current date, status, and before/after state have accessible names.
Loading completion, trace failure, counterfactual failure, incomplete calculation, and conflict are announced without stealing focus.
Chosen, rejected, not-examined, ineligible, added, moved, and removed states use text or icons in addition to color.
Muted dates outside the horizon are distinguishable as context and not selectable candidates.
Explanation and trace remain usable at the existing supported responsive widths.
Rendered tests cover keyboard flows, focus retention, accessible names, live announcements, and non-color status equivalents using existing tooling.
Blocked by
#51 — Explorer une décision de trace sur le calendrier
## Parent
#46
## What to build
Make every plan explanation, calculation trace, incomplete state, and conflict explanation usable without a pointer or color perception. Keyboard and screen-reader users can navigate steps, dates, before/after state, candidate details, and loading or error states while retaining stable focus and equivalent meaning.
## Acceptance criteria
- [ ] First, previous, next, and last controls are keyboard operable and expose the current step semantically.
- [ ] Calendar dates can be focused and activated without a pointer.
- [ ] The before/after control and expandable candidate or technical details are keyboard operable.
- [ ] Focus remains on a meaningful control when steps, dates, trace readiness, or outcome states change.
- [ ] Selected placement, selected decision, current date, status, and before/after state have accessible names.
- [ ] Loading completion, trace failure, counterfactual failure, incomplete calculation, and conflict are announced without stealing focus.
- [ ] Chosen, rejected, not-examined, ineligible, added, moved, and removed states use text or icons in addition to color.
- [ ] Muted dates outside the horizon are distinguishable as context and not selectable candidates.
- [ ] Explanation and trace remain usable at the existing supported responsive widths.
- [ ] Rendered tests cover keyboard flows, focus retention, accessible names, live announcements, and non-color status equivalents using existing tooling.
## Blocked by
- #51 — Explorer une décision de trace sur le calendrier
- #52 — Expliquer un calcul incomplet
- #53 — Expliquer un conflit d’obligations
Native keyboard controls, accessible labels and a live region exist, but published rendered tests do not establish the requested keyboard flows, focus retention and complete loading/error announcements. Local commit 51978f7 adds some date activation and status announcements, and current uncommitted UI changes alter focus/dialog behaviour. Full accessibility acceptance remains to verify on the final published UI.
Evidence: reviewed issue requirements/discussions and f1f0835 (published application source; live main 57a39c81 only adds Renovate configuration). Tested an isolated checkout of the published source: 20 test files, 157/157 tests passed, including the five benchmark scenarios. Local commit 51978f7 and uncommitted edits were inspected separately and are not evidence of published completion.
Completion audit — 2026-10-02
Native keyboard controls, accessible labels and a live region exist, but published rendered tests do not establish the requested keyboard flows, focus retention and complete loading/error announcements. Local commit 51978f7 adds some date activation and status announcements, and current uncommitted UI changes alter focus/dialog behaviour. Full accessibility acceptance remains to verify on the final published UI.
Evidence: reviewed issue requirements/discussions and f1f0835 (published application source; live main 57a39c81 only adds Renovate configuration). Tested an isolated checkout of the published source: 20 test files, 157/157 tests passed, including the five benchmark scenarios. Local commit 51978f7 and uncommitted edits were inspected separately and are not evidence of published completion.
Implemented with $luna-verified-implement and independently verified.
Explanation and trace controls support keyboard navigation, stable focus, live announcements, meaningful date/status text, collapsed technical detail, and supported responsive widths.
Validation: 198/198 tests across 23 files, app/spec TypeScript checks, ESLint, and production build pass. Chromium keyboard, focus-restoration, background comparison, and responsive checks at 375/768/1440 pixels pass with no page errors. Original benchmark outcomes match the pre-change baseline in all five scenarios, with and without tracing.
The implementation is in the local working tree based on 0ce33cc9d6fe7381965a9162571abe205d0b7350; no commit or push has been made.
Implemented with $luna-verified-implement and independently verified.
Explanation and trace controls support keyboard navigation, stable focus, live announcements, meaningful date/status text, collapsed technical detail, and supported responsive widths.
Validation: 198/198 tests across 23 files, app/spec TypeScript checks, ESLint, and production build pass. Chromium keyboard, focus-restoration, background comparison, and responsive checks at 375/768/1440 pixels pass with no page errors. Original benchmark outcomes match the pre-change baseline in all five scenarios, with and without tracing.
The implementation is in the local working tree based on 0ce33cc9d6fe7381965a9162571abe205d0b7350; no commit or push has been made.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent
#46
What to build
Make every plan explanation, calculation trace, incomplete state, and conflict explanation usable without a pointer or color perception. Keyboard and screen-reader users can navigate steps, dates, before/after state, candidate details, and loading or error states while retaining stable focus and equivalent meaning.
Acceptance criteria
Blocked by
Completion audit — 2026-10-02
Native keyboard controls, accessible labels and a live region exist, but published rendered tests do not establish the requested keyboard flows, focus retention and complete loading/error announcements. Local commit 51978f7 adds some date activation and status announcements, and current uncommitted UI changes alter focus/dialog behaviour. Full accessibility acceptance remains to verify on the final published UI.
Evidence: reviewed issue requirements/discussions and
f1f0835(published application source; live main57a39c81only adds Renovate configuration). Tested an isolated checkout of the published source: 20 test files, 157/157 tests passed, including the five benchmark scenarios. Local commit 51978f7 and uncommitted edits were inspected separately and are not evidence of published completion.Implemented with $luna-verified-implement and independently verified.
Explanation and trace controls support keyboard navigation, stable focus, live announcements, meaningful date/status text, collapsed technical detail, and supported responsive widths.
Validation: 198/198 tests across 23 files, app/spec TypeScript checks, ESLint, and production build pass. Chromium keyboard, focus-restoration, background comparison, and responsive checks at 375/768/1440 pixels pass with no page errors. Original benchmark outcomes match the pre-change baseline in all five scenarios, with and without tracing.
The implementation is in the local working tree based on 0ce33cc9d6fe7381965a9162571abe205d0b7350; no commit or push has been made.
mentioned in issue #46
Preserved GitLab #54 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 3.
gitlab-35-issue-54.md (SHA-256
ac856feb3883d4e0f6e68d689be558ee089342a32d6e24adfc38977f9a88a34e)gitlab-35-issue-54.json (SHA-256
db094283b671d2a67f58ac61c30412087c40a2a1204d3b8d0b2ea4a88ccffc11)Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.