11 March 2007, 19:39
This post was initially written almost three months ago, around the idea of browser guidelines. Since then, I still think of this concept.
The Web OS has been long anticipated, over-hyped and awaited by many. It will not happen the way it's imagined.
The PC is not the only place where people use web browsers. Opera runs on many mobile devices (from simple cell phones, to smart phones, game consoles, televisions, kiosks and even on a refridgerator).
Interactive kiosks that give clients an easy way to check their email, or verify accounts from online services, are basically the only interface users get access to. That interface is the web browser.
All these devices don't give us easy access to running Windows, Linux or any other operating systems. Some of the devices work as if the browser is the only application running.
Browsers are growing ever more complex, soon adding virtual machines for ECMAScript 4, implementing features to aid web application developers to create applications that look and behave more and more like native applications.
We will probably end-up having mini-Linux distros oriented towards web browsing. These "Browser Operating Systems" will boot the minimum required for starting a given web browser (be it Opera or Firefox). These would make-up the "humble" beginnings of the "browser OS". Evolution would be represented by web browsers which would include support for hardware accelerated rendering, 3D and 2D canvas.
Sounds futuristic, but this is probably already happening. The Opera's WebUI and the Gecko platform can and will probably be (if not already) used to create a single "interface", a single place to completely access and control, all system options, on devices. Mobile devices are specialized: they cannot run tons of different services and software. They run minimalistic OS which basically only starts a web browser.
Once a certain level of convergence between the Web and the desktop applications has been reached, one can interchange them.
This brings me to the initial idea I had.
A quick Google search for browser guidelines shows the Web browser guidelines page from w3.org. This document is incomplete and is dated 1997 - rather old for "Internet years". Some of the points, however, still stand today:
- Providing users with greater control over the way documents are rendered on the screen (font size and type, foreground and background colors, spatial formatting)
- Providing additional keyboard control for navigation between and within WWW documents.
- Providing additional ways to summarize the document through alternative views of document information and through additional status line information.
- Providing orientation information to users about their location and the content of information in a document.
- Improving the visibility of new interaction features, so that all users can benefit from their availability.
These are already being covered in various degrees by the mentioned major User Agents. It would be unfair of me to forget about Safari and Konqueror - with the latter doing quite a fine job at giving users control over the Web content (I haven't yet got my hands on Safari).
I see that the three major web browsers (Opera, Firefox and IE) have aligned to similar keyboard shortcuts, and a similar GUI (similar layout and even icons). For example, they all use the same RSS feed icon, the same key to open a new tab, etc. Still, these browsers are quite different (many keyboard shortcuts are not the same, and each browser has its own GUI approach for Preferences).
That makes me say there are some unwritten guidelines. Currently, the browsers are aligned like this only because of marketing decisions, however this will no longer be the case in the future.
There are guidelines for Web content accessibility, GNOME User Interfaces, even the Opera Widgets have a style guide. There's the Linux Standard Base which aims to bring application portability across Linux distributions. An older set of standards is the POSIX one, meant for application portability for variants of UNIX.
We will need standards and guidelines for diverse user interfaces, and for many technical aspects of such systems (for APIs and the like).
Where diversity exists, standards and guidelines give a sense of normality, and help keeping a certain level of order.