There are many discussions around the topic of accessibility, but taking the work accessibility in its pure sense of having access to the system, I am curious as to whether designers simply make the assumption that network access is standard and therefore there is no need to create an offline mode.

The primary scenario where I have seen this being implemented is in games where you need to connect online to access community or multi-player features, so they differentiate by having a single player mode, but many still connect to the web to save data or access information.

Is this a technical consideration around being able to save and process data locally versus on the server side, or is it just a given in most use cases that network access or interruption doesn't happen? Is this actually a reasonable assumption to make or should we always try to provide an offline mode by default?

Update: Considering that the Polymer Project includes the Platinum Elements for dealing with all the caching and request handling logic, it seems like at some stage offline modes may become more mainstream.

  • 1
    One consideration for your game specific example is anti-cheat engines, clients can be easily hacked so if youre arent connected online to the server then games can be manipulated. (go "offfline", wallhack to new area, go online to save state) – DasBeasto Jun 28 '16 at 16:33

Most applications use offline mode, but there are a lot of them that don't notify the user from the beginning about the “No Internet Connection” issue.

Pinterest uses this strategy. There is zero content on the screen in this case and the app doesn’t explain why the content isn't available. There isn’t any indicator that the user is offline.

I think this can be good if the internet problem will be solved fast. Then, setting clear expectations with good messages is essential.

In conclusion, I really think an 'offline' mode for a web application has multiple advantages for the performance and a good design is needed to help the frontend development.


To Dasbeasto's point, an offline mode has different considerations for games than for a typical webapp. In games, requiring things to be validated through a server helps prevent cheating functions. I think there are a couple different tactics that I've seen for handling this:

  • Full Offline Mode: Seen in more robust applications like Google Apps. Previously required browser extensions to work correctly, but that may be going away. Standard behavior for most native apps on mobile and desktop.
  • Partial Offline Mode: Trello allows you to add new cards when you're offline, but it doesn't allow you to add rich information to those cards until they've been uploaded to the server. The hybrid model works pretty well because it lets you start, but doesn't let you put a ton of work into something if it's going to fail.
  • No Offline Mode: Most apps default to this, but I think it somewhat depends on what it is the user is working on to determine if it's a reasonable action. For instance, something like Google Docs you're working on your content in a framework. Something like YNAB, you're working on their framework and inputting values. It makes more sense for Google Docs to have an offline mode than YNAB in my opinion.

No. Not a technical consideration other than as a result of developer laziness and/or demanding/desiring to have control/knowledge of user activity.

It's not a "standard practice", just the result of the above criteria coming into play. More often than not because of the laziness factor. It takes extra work, so it's not done.

If you seriously and deeply consider the user experience, websites, web apps and web games would be stored locally, usable to their fullest possible extent offline, and only ever update themselves as appropriate (with or without notifications to the user if and when needed), never otherwise utilising the insecurity of networks.

If the world of HTML5 advocates is going to clamour on about its advantages over native for another 5 or so years, they should at least consider providing some of the benefits native apps have....

  • 2
    I disagree with the word "lazy". There are a lot of considerations that go into developing a software app/system- I would frame it using words like "scope" or "system architecture". Developers aren't lazy- what gets built and doesn't is always a function of the intersection of business and technical concerns. Also, this answer seems pretty opinion-based. – J. Dimeo Jun 29 '16 at 13:46

Right now, it's standard practice for web applications to be online-only. If you're going this route, you'll probably be fine.

In the coming years I doubt that will remain true. Take a look at Service Workers, especially Google's implementation with Polymer: https://elements.polymer-project.org/elements/platinum-sw.

  • +1 For mentioning Polymer. I have included it in an update to the question. – Michael Lai Oct 17 '16 at 22:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.