On The Usability Of An Offline Web

Last week I spent some time working on a simple offline web app called All My Etherpads. Creating it has made me think about a lot of things, one of which has to do with how the word “offline” constantly seems at odds with the word “web”.

When you’re using a web browser, it’s simply assumed that you’re online. Many argue that a resource must live in the cloud for it to be truly “of the Web”. Even though it’s possible for a browser to store resources on the local device, such caching is largely considered an implementation detail and has historically been done solely for the purpose of speeding up page loads and reducing bandwidth usage. One gets the distinct impression when using a browser or reading through web developer documentation that the very notion of a network being inaccessible is some kind of bizarre anomaly akin to having no water or oxygen.

Aside from raising some concerns about user freedom and tethered software, this means browser user interfaces are terribly unhelpful when it comes to serving users who are in the unfortunate position of having a temporary lapse in internet access. Even though some browsers like Firefox have an “offline mode”, there’s no easy way to tell them “hey, this page is really important to me, and I’d like to see a recent version of it even when the internet isn’t available”, which makes using the mode largely a crap shoot. Other browsers, like mobile Safari, raise modal dialogs if you dare start them while offline.

This alone makes me concerned about users’ perceptions of even using a browser while they’re offline; the experience has historically been so inhospitable that the very term “offline web app” sounds like an oxymoron.

Perhaps it’s partly because of this, then, that so few offline web apps currently exist, despite the fact that infrastructure for creating them has been around for a number of years. But I think it also has something to do with the developer ergonomics of actually writing an offline app, too, which I’ll address in my next post.

4 Responses to “On The Usability Of An Offline Web”

  1. Simon Says:

    Firefox’s online/offline mode is useless – it block access to local services when it doesn’t have internet access. I had to go into about:config to force it to stay permanently in online mode…

  2. Henri Sivonen Says:

    I argue that a key characteristic of a Web app is that you launch the UI by navigating to a URL that points to somewhere out there. If you don’t have network connectivity at the moment you launch the UI, it’s OK (even desirable!) for the requests to be served from implicit or explicit cache. An explicit cache will work better. Fortunately, we already have it: the HTML5 app cache.

    The main problem is indeed a UI problem of letting the user know what’s available without connectivity.

    To increase user confidence in apps really being available offline, it would be good to have a mechanism to “install” apps by creating app bookmarks. An app bookmark would put the icon of the app into some kind of launcher, grant the app the permissions to use various storage options (localStorage, Indexed DB, app cache) with size limits waived and grant permissions to use potential annoyances like Web Notifications. (I think more sensitive stuff like geolocation should still require explicit authorization at the time of user interaction relevant to the feature.) We could then show some kind of offline availability indicator for app bookmarks that bookmark apps that support the HTML5 app cache and advertise to users that those apps are available offline.

  3. Robert Kaiser Says:

    I fully agree that browsers are not really fit for offline work, and I have often enough seen problems with that – one common operation is for me to load some web pages from an online news service, set my laptop into hibernation and turn it on again on the train, where I have no network but time to read the info.
    Hibernation is the only way to do this apart of locally saving the pages right now – and all hell breaks lose if I inadvertently close the browser or hibernation/resume fails to work correctly and I have to reboot (rare but can happen). And I’m only talking about static pages right now…

    We really need better user interaction and browser support on this if we want “web apps” to succeed as replacements of traditional local applications – people want to be able to work when the network disconnects for some time, due whatever reason. We need to make that work and feel reasonable.

  4. David Regev Says:

    I recall Internet Explorer 5.5 had a way to “synchronize” pages so they’re available offline. I’ve been wishing for something simple like this in the bookmark dialogue: [ ] Save offline. It would go a long way towards making offline more usable.