[TASK] Single-selection folder list view is a tab trap (every row tabbable)
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Parent
Follow-up from #32591 / PR #37436 (Content Drive keybindings).
Problem
dot-folder-list-view in single-selection mode makes every row a tab stop. A listing of 40
rows is 40 presses of Tab to get past, which is the tab-trap #32591 fixed for Content Drive, still
present for the single-selection consumer (the asset selection dialog).
Cause
PrimeNG's SelectableRow.setRowTabIndex() short-circuits to "every row is tabbable" whenever the
selection is empty, before it ever consults the table's anchor. An empty selection is the
permanent resting state of a single-selection list, so the anchor #37436 drives is never read and
the roving tab stop never applies.
Confirmed structural rather than a timing artifact by letting a second render settle.
Scope decision in #37436
Out of scope, deliberately: FR-001 was amended to multiple-selection listings only. The behaviour is
pinned by a no-regression test so it cannot change silently —
should leave single-selection tab behaviour exactly as it was in
dot-folder-list-view.component.spec.ts. That test asserts today's trunk behaviour, so whoever fixes
this will see it fail and be pointed here.
What "done" looks like
- One tab stop in single-selection mode, roving with focus, exactly as in multiple
- The no-regression test above updated (not deleted) to assert the new behaviour
- The asset selection dialog checked, since it is the consumer
Where
core-web/libs/ui/src/lib/components/dot-folder-list-view/dot-folder-list-view.component.ts
(#applyRovingTabStop,#seedTabStop)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in core-web/libs/ui/src/lib/components/dot-folder-list-view/dot-folder-list-view.component.ts, reading #applyRovingTabStop and #seedTabStop, then run dot-folder-list-view.component.spec.ts. Update the named no-regression test to cover the new single-selection behavior, and verify the asset selection dialog has one roving tab stop.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 82/100