Layout is content, not a property of content.

It's late at night and this is when I do my best thinking.

Layouts are content. I'm not advocating the reintroduction of using
the table element for layout.

But I think there is a truth out there that we've been missing.

Documents tend to follow the same basic layout structure even when
other parts of the documents such as font, color, spacing, etc.
change. This, I feel, is because spatial orientation is learned and it
crucial for usability.

Currently in the computing world we have a series of layouts that are
more of less standards. Each operating system has them and I feel
we've taken them for granted.

Look at the window this content is in. It has a title bar, menus, a
toolbar, possibly a status bar and so on. These layouts are part of
the system specified in content somewhere and they are reused over and
over again even when all the other aspects change.

Content on the web works the same way. Pages often rely on only a
handful of layouts. Styles vary greatly, but layouts are fairly
restricted. This is a good thing since finding information is painful
when these conventions are ignored.

It seems that when we moved to the web we had to relearn everything we
learned on the desktop.

So what does this mean. It means that it should be possible for the
UA/user/OS to specify the layout used and not the page. The page
should be more concerned with how it looks and not how it's layed out.

So let's take out CSS layout properties (display, float, clear) and
create another language that allows for the easy creation of layouts.
Then let's get the HTML folks to promote the 5 major categories of
space into actual elements.

The usability improvements would be immense. The user wouldn't have to
guess what the designer was thinking when he or she designed it and
users will gain the benefits they've had on the desktop for years.

Is this a radical change? Yes.
Is the benefit worth the cost? Yes.

As an aside to the technical aspects of it.

It allows for content reordering without circular references and
without the need for reflow (something no other solution to date I
have seen has).

It allows for spatial orientation to match the environment the user
uses and not the environment in the designer's head.

It allows for reuse of layout across sites (providing consistency).

It simplifies greatly the layout algorithm and reduces interaction
between layout and presentation that have traditionally created
headaches.

It eliminates the need for calc() and hand calculations.

It avoids the nastinous of 
td:column(2) { display: block }
by removing display entirely while allowing for the same behavior that
display was trying to accomplish in the first place.

It's simple to implement, which means it's probably also simple to maintain.

All in all it has a lot of stuff going for it, but not really a lot
going against it.

Orion Adrian

Received on Thursday, 30 June 2005 05:04:04 UTC