Posts for April 22nd, 2010

Rel Isn’t That Nice

Thursday, April 22nd, 2010

Just a quick post to talk about how much I’m loving the rel tag these days.   Defining custom values for this attribute may not be strictly validated, but there seems to be some debate about this, and with HTML 5, we’re going to be moving that way with the all-encompassing data- tag.

But for now, the rel tag is easy, supported, and makes getting a little bit of meta information to your script quite easy.

Two uses I’ve written recently are:

(1) Creating abstracted div collapse scripts.  The script just looks at the rel tag for the link and finds the matching rel tag among a class of divs on the page.  Anything matching is shown, anything not matching is hidden.  I never have to go back and touch the script, and I only have to add a rel tag to my divs.

(2) Letting my css-based navigation know which page we’re currently on.  With includes, the idea that your navigation should reflect your current page location fell out of favor a bit.  Kind of suspicious, if you ask me.  It often seems designers and front-end developers adapt their pet styles to suit the latest technology.  Regardless, it’s dang easy with the rel tag to revert to the “old” style of location-aware navigation.  I just drop a rel tag in my nav links and a matching rel tag in my content div within the content include file.  They search for each other.  They find one another.  It’s like an interface component romance paperback.

Part of the reason that HTML 5 is going to include some developer-defined tags is that people have been using rel and a few other tags to include meta data (and sometimes some not-so-meta data) in their front-end code.  I completely understand the cold chill that comes over some folks when they start contemplating gobs of data gooping up the front end.  I also think it’s possible to fret too much.  As the linked article above points out well, it’s possible to include some meta data inline and still be semantically useful, degrade nicely, and not offend the browser.

If people hadn’t been expanding on the uses of the rel attribute so effectively, we may not have had the push for user-defined attributes in HTML 5.  This is a good thing.  It’s important to remember this truism: no amount of standards will stop people from writing ugly code.  But, paying attention to what developers are doing in practice and honoring those practices in new standards definitions can benefit everyone.