Trash only works if people can find it
Aliases: trash entry · find deleted items · discoverability
What it is
A recoverable layer that only implementers can find is hard delete for the user. A discoverable entry means that the train of thought “something is missing” leads to the list: “Deleted” in settings, a filter on the original list, “include deleted” in search. This entry is about being able to find it. It is not about whether soft delete happened, or where the window is written.
Why it happens
The cue that something is missing lives in the main view: an empty row, a search with no hits, someone still citing a name that is gone. Recovery has to start from those cues, not from the assumption that people will visit a global drawer named Trash. The name also has to match the words used at delete time: if the copy said “moved to Deleted,” the entry cannot be called Archive or Junk, a second metaphor. Across devices the entry has to exist on every surface; desktop-only, phone-never, means half the situations are unrecoverable. If search excludes deleted by default, an explicit include must exist, or people will take “no results” as proof the object is dead.
Studying it
Have someone delete an object, wait long enough for the transient undo to vanish, then ask them to get it back, without naming the entry.
Independent variables: placement, whether naming matches delete copy, whether search can include deleted. Dependent variables: restore success, number of paths tried, rate of giving up and treating it as permanent loss.
Do not write “please use the Deleted folder” in the task. That measures label recognition, not discovery.
Where it stops holding
An empty recoverable layer should still show the entry, or people will not know to look there when they need it. In enterprise products, admin trash and personal trash need separate entries; mixing them lets people restore someone else’s object or fail to find their own. Types that policy forbids restoring may still appear in the entry, but the object must say it cannot be restored, so the entry does not become a false promise.
Applying it
- Place a “Deleted” filter or entry next to the original list, using the same word that appeared at delete time.
- Global search offers “include deleted”; when a query returns nothing, hint at that option.
- Keep the entry on mobile and desktop; do not build the recoverable layer on only one end.
- Verify by deleting, waiting for the transient bar to go, and asking someone who has not seen the design “where did it go, and how do I get it back.” If they cannot point at the entry, the layer is still an internal implementation.