Archive for the 'accessibility web standards' Category

Progressive Web Apps: ready for primetime

Four and a half years ago I was moaning (me!) about the state of Installable web apps and interoperability (TL;DR: laughably crap). Everybody listened to me, and made them better. Well, actually, they didn’t, because I was wrong; I still believed in the notion that it was a good idea to download a static snapshot of a site, thereby losing all the immediacy and linkability of web publishing.

Recently, Progressive Web Apps have come on the scene. Alex Russell wrote an excellent explainer Progressive Web Apps: Escaping Tabs Without Losing Our Soul, or — if you prefer a video — here’s Alex and Andreas Bovens, Product Manager of Chromium-based Opera for Android, explaining why Progressive Web Apps Are the Future.

At their simplest, Progressive Web Apps are application-like things hosted on your web server. If you’re as old as me, you might call them “web sites”. They also point to a manifest file, which gives some light metadata about icons, default orientation and the like. In conforming browsers (currently, Opera for Android, Chrome for Android and, forthcoming, Firefox too) you can “save” the app to your homescreen. The relevant icon from the manifest is placed on the device’s homescreen which can then be tickled into life with your digit, indistinguishably from a native app: over HTTPS, if you so define it in the manifest, it can open in a default orientation and with no browser UI; with Service Worker, it can work offline.

Crucially, in browsers that don’t support it, you have a normal website. It’s perfect progressive enhancement.

There are differences in implementation; Opera and Chrome are working closely to see what works best. Opera’s implementation currently differs from Chrome’s in four main ways:

  • HTTP-hosted sites will only display with browser UI, regardless of what the manifest states, because they’re less secure.
  • when the user follows a link that takes the user out of the domain of the installed app, a new tab is spawned, with browser chrome. (Chrome shows a small address at the top of a standalone-app. We prefer to make it more obvious to the user that they have gone outside your app.)
  • Opera doesn’t (yet) support background_color; this will be added in a forthcoming release.
  • Chrome has a mechanism to suggest to a user that they add a site to Home screen called App Install Banners, depending on certain heuristics — primarily, a Service Worker so they work offline, responsiveness and demonstrated repeated engagement with a site.

Opera is still experimenting with heuristics (and Chrome are tweaking, too). I’m convinced by Stuart Langridge’s argument that requiring “repeated engagememnt” may slow adoption:

Native apps get to say “install our app” without providing a link, a QR code, whatever: people know how to do that… [with Progressive Web Apps] I still can’t say it, because you have to come back twice over two days. How popular would Clash of Clans be if you couldn’t install it until the second day you played it, I wonder?

[Note that since Stuart wrote this, the criteria for “engagement” by a user in a site changed from twice in two days into twice, at least 5 minutes apart.]

I think there should be a mechanism for discreetly — unspammily — alerting a user that a site is a Progressive Web App on first visit. But I’m not King of Opera for Android; however, I know the man who is (Andreas Bovens).

But how good are Progressive Web Apps, anyway? Is it even possible to write a really good app using web technology without the Reactembengular Framework?


Here’s the FlipKart Lite Progressive Web App (see their video at Chrome Dev Summit).

Nolan Lawson (great name, great guy) has written a progressive webapp for Pokémon fans and blogged about it in detail (it’s a fantastic blog post; I urge you to read it). Nolan writes

I am super excited about this app, because it demonstrates that you can build an offline, 60FPS mobile app using *only* web technologies. Of course it’s offline-first (PouchDB, LocalForage, ServiceWorker, Cloudant), so you can browse all your fav Pokémon without a connection.

I’m super excited, too. Soon, this will be possible on all three cross-platform browsers. It’s also possible to add tell an app to be homescreen-able in iOS. No news from Microsoft, but they’re doing good things with the W3C Manifest in their manifold.js.

If you’re interested in making a Progressive Web App, here are some resources to get you started. Want some web standards retro fun? Go to this Inbox Attack game in Opera for Android, add it to homescreen (the + button in the URL bar) and then tap its homescreen icon. It’s made with manifest, SVG and the vibration API.

Go forth and make great apps that don’t require installs or updates, are of the web, with URLs and which are progressively enhanced. Hurray!

Reading List

A11y Rocks – the album!

For those who don’t know, “a11y” is short for “accessibility” — the practice of ensuring web sites (and apps) are usable by people with disabilities.

Anyway, Heydon Pickering, a chum of mine from Bury St Somerset O’Groats in rural England, has collected some music made by people from the accessibility (and wider web standards) world, and is selling an album of it for £3, all of which will go to two worthy causes: NVDA, a free open-source screen reader to help people with visual disabilities access the web, and Parkinsons UK.

The track list is pretty varied, from novelty to folk to psychedelia. There’s even a song by me on it, called Imprecise and Infrared, which Heydon described: “Your song has been stuck in my head 4 days out of 5 for the last four months, you catchy fuck.”

It would make a lovely Xmas prezzy, and owning it will make you (up to) 74 times more sexually desirable. So why not buy it?

Reading List

Reading List

Ensuring a High Performing Web for the Next Billion People

Here’s a video of a keynote talk I gave on Friday at Velocity Conference, Amsterdam. It was my last conference talk of the season, and the end of 4 weeks on the road.

I’m quite proud of it, for a number of reasons; firstly, because I was nearly sick with nerves but I look quite relaxed. (Look at how many people were there – and this is only half the room! Photo by Scott Jenson)

giant room full of people

The second reason I’m pleased with it is because it explains why I (personally) do what I do. I was born in Yemen, lived in Africa and Asia and lament the Western-centricity of so many organisations, which manifests in their websites. It took a great deal of research, but it was worth it – some of the numbers, demographics and facts startled many audience members, and made a fair few of them realise that it truly is a worldwide web, not a wealthy western web.

Many people came up and expressed shock at the image of the true size of Africa. When people hear that the United Nations predicts the population of Africa will increase from its 1 billion now to 2 billion by 2050 and peak at 5 billion in 2100, they have visions of some Malthusian mass-starvation catastrophe. But, because of the Mercator Projection, few realise how damn big Africa is. For a fascinating and encouraging look at population trends, I thoroughly recommend Dr Hans Rosling’s 1 hour presentation Don’t Panic – The Facts About Population. It’s entertaining, evidence-driven and deeply, deeply humane.

There’s a 5MB PDF of the slides, too, containing links to resources. I also wrote an article Making websites that work well on Opera Mini.

Reading list

Reading List

Reading List

Reading List