Unobtrusive JavaScript and Ajax
Over the last couple of weeks I have been experimenting with unobtrusive JavaScript, building standard html pages and then dynamically enhancing the interaction. I have built a simple collapsible list example using the ‘page-hijacking’ technique for the links section of this site.
This work is not fuelled by a wish to sharpen my JavaScript skills, but to see how far I can push the conventions of web interfaces, before they become too disconcerting to the user.
Rich JavaScript interfaces are not new but the promise of speed and state management provided by Ajax has made this design option much more attractive. But like many others, I also harbour a growing unease about web standards, and usability being thrown out of the window for unconventional Ajax interfaces.
Even if you take a web standards approach there are still some usability issues surfacing. One of the hot topics around Ajax is “breaking the back button” this small problem hides a much more fundamental issue.
Current web design patterns are based around a model of distinct pages. Within the mental map we all create as we traverse the web each page is a navigational unit. This conceptual model or metaphor of pages is one of the foundation blocks of the web.
Some new Ajax based interfaces that span what would usually be a multi-page application blur this convention and disrupt the user navigation framework. JavaScript and Ajax can be used lightly to enhance small independent elements of a larger page design i.e. Google Suggest. The question is, at what point do more ambitious enhancements start to hinder rather than help usability.
Although some usability experts would have you think otherwise the conventions of any media or language are always in a state of change. Design is all a matter of context and relativity. As my design lecturer used to say, “It’s about knowing when to follow the rules and when to break them”. I would add a caveat to these words of wisdom, “if you break a rule, you better have a good reason”.
The answer to the question is if there is true worth in Ajax enhanced interfaces then today’s conventions will slowly change. Experiment, test and break the rules where you think it adds real value. I just started my experiments.