Support Vs Optimization

There is a difference between support and optimization

A few things usually happen when I bring up the existence of mobile devices/browsers that aren’t iOS and Android. First, people give me a blank stare. Then they respond, “Well…fuck them”. (I’m not just being cheeky here, this sentiment has been expressed to me on multiple occasions.)

As more connected devices enter the landscape, it’s important to discuss how we as web creators are going to deal with the sheer number of devices, browsers, operating systems, and form factors. Moving forward we need to consider the difference between support and optimization.

The Problem

Here’s the problem. It’s already a challenge to properly test on the major desktop browsers: three versions of IE, Firefox, Chrome, Safari and Opera. Now we’ve got a giant list of mobile browsers on our hands, including:

  • iOS
  • Android
  • Blackberry Webkit
  • IE Mobile
  • Opera Mobile
  • Opera Mini
  • Firefox Mobile
  • Silk
  • Ovi
  • pre-6.0 Blackberry browsers
  • WebOS Webkit
  • Nokia Webkit
  • Netfront
  • UCWeb
  • Dolfin
  • and more!

(thanks PPK)

And this isn’t even getting into the different OS versions, emerging tablet versions and carrier bastardizations. Your reaction? Get right out of town. Go on, scram.

The Knee-jerk Reaction

You look at a list like that and know right away you’re in a world of hurt if you try to take on this challenge. So you do the logical thing and take a look at your analytics, realize that the vast majority of mobile traffic comes from iOS and a smattering of Android devices, then set out to make function and look great on them (typically “great” on iOS, “OK” on Android).

Clients give you full support and they can’t wait for their “iPhone site” to be ready. They get even more excited to learn that the “iPhone site” will work on Android too!

You learn in the process that it’s actually really fun to make stuff for iOS and Android, and start pushing the envelope, making things more app-like, adding some scrolls, adding some swipes here and there. Bells. Whistles. Life is good.

But why can’t I help but feel like there’s something wrong here?

Honey, I Broke the Internet

The fact of the matter is that people do indeed use these other mobile browsers. Despite being not as sexy and user-friendly as the top-shelf browsers, people rely on these mobile devices to learn, search, explore, shop, and more. Hell, for an increasing number of people, that little screen is their lens to the modern world.

The power of the web is its ubiquity. It is the web’s superpower, and its omnipresence is what sets it apart from native platforms. “Native vs Web” is total bullshit because the web can reach any device that has a browser, and native apps can’t. It’s The Web. Worldwide. You know, dub-dub-dubs and all that.

The Power of the Web Is Its Ubiquity

The minute we start giving the middle finger to these other platforms, devices and browsers is the minute where the concept of The Web starts to erode. Because now it’s not about universal access to information, knowledge and interactivity. It’s about catering to the best of breed and leaving everyone else in the cold. All of a sudden, the “native vs web” argument is no longer bullshit. It becomes more an apples-to-apples comparison, where web experiences only work on the platforms that happen to provide thousands of gorgeous native apps.

Moreover, it’s just short-sighted. If you substitute the words “IE” and “Netscape” for “iOS” and “Android”, you’ll see what I mean. Are we going to start seeing “Best viewed on iPhone” animated GIFs popping up on site footers? What happens when the landscape changes yet again next year? We need to stop simply reacting to the landscape of today and start thinking…you guessed it….future friendly.

Disruption will only accelerate. The quantity and diversity of connected devices—many of which we haven’t imagined yet—will explode, as will the quantity and diversity of the people around the world who use them. Our existing standards, workflows, and infrastructure won’t hold up.

The future landscape is going to be crazier than that list of current mobile browsers. We won’t just have to deal with mobile phones, but also tablets, TVs, displays, car dashboards, watches and a whole lot of stuff we haven’t even dreamed up of yet. Starting to deal with this crazy landscape today is like boot camp for the insanity we’ll have to deal with tomorrow.

The C Word

So back to the problem at hand. Unless you want to hole yourself up in a cabin for the foreseeable future, you’re not going to be able to optimize your web experience for every single browser. What I’m really asking for here is consideration.

You don’t have to treat these browsers as equals to iOS and Android and no one is recommending that we have to serve up a crappy WAP site to the best smartphones on the market. It’s just about being more considerate and giving these people who want to interact with your site a functional experience. That requires removing comfortable assumptions about support and accounting for different use cases. There are ways to support lesser platforms while still optimizing for the best of the best.

For example, there’s a lot of different Blackberry versions and there’s not enough time in the day to get it looking rock solid on every version. Blackberry OS 4.5 (RIM’s current least common denominator) butchers a lot of basic CSS. You even have to set explicit widths to floated elements for them to register. Goofy stuff, says I. We can’t really help 4.5’s problems and it’s probably not worth bending over backwards to smooth out every layout issue, just as most of us no longer feel the urge to go back and deal with IE6’s woes. But by being cognizant of the page weight and not sending down 20 scripts the phone can’t even use, we’ve just given the poor user a better experience than 98% of other sites they encounter.

And are there cases where what you’re doing simply isn’t possible on most devices? Of course. Nobody’s saying you can’t do that either. Just do it gracefully, and let people know their device can’t handle the sheer power of your web app. Be nice.

What To Do?

Progressive enhancement becomes an important strategy in order to deal with today and tomorrow’s diverse landscape. Start with a strong, semantic foundation, layer on styles smartly and add in unobtrusive Javascript to build up the experience. This allows us to reach more places while still delivering powerful experiences to iOS, Android and other more capable future browsers. It’s laying the foundation which we can then build upon.

And here’s some things you can do right now to be more considerate:

  • Check out your site on the Opera Mini Simulator. How’s it looking and working?
  • Download several Blackberry simulators. I recommend getting at least one 4.5, 4.6, 5.0, and +6.0 emulator. A few words of warning:
    1. simulators are good but don’t compare to the real deal. (Try beating up the nearest day trader to gain access to a live Blackberry)
    2. Blackberry simulators are Windows only
    3. Blackberry simulators are a bit clunky.
  • Get yourself an Android device. In addition to the default Android browser, you can download Opera Mobile, Firefox Mobile, Opera Mini and Dolphin
  • Jason Grigsby recommends ninja-mode: going to carrier stores and firing up your experience on as many phones as possible. Quick, dirty, and effective.
  • Invest in some devices. You probably already have an iPhone or perhaps an Android. Get as many real devices as you can. I got a Palm Pixi for $25 on a daily deals site. These devices are worthy investments.
  • Check out @firt’s rather extensive list of mobile emulators
  • Make the most out of Modernizr and conditionally load resources based on the browser capabilities.
  • Change your mentality. Instead of getting hostile whenever you encounter yet another device or browser, think of it as an opportunity to reach more users.
  • Keep in mind that next year’s devices will be different yet again. Don’t get hung up too much on specifics and prepare your experience to adapt to tomorrow’s landscape.

Hope for the Web

“There is a difference between support and optimization” is a line I use regularly at work. For time and budget reasons, we can’t make the best experience ever for every connected device, but we have a responsibility to provide a decent experience to those who wish to interact with our products and services. As we move into the future, it’s going to be harder and harder to account for the plethora of connected devices, so we need to be construct our experiences with more consideration. In the magical world of web design we sometimes have to cut corners. Let’s make sure The Web’s superpower isn’t one of the corners we cut.

13 Comments

  1. thx – a great read. It’s so easy for people to get blinded and support a select few devices. As you point out with consideration and balanced approach it needn’t be too tough to be a bit more accessible. It’s so important to get ready for Scott Jenson’s Zombie Apocalypse of devices – http://designmind.frogdesign.com/blog/the-coming-zombie-apocalypse-small-cheap-devices-will-disrupt-our-old-school-ux-assumptions.htm

  2. Sadly, it’s a superpower that comes with the curse of another ‘c': compromise.

    • Absolutely. But regardless of our decision we’re making compromises. We have a fixed, finite amount of time and an increasing amount of devices to reach. We could focus our efforts and create great experiences that only work on a limited range of devices, therefore dissolving the web. Or we could try to support the universal web and in the process inhibit progress and innovation.

      And of course there’s a lot of potential to take the best of both. Treating (web) apps as welcome enhancements is something I want to see more of, but I feel we need to overcome the “all you need is an app” mentality (Path, Instagram, et all certainly aren’t helping). I think it makes good business sense to have your bases covered then figure out where you could create more rich experiences.

  3. ‘WebKit only’ compromises on breadth. I’m not convinced that Progressive Enhancement compromises on depth.

  4. dead on, Brad, thanks for this

  5. @martinkem

    standardization should be the way out of all this mess. Every web browser developer should work to ensure that their web browsers are capable enough to handle all the standard webscripts from html to html5 javascript and css properly. And web developers should learn to stick to those standards

  6. Important summary on mobile strategy for 2011. Even more important advice on mobile strategy for the future! Thanks Brad.

  7. Jens Bambauer

    Nice Article Brad.
    Exactly deals with issues I had in my latest projects. Another thing I experienced is, that optimization for tablets can be very different than optimization for smartphones. In some cases it can even break support for smartphones. It just occured to me that the client bought a tablet optimized site, we had no time to deal with the issues on smartphones. The site had a very special navigation concept… and it was kind of unusable on a smartphone. We had no solution from a technical standpoint, it was even more a design/concept problem. But it was sold like that…
    Clients are very excited about the iPad, iPhone and some Android devices, I think the real problem is to sell them the idea to support even more devices. Especially in larger projects the time for testing on more devices becomes absurdly high.
    I’m not a big fan of mobile site versions, the most new smartphones are build to experience the full thing, but in some cases this can be a solution to cover more different types of devices. Very exciting times, thanks again for sharing your thoughts. – Jens

  8. Excellent article. I think progressive enhancement is one of the most crucial and most overlooked front-end design strategies on the web. I’m sick of seeing javascript in the href attribute of anchors, or the notorious dysfunctional #. The floods of AJAX-only interfaces that came with the starburst-laden Web 2.0 phenomenon are plaguing lower end devices. It’s really not that much harder to add a valid/semantic link and add a little “.preventDefault()” to each function…

  9. I guess if we keep our eyes on another ‘c’ – Content, and not become too distracted by the bells n whistles, the path through this mess becomes clearer. Thanks Brad!

  10. Joe

    There are good points all around in this article, but I as a Multimedia Developer, I have to look the other way on some. First of all, applications need to be developed for the specific device. Technology has not caught up to allow a universal format of all forms of media to be used on all devices. BlackBerry phones are not social media type friendly, so adding video in HTML5 or your choosing will not provide the same results as an iPhone device. Tablets are not mobile devices and mobile devices are not desktops. A website or application should be developed specific to the device it’s intended to run on. I agree with you regarding the list of devices, however, due to overwhelming data I’ve come across in trying to accommodate all of them, I too said “F@#$ it”! I had to. I got lost. Google Analytics and online stats about smart phones made me feel much better. The devices I found to be mostly used to surfing the net are:
    – iPhone
    -iPad
    -Sony
    -Samsung
    -LG
    -Motorola
    -HTC
    -Droid

    I think it’s wonderful to have a perfect strategy for development, and don’t get me wrong here. I’m not knocking your expertise or your valuable information. But with the fact that I don’t even surf the net on my iPhone due to connection and time, but factor in the Client, your Boss, the devices and different forms of media one can add to a mobile website, is it truly worth investing the time, energy, blood, sweat and tears into this list?

    I have found that using good use of CSS for both landscape and portrait view, along with using percentages on images and graphics works best to accommodate these devices. I develop a whole new site for Tablets. I would love nothing more than to spend the time to create 1 CSS file that applies to a site so that you have one site for Desktop, Tablet and Mobile device, but clients and outside interference won’t allow it.
    Thanks, Jonathan

  11. I´ve reading a lot of responsive design these days and I´m looking forward to improve my skills. I will take this article as an useful advice, thanks!

  12. Great article. Will definitely be pulling this out for reference material as I’m explaining to clients the difference between a mobile-optimized site and a mobile-supported site.