Web Application Madness

Web applications are out of control. It has become routine for software designers to opt for their applications to run in web browsers.

Apparently it has been forgotten that regular programs, with their own windows, are superior user interfaces.

In fact, applications which exist in a web browsers almost always have dreadful user interfaces. Furthermore, since HTML provides only a very basic user interface component set, most of the user interface in a web application is created from scratch using Javascript. These home-grown components never come close to being consistent with the platform on which they’re running.

It is not clear how things got this bad. My own guess is that web applications are believed to be capable of reaching a wider audience. However, a Windows-specific application will reach a wider audience than a browser-specific application: Windows runs on approximately 97% of all home computers, whereas Internet Explorer is below 90%. Thus, a regular Windows program (or Java program) will be usable by more people.

Here are the most significant indicators that your application does not belong in a browser:

  1. You wish to disable the Back button.
  2. You wish to disable the History list.
  3. You want a menu bar.
  4. You want to change or control the size of the browser window.
  5. You want to have modal windows on top of the main window.
  6. You wish users could select the rows of a table of items, but the only way to accomplish it is with a checkbox on every row.
  7. Users cannot tell which parts of your page will respond to mouse input.
  8. You have one or more pages that cannot work without the use of a mouse.
  9. You find it necessary to annotate a form submit button with something like this: Please click this button only once to complete your purchase.
  10. You wish to disable the context menu.
  11. Accessibility (meaning, for the most part, keyboard navigation) matters to you.

Use the Best Medium

HTML is a medium for documents. User interface component libraries (buttons, menu bars, scroll bars) are for applications.

If an application requires more than displaying documents and showing simple forms, HTML is the wrong medium.