Thursday, October 25, 2007

Improving browsers

The Mighty Webpage: Still a Document
The humble webpage has been through many reformations, survived the attack of technologies that sought to remake it in their own image; flash, dynamic HTML, page transitions, animated gifs, the list is unlikely to end. All these have improved the basic webpage, but only slightly. The underlying formula has remained. It has been pointed out that nobody uses the navigation systems employed by websites, however pretty or inviting. We hunt for the piece of information we desire, and if it's not in the main body of text we look for an obvious link in the right direction. If we find neither, we hit Back and try the next path.

Many expected websites to become more complex, for the browser to fade away. That has always been Microsoft's expectation - that websites would evolve into applications, and that the browser would evolve into a programming platform. In some ways it has. Javascript/AJAX, for example is one of the supposed hallmarks of a modern website of the new (2.0) era. Yet Firefox came to the fore not just for its speed (an attempt to get out of the way) but for its features. Tabs, extensions, a search box, ad killers, alternate stylesheets. Dynamic and clever it may be, but the web page is still a document. Ish.

So where are our tools to use and manipulate it as a document? When you work with a photocopy, you highlight bits, tear bits out, underline things. You make lasting changes to it. An application is not meant to be messed about with. For that you buy the new version. Here are a few thoughts on enabling webpages to be treated more like documents:

1. Staples
Despite treating and viewing websites as a kind of interactive document, we don't have the tools to treat it like one. The favoured method of sharing a website with someone else is to send them a link. But in this you face the CMS systems that need cookies or session keys, which make it necessary to explain how to get to the page (the anithesis of the hyperlink), and the fact that no page lives forever on the web. The closest you get is the Wayback machine.

A solution? Staples. A web page now consists of a lot of files. Can't it all be packaged together, so that I can send it to someone? I had a set of search results from a travel company giving flight details, and the easiest thing to do was print to pdf and attach it. So at a first guess, let people Send As PDF, or Save/Send Zipped (a zipped folder with the site files in). A standardised way of saving within a zipped HTML document the origin of the page such that on opening it one could go to the live version, if it exists, would calm the critics saying we're sliding backwards technologically.

Highlighters and red ink
Often we want to annotate a page, or highlight bits of it. Currently, you need a specific extension for your browser to do it, and there is no interoperability enabling you to do the most basic thing in the paper world - highlight the interesting bit, scribble "How about this, Fred?" and give it to a colleague. This goes hand in hand with the above Staples - once annotated, you need a packaged way to keep it or send it.

  • How about a changes-based solution? Much like word-processor documents can have a history of changes, do the same for HTML.

  • Create a simple class of DIV tag for comments that marks a position on the page and contains a description - "This image is funny!", "What's this paragraph doing on our website?", etc.

  • Provide tools for highlighting, grouping etc. Google's terms highlighting in search results is the right kind of effect.

It's gone off the screen again
Possibly one of the most irritating things when viewing a website is when the page is too wide. For whatever reason, the choice of font, column width and window size conspire to make you use the dreaded horizontal scrollbar. Although web designers are supposed to make pages that avoid these things, it does happen, and annoyingly often. So let people move things or resize the boxes.

This is really a call for easy ways to transparently edit the page CSS (or table properties), mostly centring on readability and accessibility. Whether it's an editing mode, or better a way to select and change an element (think marquee selection tools in graphics apps, and resizing in the same). Obviously, that works best in the changes-based, wrappable environment mentioned above.

Reapply Changes
The fundamental difference between a website and a printed document is what they are made out of. A webpage is just information, and so a set of changes is still just information. So if I have done something to one page, perhaps I can redo it to a different page, or a new version of the page.

A redo, or reapply changes, function would be the icing on the cake. This is possibly the most difficult to implement, but there are smart people out there. To be able to apply a saved set of changes to a site would enable people to change (for example) The Register's index page, and keep it 'changed' when they revisit it, even though the page itself has been updated.

Extending further, it enables the user to entirely redesign a site to make it more readable. By viewing the unformatted page (as is already possible in Firefox et al), and editing it in various ways, the page is remade as the user wants it.

Consider a very common everyday experience: Junior staffer finds something on a website. She prints it off, highlights the relevant paragraphs, and leaves it on her manager's desk. Said manager photocopies it, writes a note on it and gives it to another colleague. That entire process in electronic form would require one of those hellish Copy-Paste-into-Word moments where nothing looks right, emailing, opening, annotating or more likely maulishly editing, resaving and resending. Web pages are just not portable, editable or an improvement on paper. In the new version, you'd look at the page, email it off to your manager, he'd look at it (or click to view the live site version), edit it in-place, send it on. The paper office hasn't happened because paper is easier. There are financial (and increasingly ecological) incentives to move to a paperless office, but it hasn't happened because it's not easier yet.

So, browser-makers, let HTML be a document format on top of its other expanding functionality. Whether you like the suggestions or not, let's have html documents as documents, and save the planet.