skip to content
menu
patterns · status vocabulary
patternsfeedback & statusreact: status

status vocabulary

Most items in our apps have a status: a download is on its way, an episode is missing, a host can't be reached. People read these statuses all day, so they should mean the same thing every time, in every app.

A status vocabulary makes sure they do. It is a short table, written once for each kind of item, that lists the statuses the item can have, in the item's own words, and gives each one a meaning.

What the system knowsWhat people readwantedqueuedsearchinggrabbeddownloadedwaitingfailedheldmissingon its wayneeds attentionheld
A backlog's vocabulary: eight values the system knows become four statuses that people understand.

where it applies

  • Every list, row, card or page that shows the state of things: items in a backlog, hosts, jobs, sources, downloads.
  • Before the screen is designed. The vocabulary decides the tabs, the counts, the confirmations and the empty states, so it comes first.

Some things look like statuses but aren't:

  • A label, a tag or a count that isn't a state is a badge.
  • Something about the whole page, like “105 titles can't be checked”, is a banner; see message handling.
  • The result of something people just did, like “8 episodes queued”, is a toast.

anatomy

needs attentionThe release was removed by its source123
One status, close up.
  1. The meaning. One of five: neutral, information, success, warning or error. It decides the colour, and the small shape in front of the words, so a status never relies on colour alone. Colour explains what each meaning stands for, and what it isn't used for.
  2. The words. The status in the item's own words, two or three of them: “missing”, “on its way”, “needs attention”.
  3. The detail (optional). One line on why, or on what happens next: “nothing found · again in 6h”. Technical errors go behind it, in a tooltip or under details, not in it.

A screen reader reads warnings and errors with their meaning first: “error: needs attention”.

NeutralmissingInformationon its waySuccessheldWarningcan't be checkedErrorneeds attention
The five meanings, each with its colour, its shape and an example.

writing a vocabulary

  1. List every value the system has. For a backlog: wanted, queued, searching, grabbed, downloaded, waiting, failed and held.
  2. Group them by what people need to know, not by how the system works: missing (nothing is under way), on its way (something is), needs attention (a person has to act), and held.
  3. Give each group one meaning. The words decide it: “on its way” is information, not success, because nothing is done yet.
  4. Write the detail for each value. Queued becomes “queued for a search and grab”; waiting becomes “waiting for the catalog”.
  5. Put it all in one table, and show every status from it. The status component's React page shows how to write that table in code, so a reviewer can see in one place that “connection firewalled” is a warning.

one status, end to end

An item reads the same wherever it shows up. The row says “on its way”, the tab that holds it says “on their way”, its group counts it among what is on its way, and the confirmation after a grab says it was queued. It doesn't say “success” in one place and “pending” in another.

on their way12on its way8 episodes queuedOn the tabIn the rowAfter the grab
The same words on the tab, in the row, and in the confirmation.

If an item can be in several states at once, its vocabulary isn't finished yet.

sorting by status

Some lists are best sorted by urgency, the most urgent first: errors, then warnings, information, neutral, and successes last. The five meanings come with this order built in, so a status column can sort this way without extra work.

examples

item the system's value status meaning detail
Backlog item failed needs attention Error The download finished, but the file didn't match the episode
Backlog item waiting on its way Information Waiting for the catalog
Host firewalled connection firewalled Warning Reachable only through the relay
Host down unreachable Error No answer for 4 minutes
Source limit over its daily limit Warning Resets at midnight
Title holdings unknown can't be checked Warning The catalog holds it without an identity

do and don't

do
connection firewalled
The words decide the meaning: firewalled works, but someone should take a look.
don't
• connection firewalled
A green chip for a connection that only half works: the colour contradicts the words.
do
S04E07missingsearch failed · again in 2h
One status per row, and the detail says why.
don't
S04E07missingsearch failed
Two statuses on one row: which one is true?
do
queued
Neutral for a plain fact.
don't
queuedmissingheld
Information blue for everything: it stops meaning anything.

accessibility

Statuses are text, not buttons, so the keyboard passes over them. The small shape is decoration: a screen reader reads the words, and for warnings and errors, the meaning first. In a table, the full detail is there for screen readers even where the screen cuts it short after two lines.