E3.16.1parent check selects childrendesign

Checking a parent usually selects all of its children

Aliases: check-down · cascade check · select whole branch

What it is

In a tree multi-select, the default meaning of ticking a parent is “this whole branch joins”: every visible child, and descendants not yet expanded, become selected. That is check-down. Ticking “East China” is granting or exporting a whole branch, not putting an empty folder named East China into the set. Unticking the parent drops the whole branch. Without check-down the parent box is just another item, and the hierarchy no longer saves leaf-by-leaf ticking.

“Usually” leaves a door: when the parent is itself a selectable object, coupling may be switched off or rewritten — another leaf’s job. The default remains parent-ticks-children.

Why it happens

A tree organises a set into foldable branches. People treat the branch name as a handle on that set: grab the handle, grab the bundle. Check-down implements the handle. Expansion must not change the result — collapsed descendants still have to be written, or “tick the folded parent” leaves a truncated selection people believe is the whole bundle. Untick likewise goes down, so a vacant parent cannot leave children behind and make the summary lie again.

Coupling is a set operation, not an animation. One parent tick on a deep tree may rewrite thousands of leaves; the UI must finish the semantics in one action, then deal with paint. Semantics before paint: even if child rows are not drawn yet, they are selected in the model.

Where it stops holding

In a permission model where “folder” and “file” are different objects, ticking a folder should not automatically equal ticking files — default coupling is then too wide and must be switchable. When a filter shows only some children, whether a parent tick means the whole branch or only the visible subset must be stated; silently ticking the visible subset shocks people after the filter clears. Disabled children must not be forced on by coupling; leave mixed and say who was skipped. On a paged or virtualized tree, unmounted nodes still have to be coupled in the model; not rendered is not not selected.

Applying it

  • Default: a parent tick writes the whole descendant branch; a parent untick clears it; folding does not change that semantics.
  • Preview beside the parent how many children will be affected.
  • State the scope under filter and disable; do not silently shrink.
  • How to check: fold a tree that contains collapsed descendants, tick the parent, expand, and export selected ids. Missing an unexpanded leaf means check-down only hit the rows that were painted.

Related

  • Within the group: E3.16.2 A parent must show mixed when only some children are selected · E3.16.3 Coupling must stay responsive in a deep tree · E3.16.4 Users must be able to select a parent itself with no children
  • Adjacent: E3.12 Tri-State and Indeterminate · E4.06 Tree Controls
  • Search terms: check-down · select all children · tree cascade select

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/E3.16.1