F1.01.3action scopedesignresearch

When one control acts on many objects, the scope must be marked

Aliases: selection scope · bulk action · affected set

What it is

Archive occupies one slot in a mail list, yet this press may swallow the current thread or the forty that are checked. How far the button sits from any one message cannot answer which set. Once a control is one-to-many, distance is no longer the mapping channel. Action scope has to be marked separately: who is in the set, how large it is, what this press will touch.

A verb that says Delete does not save the case. People think the scope is this row; the product eats the whole checked page. The failure is the set, not the word.

Why it happens

Proximity is a pairwise cue. It encodes “A belongs with B”. Set cardinality is variable, and members can sit far apart — checks across pages, across folders. No single location can sit next to every member of that changing set, so scope has to be written in other variables: a count, the mixed state of a select-all box, checks on the objects, a number inside the action label (“Delete 12”).

Scope also rewrites itself while nobody is looking. Select all in search results sometimes means the twenty on this page, sometimes the three thousand matches, and both sets often share one checkbox. Once selected marks scroll out of the viewport, the set shrinks in perception to “the rows I can still see”.

Studying it

Run a scope-misread task: show a list with a partial selection already made, ask people to predict which rows the button will hit, then execute (reversibly).

Independent variables: whether a selection count is shown, whether the label contains a number, page-level versus result-level select-all, whether selected items are still in view. Dependent variables: overlap between predicted and true sets, misses (items people did not realise would be touched), false alarms (items they thought would be touched but are not).

Include a condition where the selection has scrolled off-screen — that is where scope errors cluster. Testing only the current viewport will hide the problem.

Where it stops holding

Controls that always act on “this one” — a per-row favourite, formatting of the current cell — do not need a scope bar; the object is that one. Find-and-replace that defaults to the whole document, when users already hold that model, still benefits from a count but need not ring every match. Assistive-tech users who cannot see the highlight need the scope in the accessible name (“Archive 12 threads”); visual checks alone do not travel. At a few hundred members, per-item highlights become noise; a count plus a sample preview is more readable than a wall of ticks.

Applying it

  • Keep the current set size next to the bulk action, and put the number in the label. Disable the action when the set is empty; do not fail silently.
  • Keep selected marks visible on members. When marks leave the viewport, leave a note beside the action: “N selected, some off-screen”.
  • Do not let “select this page” and “select all matches” share a checkbox. Split the commands, or add a second choice that names the set.
  • How to check: stage three states — a single row, a selection scrolled away, select-all across pages — and before executing ask “what will disappear?” Scope is marked only if all three answers are right.

Related

  • Same group: F1.01.1 Distance between a control and its object decides whether the mapping can be inferred · F1.01.2 Distant mappings need an explicit pointer or highlight
  • Nearby: D1.03 Selection and highlight · E3.01 Checkboxes
  • Search terms: action scope · selection scope · bulk action

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/F1.01.3