After I started rewarding machine tagging on Huffduffer with API calls to Amazon and Last.fm, people started using them quite a bit. But when it came to displaying tag clouds, I wasn’t treating machine tags any differently to other tags. Everything was being displayed in one big cloud.
I decided it would be good to separate out machine tags and display them after displaying “regular” tags. That started me thinking about how best to display machine tags.
One of the best machine tag visualisations I’ve seen so far is Paul Mison’s Flickr machine tag browser, somewhat like the list view in OS X’s Finder. Initially, I tried doing something similar for Huffduffer: a table with three columns; namespace, predicate, and values.
That morphed into a two column layout (predicate and values) with the namespace spanning both columns. The values themselves are still displayed as a cloud to indicate usage.
This is marked up as a table
. The namespace is in a th
inside the thead
. In the tbody
, each tr
contains a th
for the predicate and td
for the values.
<table>
<thead>
<tr>
<th colspan="2"><a href="/tags/book">book</a></th>
</tr>
</thead>
<tbody>
<tr>
<th><a href="/tags/book:author">author</a></th>
<td><a href="/tags/book:author=arthur+c.+clarke">arthur c. clarke</a></td>
</tr>
</tbody>
</table>
Table markup allows for some nice :hover
styles (in browsers that allow :hover
styles on more than links). Whenever you hover over a table cell, you are also hovering over a table row and a table. By setting :hover
states on all three elements, wayfinding becomes a bit clearer.
table:hover thead th a
table tbody tr:hover th a
table tbody tr td a:hover
See for yourself. I think it’s a pretty sturdy markup and style pattern that I’ll probably use again.