Browsers have had progress bars since ... well, a long time ago. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pr...
Implementing a progress bar that works for things like "bytes uploaded" or "number of tasks in the queue" on the frontend is fairly trivial. The hard bit is how to transmit a progress value from the backend to the frontend. Typically that requires setting up either a socket or a keepalive connection, or polling an endpoint from the frontend, which is enough of a pain that very few web apps bother.
Ultimately everything required for this sort of feature is right there in every browser. It's the backend that's usually lacking.