Zen and the Art of Wearable Markup

A recent dustup over whether wearables should support HTML, CSS, and JavaScript or run only native apps got me thinking about that question, which is really about the limits (if any) of progressive enhancement, which is the cornerstone of standards-based design.

Most of all, it got me wondering about future-friendliness, an approach to multi-device design that I’ve always supported despite having little to no idea what it means.

Native apps for iOS and Android devices seem to have been with us forever. So much so, that we may forget that when Steve Jobs debuted the iPhone in 2007, its “internet device” capabilities were deliberately limited to the browsing of websites via an included Safari browser. Nobody, not even Steve, saw apps coming.

Even three years later, in his “Thoughts on Flash,” Steve seemed more interested in the “open” and “full” web than in proprietary platforms, despite by then being king of 250,000 apps designed specifically for the iOS platform.

The open web came first; apps came later. With Apple wearables, the reverse may be true. (Note that existing wearables already support the web. Matt Griffin avers that “these watch-sized screens are a totally reasonable way to access web content. And it’s equally reasonable for us to present our content in readable ways on these screens.” By the way, why do we only ask deep industry questions when Apple enters a product segment?)

So my old internet friend John Gruber may be quite right when he claims that “the HTML/CSS/JavaScript web has no place in the wearable world.” Right in the short term, at least where Apple’s watch is concerned, and wrong in the long term.

Progressive enhancement, the foundation of standards-based design, by its very nature, is appearance-, screen-, and device-agnostic. My old friends Steve Champeon of The Web Standards Project and Nick Finck coined the phrase in a SXSW presentation where they turned graceful degradation (itself based on the principle that browsers should be tolerant in what they accept) on its head and presented a new way of working: one based on the separation of powers over appearance, structure, and behavior that standards-based design provides.

If you’re a little rusty about just what progressive enhancement is and how it works, Understanding Progressive Enhancement by Aaron Gustafson will get you sorted. (And Aaron’s classic book, Adaptive Web Design, will fill you in on all the details. Every web developer and designer should own it.)

At its core, all PE means is that we think first about the content and the people who want to access it—not the browser, not the device, not the technology. That we create experiences that will be accessible to any device that reads HTML. And then layer in progressively enhanced experiences for users of progressively capable technology. It’s how a site created in 2015 can deliver content and experiences to a Palm Pilot, a feature phone, a game console, or, dare we dream, a wearable.

Will that content and experience run perfectly on a game console? Depends on the console, and you probably have to test. You may even have to adjust your code to avoid the kind of holes in standards support we once had to worry about in desktop browsers. Will the experience run on a watch? Repeat the previous two sentences. We’ve been through this before. It’s the history of web design. It’s the history of the web.

Which brings me back to the Future-Friendly manifesto, which some designer/developer friends and colleagues I admire drafted a few years ago in hopes of heading off developer panic over rapidly multiplying devices.

They anticipated John Gruber’s tweet and a billion others just like it:

Proprietary solutions will dominate at first. Innovation necessarily precedes standardization. Technologists will scramble to these solutions before realizing (yet again) that a standardized platform is needed to maintain sanity. The standards process will be painfully slow. We will struggle with (and eventually agree upon) appropriate standards. During this period, the web will fall even further behind proprietary solutions.

And they addressed the multiplicity and unknowability of future devices with three Zen koans in place of a technological platform:

  1. Acknowledge and embrace unpredictability.
  2. Think and behave in a future-friendly way.
  3. Help others do the same.

Number two is my favorite, because it sounds like they’re saying “the best way to be future-friendly is to be future-friendly,” which is the part where I always scream at the nearest cosigner of the Future-Friendly Manifesto (assuming they haven’t already run across the street when they saw me coming). But what they actually mean is a series of approaches that are brilliant, and that, to my mind, still boil down to the essentials of web standards, which haven’t changed in more than a decade:

  1. Use structured markup.
  2. Progressively enhance the experience, focusing on capabilities rather than devices.
  3. Test that shit.

You’re welcome.