John Gruber at Daring Fireball:
But I’m also sure their exist other users who don’t quite know what a web browser is, don’t know that the browser they’re currently using — and perhaps have been using for over a decade — is named “Safari”, and won’t know how to undo a mistake they might make on this browser choice screen.
Emphasis mine. Larger points being made by this article aside1, the idea that there exist “users who don’t quite know what a web browser is” baffled me. Good user interface design does not hide the concept of a “web browser” from the user.
Certainly there are some cases where we can argue that users don’t need to understand the complexities of the underlying system in order to use it; abstracting away the complexity can be a good thing. When you drive a car in the United States, you don’t really need to understand that your car has 4/6/8 cylinders and your engine is comprised of 3-5,000 parts all working together to deliver power to the wheels. But you do need to understand things like:
- The car needs recurring maintenance (oil changes, new tires, etc)
- The lines on the road are meant to be driven between, not on top of
- A cyclist holding up her left arm at a 90 degree angle means she is making a right turn
Call this the basics! User interface design is always a balance of exposing too much of the underlying complexity, resulting in user confusion, and too little, resulting in the user not understanding what their inputs are doing to achieve a certain output.
Consider a user interface which abstracted away the fundamentals of driving a car. Perhaps we put a heads-up display in the car which projects onto the windshield what the cyclist was doing, using a camera and image recognition to understand the raised arm as an indicator of an upcoming right hand turn. Or building in a safety feature which auto-steers the car between the lines on the road2. This sort of accommodation can be useful, but we cannot come to it with the expectation that now the driver need not understand what is happening (e.g. driver still needs to understand it is their responsibility to keep the car driving between the lines, and that the computer assistance is just that – assistance.) The user needs to understand the basics of how a car works, what it needs, and what the rules of the road are in order to be safe drivers.
Now, if a driver runs some poor woman over because “they did not know what the right turn signal was” – we don’t excuse that given the car has some safety feature which sometimes works, and sometimes fails. The driver is ultimately responsible. Good user interface design informs the driver of this responsibility.
The same should be true of computers. The web is a huge part of modern life on a computer, and users should be expected to know what a web browser is! That’s just the basics. Moreover, it’s what ensures the computers we use continue to offer us the right amount of value and freedom we expect. The user doesn’t need to know what Javascript is, or about the DOM, but they do need to know “Safari is a web browser” and that they have choices to use other web browsers such as Chrome or Firefox. It’s only the “open Web” if this is true.
Similarly, users know what an “app” is on a modern phone – heck, we have an entire App Store on Apple’s platform! Why should we expect users to understand there’s a store for apps from which they can download the Facebook app or the Instagram app, but in the next breath we don’t want users to understand what a web browser is!?3
Nonsense.
I had not even finished reading the entire piece before writing this, so keep that in mind. ↩︎
This exists today, it is called “Lane Keep Assist” and is present on many modern cars sold in the USA. ↩︎
I’m not sure this is what Gruber is saying here at all, it’s just the passing reference and acceptance as normal that some users would be unaware of what a web browser is that’s setting me off here. ↩︎