“Most people can walk unaided, so we don’t need to make wheelchairs”. “Most of our customers eat meat, so we don’t need vegetarian options”. “Most of our customers drive petrol cars, so we don’t need to sell diesel”. Sound sensible? I didn’t think so.
So why, in the latter half of 2016, am I still hearing “most people will be using our application on a desktop, so we don’t need to make this responsive”? It’s genuinely disheartening to think that so many of us are still stuck with this mindset. We’re better than this.
The thing to remember is that the point of “responsive design” isn’t ‘make things work on phones and tablets’. It’s to make things work on everything. Personally, I think “mobile-first” probably deserves to take a lot of the blame for the continued misunderstanding.
The ideology behind mobile-first development is still absolutely spot-on – that is, you start your design, your build, everything, where you have the least space. Do it the other way around – that is, build everything for “desktop” and then pare it down – and you’re likely to find yourself hitting issues very quickly. Suddenly that table doesn’t seem like the best way to represent that data, or maybe all of your touchpoints are really small and close-together, or maybe you had a whole column of content that is suddenly at the bottom of the screen, and you don’t want it to be. You realise you should have done it the right way around in the first place, and you probably make a mental note that you will next time. And you should.
So it’s not the methodology that’s the issue, it’s the terminology. “Mobile-first”, understandably, makes people think of phones and tablets. And when people focus on that link so heavily, it’s easy to understand why they often, even now, think of “mobile” as an edge-case, or a “nice to have”, or something that doesn’t apply to them at all. Personally, I’ve always championed the use of “smallest-viewport-first” as a description instead, because it really is the viewport that’s important, not the device type. This is even more accurate today than it was years ago (and this genuinely is a drum I’ve been banging for years); thanks to split-screen modes on modern mobile operating systems, even phones and tablets can have different viewport sizes on the same device these days.
Predicting the future isn’t something we are especially good at at the best of times, but despite this, people are often quick to assume they know how people will interact with the applications we build. But even if you know for an absolute fact that your application can only be accessed on a desktop PC, and that there’s no way at all to access it from anything else, you still can not guarantee what the user’s viewport size is. You can’t guarantee that they aren’t running your application at a third of their screen’s width, and you certainly can’t guarantee that you know what resolution they’re running at, or what they have their browser’s ‘zoom’ setting on – all things that affect the viewport size. Do you still have confidence that you don’t have to worry about making your application responsive?
Maybe you don’t care. Maybe you think “well, my users can just scroll horizontally”. And sure, they can. And granted, horizontal scrolling isn’t quite as serious as the consequences of disregarding the needs of wheelchair users, or dismissing vegetarians/vegans, or ignoring diesel drivers, but would you want to scroll back-and-forth on every website you visited? I think you’d get sick of that pretty quickly. With that in mind, why should you be happy to subject [an unknown number of] your users to it?
Thanks to David Nimmo for again producing a fantastic blog post!