Why, Oh Why Aren’t Web Standards Standard?

I think that creating content for the web is incredibly tedious. Sometimes it is hard because you don’t have anything good to write about. Sometimes it is hard because you want to write about something, but you are sure nobody else is really interested. But mostly it is hard because you cannot rely on anything having actually working to deliver the content that you wish to send through to the viewers of your website.

Consider for example this weblog. I use Movable Type, a very nice system overall, the authors are to be commended. But in trying to design my own layout and appearance for BrainWagon, I encountered nothing but trouble.

The basic idea of the web was always that it was the information that was important, and the looks were less important. This is often expressed in the pithy phrase:

HTML describes the logical structure of the document, not its appearance.

Clearly there is some truth and even some value in this idea. Traditional word processors haven’t been huge on designing the logical structure of documents, but have instead concentrated on appearance. Systems like TeX and LaTeX concentrate more on the
logical structure, and describe appearance in terms of macros which
display each portion of the logical structure of a document. I actually like TeX and LaTeX.

So, what did HTML and the web get wrong?

There is no way to describe the appearance of a document in HTML that works.

Let’s not kid ourselves. Appearance matters. The usefulness of information is enhanced by attractive legible presentation. If that weren’t true, magazines and books would
all be typeset in a normal fixed width typewriter font. We like
information that is attractively presented. The art of typography
and book design is the natural outgrowth of this idea.

But you can’t do typography on the web (at least not in HTML).

The traditional way to design layouts for display on the web is to use
the <TABLE> tag. Tables allow you to set up regions on the screen, each of which holds some chunk of text and graphics. With a great deal of work, you can just barely get them to work simultaneously on the top 3 browsers. It is made difficult by
the fact that there is no guarantee that fonts will be displayed in the
same way on each system. Typically you end up coding for the lowest common denominator.

Some smart people decided that we needed some way to describe the appearance of data separate from its logical description, and created Cascading Style Sheets. Style sheets allow you
to control the appearance of each logical structure with a fairly wide
variety of modifiers. Style sheets suffer from two major problems however:

  • They don’t allow you to move or change the relative order of elements.
  • More importantly, no two browsers implement a meaningful enough subset of the standards to make portable appearances a reality.

Internet Explorer is particularly problematic because it doesn’t implement the box model properly, which means that you can’t make
margins, borders and padding work properly. Yuck.

I’m still looking for the perfect style for BrainWagon. It doesn’t work correctly in IE even yet, so I’ll have to dig around and tweak and cajole it until it looks right.

Honestly, why can’t we actually acknowledge that appearance matters, and design web standards which are designed to convey the desired appearance to the target audience in a simple and straightforward fashion?