Does a Progress Bar Actually Know How Much Time Is Left?
Motion is not measured progress.
Precise claimMotion alone does not report progress. A determinate HTML progress element reports the value supplied by the page; an indeterminate one reports only that work is ongoing with completion unknown.
Applies
This page demonstrates the semantics of the HTML progress element and interface choreography. The live demo exposes whether a value attribute exists.
Does not prove
A value attribute does not prove that the application measured its real task correctly, and an animation does not prove that any task is running.
Portable rule
If an indicator offers no grounded value, then read its motion as ‘still working’ — never as ‘how far along.’
Declare the discussion context, then copy a stable link. No account or personal data is attached.
Does a Progress Bar Actually Know How Much Time Is Left?
One bar is reporting a real task. The other knows nothing at all. Can motion alone justify which is which?
This experiment depends on motion, and your system has reduced motion on — the bars below are frozen at 50% and reruns are off. The verdict still works; the motion you're not seeing is the point.
Interactive
Bar A
Bar B
Think you can spot a tell? Every run reshuffles.
The reveal
Motion alone does not report progress. A determinate HTML progress element reports the value supplied by the page; an indeterminate one reports only that work is ongoing with completion unknown.
You picked: —
Bar A was reporting a real task. Bar B never had a value attribute — it knew nothing, from the first frame to the last.
You read the stutter as real work. Most people do. It was choreographed — that bar knew nothing the whole time.
You picked the bar that happened to be real. You also flipped a coin and won — motion was the only evidence, and motion carries zero information.
The only defensible answer. The stutter and the glide were both choreography; motion carries zero information.
The smooth glide looked like honest work. It was choreography too — that bar knew nothing the whole time.
Your first run was stacked — the bar that knew nothing got the lifelike stutter. Every rerun after that was a coin flip.
You marked Certain — on a question where certainty was never available.
Motion is not information.
The rebuilt model
You assumed:
A bar that moves like real work must be measuring real progress.
The actual model:
There are two separate questions: does the interface have a value, and is that value grounded in the real task? Motion answers neither.
The variable that failed you:
The presence and provenance of a value — not the animation pattern.
Run it again — one variable
One bar, its live code underneath. Watch what changes when the attribute goes away.
Interactive
The bar
<progress value="0.62" max="1">
The defensible answer is the third one. Without a value attribute the bar is indeterminate: it will keep animating, by spec, and report nothing. The 62% you watched a moment ago left with the attribute.
Scroll back up and open your browser's devtools (right-click either bar → Inspect).
Find the two <progress> elements. One has a value attribute. The other doesn't — hit "Run it again" and watch the attribute switch sides.
Delete the real bar's value attribute yourself. It keeps moving. Now neither bar knows anything.
Interactive
Playground — every setting proves the same thing
A bar that never knows
Drag it anywhere. Every setting on this slider is compatible with "knows nothing" — this bar never has a value attribute, no matter how convincing the motion gets.
Scope: This page demonstrates the semantics of the HTML progress element and interface choreography. The live demo exposes whether a value attribute exists.
Does not prove: A value attribute does not prove that the application measured its real task correctly, and an animation does not prove that any task is running.
Take it with you
The portable rule
If an indicator offers no grounded value, then read its motion as ‘still working’ — never as ‘how far along.’
Design review
Ask where the percentage comes from before approving a filling bar.
CI and data pipelines
Prefer named steps such as 3 of 7 when total duration is unknowable.
Client explanation
Separate a reassuring activity signal from a measured completion estimate.
Interactive
Apply it — five seconds
Installing Updates…
Right. Mock or not, a bar with no value can only say "still working." That question is yours for every review from now on.
Careful — the bar moves, but nothing feeds it a value. Motion still isn't information.