Make month navigation work without a pointer
The calendar exposes 42 unnamed buttons and moves focus to the page top on month changes. Add a deliberate keyboard model and plain date-entry alternative.
- Focused work estimate
- 2h + prerequisites
- Priority in the scenario
- High
- Engineering practice
- Keyboard interaction · Date input · Accessibility
Estimated field mix
- Accessibility70%
- Frontend30%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
The fictional Riverside desk books appointments for permit paperwork and library assistance. Its browser flow was assembled from separate forms and dialogs. Work uses synthetic availability and booking adapters; actual appointments and personal records are excluded.
Setup prerequisites
- Synthetic services, slots, and booking API contract
- Keyboard and screen-reader access for a documented manual check
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
Acceptance criteria
- Date controls announce full date, availability, and selection.
- Changing month retains focus at a predictable date or documented month control.
- Manual date entry uses the same availability validation and reports invalid dates clearly.
Implementation constraints
- Document the calendar keyboard model; shortcuts must not conflict with text entry.
Verification to include
- Select an available date across a month boundary by keyboard.
- Enter an impossible date and navigate to an unavailable date; neither becomes selected and focus remains recoverable.
Deliverables
- Accessible date selection and month-boundary walkthrough
Rollout and recovery
Keep manual entry during rollout; disable the custom calendar on keyboard-navigation regression.
Value of the work
For the engineer: Practice accessibility as complete interaction behavior, including recovery and asynchronous updates.
For the team: Inspect whether an engineer removes concrete barriers while preserving appointment integrity and supportability.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.