Honest intermediate states for small web tools
A spinner tells someone that the interface is busy. It does not, by itself, tell them whether a request was accepted, where work is happening, whether a usable result exists or when it is safe to try again.
Disclosure: I maintain the six projects referenced below. This article proposes interface copy and transition rules. It does not report changes shipped to these sites, user research or product acceptance tests. The linked pages supply published constraints; the example messages are design suggestions.
1. A result can be ready while copying is incomplete
Small Text Studio provides its note on what to do when Copy fails. The fallback is to select the displayed result and use the system copy command when the site's button cannot access the clipboard.
Those are two separate states: a result exists, and the clipboard operation did not complete. Replacing the result with a generic error would hide the useful part.
Suggested copy:
The result is still shown below. Try selecting it and using your system Copy command.
Do not show “copied” merely because a click handler ran. If success is unknown, keep the output available and describe the remaining action. Pasting into another application is a further handoff with its own behavior.
2. A guide date is not a checked game version
PokéSurvivor Hub provides its note separating announcement dates from the guide's update date. Both dates can be useful without identifying the game build on a particular device.
A broad “up to date” badge can collapse these different facts. Keep the date's role visible, and leave an unknown running version unknown.
Suggested copy:
Guide updated: [date]. Announcement dated: [date]. The running game version has not been checked in this view.
Fill those fields only from their respective sources. A newly edited reference page is not evidence that a player's session changed version.
3. Rejection needs an explanation, not a universal retry button
WatermarkPilot provides its note on rejected formats and keeping your originals. The photo page identifies format and provenance-related restrictions and warns that exports may not retain camera or color-profile metadata.
Suggested copy when an input is refused:
No export is available for this input. Check the format and metadata restrictions, and keep your original.
“Try again” does not explain whether the same input can succeed. Changing an extension or choosing a JPG/PNG is not a universal recovery guarantee: a supported format still has other eligibility conditions. Keep the refusal reason separate from a processing fault and retain the cautious “may not” wording about metadata.
4. A service job needs evidence for each stage
Sonify provides its note on queue load and when the file is offered. The page describes server-side work, timing that depends on the source and queue load, and a file being offered after verification finishes.
Suggested copy while there is no available result:
No download is available yet. Check the current processing stage.
Use a label such as “queued” only when the service actually reports that stage. A frontend timer cannot establish it. Do not promise cancellation of queued work from a page that makes no such promise.
Once a result is available, keep its deadline visible. The stated fifteen-minute window starts after completion, not before it or when the visitor opens the page. Access expiry and physical cleanup are different events; a disabled download alone does not prove physical erasure.
5. A local processing limit is not a server queue timeout
GifLoom provides its note that very complex jobs stop after 90 seconds. This describes a local processing limit. It is a different kind of event from waiting for a conversion service.
Suggested copy when processing has stopped and no usable result exists:
Processing stopped without a completed result. Keep the original and review the task settings before another attempt.
Only report a stop after the worker has actually stopped. Do not infer that another attempt will succeed immediately, or describe the event as a server cleanup problem. A page's local-processing declaration also does not prove the absence of every network request made by the website.
6. Clearing input and changing privacy choices can affect working state
Square Footage Calculator provides its note on what a reset or a privacy change clears. The page distinguishes entered measurements from calculated area and says withdrawing an active analytics choice refreshes the page and clears the current calculation.
Suggested copy before an action with that effect:
This action clears the current calculation. Copy or print any result you need first.
Keep the input, derived result and persistence rule separate. A displayed number is not a saved record. Likewise, unavailable controls should not look like a completed zero-area calculation. Show the actual unavailable state and a relevant next step instead of a plausible-looking result.
Use state labels as small factual claims
For each transition, ask three questions: what event has actually happened, what remains unresolved, and what action is currently available?
“Result displayed,” “copy incomplete,” “input refused,” “service still working,” “local job stopped” and “calculation cleared” describe different events. Give each one a specific message rather than routing all of them through the same success or error banner.
These remain design suggestions from the maintainer of the six linked projects. Testing an implemented transition needs its own observations and results.
原文:https://www.a8q9.cn/en/article/honest-intermediate-states-for-small-web-tools-07c79c.html