Web Application Development and Standards

(Updated 9 Dec 2004 13:18:00 +0800)

On his site, ThatWebThing, John Wilger makes an interesting observation about the role of standards and semantic markup in "closed shop" web-applications; applications for internal use, or use by a limited audience.

I agree that in many cases, semantic markup, standards based design and usability and accessibility guidelines lose many of their advantages within the context of an internal web-application. For example, if the application is just for use within a certain company, chances are that accessibility for the vision impaired isn't going to be a huge issue (if at all); semantic markup isn't so important for SEO if the spiders are never going to get to it; smaller page size won't matter over an Intranet.

However, I do believe that standards based design and semantic markup play an enormous role in web-application development, if not simply because they make the developers job easier in the long run.

Every time you separate presentation from content using CSS, or use sensible DIV groupings for your data, you are decoupling the data and presentation, just as is considered essential in traditional desktop GUI designs. Just as tying your data, code or database scheme directly to your controls in traditional application design leads to maintenance issues, so too does saying that your page list will always appear directly under the heading, or that usernames are always bold.

In many cases, desktop application development works out easier than web-applications - most of the GUI is already built, there is only one platform to develop for, and visual appeal often plays much less of an importance. When your application runs on the Web you're effectively building an interface from something similar to the raw graphics calls of your language of choice, there are at least 4 major browsers you have to account for, and people expect websites to look pretty.

Standards compliance makes this easier - you're now effectively developing for 1 standard (and a few nasty hacks to get around their well documented shortcomings), and you (or a design-eye) have the flexibility to easily change the site style when you need, whether it be due to a takeover, usability enhancements or whatever. It will take you less time to edit the style-sheet, rather than change every place in code where you used <font> tag.

Semantic markup ties in with this to make things easier - what the application actually does stops getting hidden behind presentation to make it easier to adapt it. How many web-applications out there have the ability to output a printed form with exactly the same purchase order information as the website? Why not? Print Stylesheets make this trivial. Why have one form for the web and one form for paper which both need to be updated?

Some of the most powerful tools are simple command line tools which are simple, powerful, and easily scriptable. Scripting a GUI is inherently difficult - what to click? what to type? what purely visual elements have changed? Web applications have the benefit of being purely text based (and as such, trivial to script and parse) yet being graphically rich. Just as with normal CLI applications, if the output is garbled, unformatted and confusing, scripting becomes an issue. Tag Soup is garbled, unformatted and confusing...

Semantic markup and standards make the developers life easier.

Unfortunately, I haven't seen much material on the Internet devoted just to "best practices" with regards to standards, implementation and usability for the web-application developer community. Sure, there is stacks of information for "normal" web design, and stacks of information about generic application design, but very little that brings it all together.

As such, I wish John all the success for his venture with ThatWebThing.