I really like what is happening to Web.

Cool-new-ajaxy sites are often actually more friendly, useful and powerful.
Web development seem to become way less hacky.
And a lot of standards that are gaining adoption are actually extremely useful (think about RSS).

But there is a group of new standards that I fail to understand.
They are called microformats.

In my understanding, there are three pillars of Ideal Web:

  1. Markup provides semantics
  2. Styles provide presentation
  3. Scripts provide behavior

These blocks are logical, understandable, maintanable and loosely coupled.
It is worth noting that all strict DTDs are here to make the markup truly semantic and help achieve such separation.
This is why I write <strong> instead of <b>.
And this is what helps Web 2.0 applications to be really rich without being messy.

And for me, microformats are viral semantics.
They infect markup and overload it with additional meaning, turning it into an ill, bloated mess.
The microformats wiki states:

Reuse the schema (names, objects, properties, values, types, hierarchies, constraints) as much as possible from pre-existing, established, well-supported standards by reference

For me it seems more honest to say overuse, since the most interesting thing about microformats is that there are no actual problems they solve.
Consider this fragment:

<span class="tel"><span class="type">Home</span> (<span class="type">pref</span>erred):
  <span class="value">+1.415.555.1212</span>

I would prefer:


Now it does not seem that somebody is reusing iron to hammer nails.

It is 2007. XML is here and it is supported. X in XHTML stands for extensible.
IE did not support CSS namespaces, but you could write styles like vcard\:tel for years.
And this syntax does not seem like a show stopper to me.

Actually, upon reading on topic, I immediatelly googled for “microformats are stupid”.
The first thing I found was Why I Hate Microformats? by Robert Cooper.
He points to the same things I do, but he misses the fact that we had no need to wait for the IE7.

There is also a more interesting post Must Ignore vs. Microformats by Elliotte Rusty Harold.
The one point I do not agree is that Elliotte argues that XML does not have to be valid.
I do not see why the properly namespaced XML in XHTML would not be valid, but I will have to test it myself.

Web would be better if microformat authors read more about XHTML and did some browser tests before pushing this standard.

  • http://singpolyma.net/ Stephen Paul Weber

    Everyone would prefer an XML-based system, but we don’t HAVE that yet. Inserting random XML tags into an XHTML document is not only invalid, but it messes up EVERY browser out there.

    Microformats achieve the same thing, do not break the way (X)HTML is supposed to work, use what is defined in (X)HTML for semantics, and are backward-compatible to quirksmode

    Perhaps microformats are only a stepping-stone, but they are a good one

  • Andrey Shchekin

    I understood that point, but did you have any problems viewing my blog? The highlighting in the previous post was done by a bunch of random XML tags styled with CSS.

    All three browsers that I have at home (IE7, Firefox and Opera 9.20) handle them just fine.

  • http://singpolyma.net/ Stephen Paul Weber

    Yes, they do, because they’re used to handling bad and invalid HTML from the old days. We’re supposed to be trying to move away from that, not make it worse by inventing new and on-purpose-wrong tags!

  • Andrey Shchekin

    I have read some sources myself, and you are correct. HTML does not want to think of itself as XHTML unless served as application/xhtml. And HTML does not want unknown tags.

    But, formally, if I set doctype to xhtml, I feel my right to push in any tags if they have correct (xmlns declared) namespaces. And browsers behave as if I am right.

    The only problem with this is that IE requires xmlns on html tag, and that means that my content can not be embedded without an iframe (which is not a solution). I am still figuring out the solution for this problem.

  • Pingback: XHTML and microformats revisited » Blog Archive » I Think It’s Interesting()

  • Pingback: Programming is complex: HTML5 data-* » Blog Archive » I Think It’s Interesting()