Render only the visible schedule rows without losing keyboard position
Every filter mounts hundreds of offscreen job rows. A first virtualization attempt is faster but drops focus when the selected row scrolls away.
- Focused work estimate
- 4h 30m + prerequisites
- Priority in the scenario
- High
- Engineering practice
- Rendering performance · Accessible interaction
Estimated field mix
- Performance engineering40%
- Frontend30%
- Accessibility30%
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
A fictional repair coordinator opens a week containing 2,000 jobs. The initial page loads, but filtering and selecting a job can freeze the interface. Build a synthetic scheduling screen with keyboard operation before measuring changes.
Setup prerequisites
- Create a local schedule UI with 2,000 synthetic jobs, long labels, empty results and deterministic responses.
- Record browser version, viewport, device emulation, CPU/network throttling and build mode for every comparison.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
Acceptance criteria
- Bound mounted rows by viewport and overscan while retaining stable job identity.
- Define and implement keyboard movement, focus restoration and accessible row position information.
- Support long wrapped labels and the empty state without overlapping rows or selecting a different job after filtering.
Implementation constraints
- Document the chosen virtualization semantics and test with zoom and a narrow viewport; do not hide all nonvisible records from search without an explicit alternative.
Verification to include
- Traverse beyond the initial viewport with the keyboard, filter the selected row out and verify the declared focus behavior.
- Measure mounted nodes and interaction duration at 200 and 2,000 jobs while checking the selected job ID.
Deliverables
- Bounded row rendering, accessibility checks and before/after traces
Rollout and recovery
Gate virtualization independently; reverting renders the full list while preserving selected IDs and filter state.
Value of the work
For the engineer: Connect bundle, rendering and interaction measurements to user-visible behavior without losing accessibility.
For the team: Produce a bounded performance investigation and regression workflow for dense operational interfaces.
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.