If I could get one wish granted right now on the condition I had to be 100% sure it would benefit everyone in the world, I would ask for this:
(Sorry for it being ugly, I'm not a UX designer after all...)
You might ask "what even is that?" or "how does that benefit anyone?" Very valid questions, but let's first take a step back.
Why do I want this?
Most webpages and an increasing amount of applications these days employ some kind of background component loading. Now that's all nice and good. It becomes a nuisance when I want to click something and just at that moment the UI changes. Something in the background fully loaded, shifts or overlays the screen and causes me to miss, or worse: click something else. I literally accepted meetings in MS Outlook I wanted to decline and vice versa because of this!
Now this post is not simply a rant. I understand the benefits of loading sub-components in the background and would never advise against it. Moreover, I have a possible solution for UX designers aspiring to tackle this problem.
The solution
Bring back a good-old loading bar!
When all data for a sub-component to render has fully loaded in the background, display a loading bar at a nice non-interfering place in the UI. It signals to the user "if you wanted to click anything, please do so now." When the time runs out, only then does the UI change. (Changing the UI immediately because of a user click would also still be acceptable, of course.)
You might argue that when a (web-)app starts up, so many things have to load in the background, this would never be practical. You would just have a stream of loading bar after loading bar, annoying the user. Also fine. In that case, just display a red bar for a while to signal: "we are still busy, you may look, but click at your own risk." I would be totally okay with that. Despite of you want might think of me after reading this, I'm actually a patient person. I just don't like misclicking when it's not my fault.
Wrapping up
Too many apps start to feel like a first-person shooter these days... Speaking of which, video games usually communicate very well when user input is or isn't desired, for example with frosting on the edges of the screen. Once again, I'm not a UX person, maybe a loading bar isn't the best solution to this problem, but some kind of signalling would be fantastic.
Top comments (2)
Even better: use a skeleton component so the user can at least infer what is happening by its structure.
I would argue for both.