A transfer list is for picking from a large set and seeing the selection whole
Aliases: dual listbox · shuttle · available versus selected
What it is
A transfer list (dual listbox) keeps candidates in one column and the chosen in the other, with add/remove in between. It fits pulling a subset that must be checked repeatedly from a larger set: roles to grant, fields to export, columns to show. The left answers “what else can I pick,” the right answers “who is already in,” both questions in view at once. A multi-select dropdown parks the chosen in a trigger; a transfer list spreads them as a complete roster — when checking the subset is the task, spreading is worth more than collapsing.
Seeing the whole is why it exists. If the right is only a count without names, it is no stronger than a dropdown with a count.
Why it happens
Choosing a large subset needs two spatial models: source set and target set. A single list flips booleans in one space, so chosen and unchosen tangle, and “did I miss any” is a hunt for ticks in a long roster. Two columns physically separate the chosen; misses and extras become “is this name on the right,” a smaller visual-search set. Moving also gives a direction: rightward is a join, leftward is a withdraw, closer to a handover metaphor than toggling the same row.
The whole depends on the right actually listing every chosen object. Summaries, folds, or “latest few” hand the whole back to memory, and the transfer list’s advantage dies.
Where it stops holding
When the subset is tiny and does not need side-by-side checking, chips or checkboxes are lighter. When the universe is huge, both columns become inner long lists and the “whole” is nominal — that is scan cost, not a denial of dual-column semantics. Immediate grants via a transfer list mean a move is an authorisation; they need failure feedback, not draft-form treatment. Forcing a tree into two columns drops hierarchy unless the columns keep indent. On touch, the middle arrow buttons are often too small; row actions or drag have to cover the move.
Applying it
- Use two columns when checking the subset is part of the task, and write the chosen column as a complete roster, not only “N selected.”
- Let column titles name the two sides (“Available roles / Granted”); arrows only move, they do not name.
- Do not collect two or three items with a transfer list; that is a heavy structure on a light problem.
- How to check: hide the left, look only at the right, ask “who is in effect now.” If they cannot finish the names, the whole was never given to the chosen column.
Related
- Within the group: E3.14.2 Both lists need their own search and bulk actions · E3.14.3 Whether order is kept after a move must be defined · E3.14.4 Scan cost stays high when the set is huge
- Adjacent: E3.06 Multi-Select Dropdowns · E3.10 Matching Option Count to Control
- Search terms:
transfer list·dual listbox·selected column