Ryan's Blog

Like Twitter, but longer


Responsive Design redux...

I've just sent a version of this to some people on our product team about our responsive design approach. The question was about support for IE7 and 8 in our responsive application, and how we're handling supporting devices which are modern, standards compliant, Cutting the Mustard devices alongside those that aren't.

The question was,

Have we got anything documented on what browsers/devices that are to receive the Second level of support will actually get?

And here's my answer.

There are a number of principles that we’re working to.  These are:

  1. http://dowebsitesneedtolookexactlythesameineverybrowser.com/
  2. Responsive Design means serving an optimal experience to all devices, not focusing on any particular one.
  3. We choose to use modern development techniques where possible, with hacks/polyfills/device specific enhancements added after delivering a core experience.

That means that we are developing for the main set of devices that support modern javascript, have good CSS support and deliver html5 support.  This includes (generally speaking), IE9+, Firefox, Safari, Opera, Chrome on all devices.  This doesn’t support (generally speaking), IE7 & 8, Feature phones, some older devices (old Android perhaps), and some Blackberry (I think BB5 is one of the non-supported ones).

The principle of second level support doesn’t really mean that these devices don’t have an optimal experience. It just means they may not get some enhanced features, or are specifically supported through additional effort. (A good example is CSS3 columns. IE doesn’t support them, so instead of lists being displayed in columns (top to bottom then left to right), they’re displayed in rows (left to right then top to bottom).

The comment “all browsers will get as full a desktop experience as possible” isn’t quite right in that case.  The issue is with the use of the word "desktop" in there. A more accurate statement (but not as succinct) would be this:

All devices will get access to all content. All devices will get an experience that best suits that device. Not all the experiences will be the same.

Any component that fails to allow the first sentence has a showstopping bug, a failure to deliver the second sentence is more nuanced and probably depends on (at least) browser usage, effort to implement, impact of the detrimental experience and expected lifetime of the device.

Of course, this is something I've been saying for a while (mean time to mobile parity, Github presentation on RWD)