pattern · selection
Bulk actions
also called batch actions (carbon), bulk edit (community), multi-select actions (community), contextual action bar (material), selection toolbar (community), bulk action bar (merged-candidate)
Selecting several rows and applying one command to all of them, usually through a bar that appears once a selection exists and reports its count.
Bulk actions turn a list into a workspace. Without them, archiving forty messages is forty trips through the same menu, so the pattern separates the two halves of the job: first say which rows, then say what to do. The commands live in a bar that only exists while a selection does, which is why Material calls it a contextual action bar and Carbon calls it batch actions. It reports the count, because the count is the one thing a reader cannot recover by looking, and it offers a way out of the selection as well as a way to spend it.
The bar should replace the table’s own toolbar rather than push it aside, so the rows under it never move when a selection starts. Keep it visible while the reader scrolls, since the selection they made at the top is spent by a command they reach at the bottom. Show only commands that apply to everything selected, and disable rather than hide the ones that do not, with a reason attached, or the toolbar reshuffles under the pointer every time a row is added.
Selection has its own grammar and most of the bugs live there. A checkbox column, a click on a row that does not fight with opening it, shift click for a range, and a header checkbox that shows three states, not two: checked, unchecked, and the mixed state that means some but not all. Say what select all covers, because “select all” on a filtered, paginated table is genuinely ambiguous, and the honest design offers both: the twenty on this page, and then, in a line under the bar, all four hundred that match the filter. Clear the selection when the filter changes, or the reader will act on rows they can no longer see.
Because one press now reaches many rows, the consequences scale with it. Destructive bulk commands deserve a confirmation naming the count, or an undo, and preferably the undo. Report the result in the same terms as the request: an interface that says “archived” when nine of the twelve failed on permissions has lied about a scale of mistake the reader cannot see. Partial failure is the normal case at this size, so plan for a summary that names what did not work and leaves those rows selected so the reader can try again. And announce the count as it changes, since a bar that appears silently is a bar that a screen reader user only discovers by hunting for it.
Which word?
| If you want | say |
|---|---|
| picking many rows and acting on them at once | bulk actions |
| selecting everything between two items at once | range select |
| select all offers to also take the rows you cannot see | select all across pages |
Related
See also: Applied filters