The Safari Web Browser Breaks the Rules of Progress

I’ve written previously about implementing progress bars, the graphical idiom for indicating how much of a task has been completed and how much of the task remains. Not all progress indicators are graphical, of course, but developers still need to implement them correctly. Unfortunately, the Safari web browser doesn’t follow the rules.

When downloading a web page, the Safari web browser presents its progress as a sentence in the status bar that states the number of items downloaded—such as image and video files—out of the total number of items to download. For example, the following image shows the status bar after 10 of the 17 items on the BBC News homepage have downloaded:

Safari download progress

Although a graphical progress bar might be quicker to interpret, Safari’s progress sentence is a straightforward and informative progress indicator. However, as the number of downloaded items increases towards the number of items to download, the number of items to download often increases. For example, I grabbed the following images while Safari continued to downloaded more items from the BBC News homepage:

Safari download progress

Safari download progress

Safari download progress

Safari download progress

Every time the page looks like it has nearly downloaded, my hopes were dashed. This is frustrating and therefore poor design because the role of a progress monitor is to sooth users while waiting for tasks to compete.

What seems to be happening is that while Safari is downloading the HTML file, Safari reports the total number of items to download as the number of items to download found in the HTML file so far. It is this premature reporting that gives the variable total of the number of items to download.

A better design would have Safari download the complete HTML file before reporting the number of items left to download. Safari’s progress sentence would then always show the same total number of items to download and therefore always give an accurate progress report.

blog comments powered by Disqus