Microformats: A Solution to a Problem That Doesn’t Exist

19 January 2006 In: Open Standards

Recently, there has been a lot of buzz about microformats. Microformats are “Designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards”. This is rather odd. They’re talking about a way of semantically representing content to humans. Humans do this naturally through context. To a reader, “1313 Mockingbird Lane” is a street address. It requires no special tagging. Machines on the other hand, need hints in order to know what that bit of text represents.

There are two “major” microformats hCard, and hCalendar. Both of which are supposed to mimic the standard machine readable vCard and iCalendar format. The microformats use XHTML span tags and class attributes to give meaning to content blocks. But why? As a human being, I can tell that “Sally Jones” is a name, regardless of formatting, and that she lives on “123 Pine Hill”. If I wanted to copy that information, I could simply download the provided vCard, and pop it into my address book. However, what if I am blind, or need to access a webpage from a non-standard browser? Microformats, as they are today won’t help, as human beings still know what an address, date, and name are, and a machine can just as easily grab the supplied vCard or iCalendar file. If those files aren’t available, the site visitor must still manually copy and past the information into their application of choice. There is no benefit to the microformat.

A proper solution is to have additional semantic tags in the next revision of XHTML. I’d like to see tags set up for dialogue, and support for Dublin Core. Those alone would go a very long way in machine interoperability.

At the moment, the existing microformats seem like a solution to a non-problem. Humans have no trouble extracting meaning from context, whereas machines must be told. If machines must be told the type of content, microformats are actually a way to help machines, not humans. Wouldn’t a better way of solving the lack of semantic tags be to add them to the XHTML specification, rather than a poor hack to an existing framework? Microformats, as they are today, are a non-starter. Sorry, Tantek.