Exploration

Archive: July 2008

Ladies and gentlemen, it’s back, bigger and better than ever. Please read Jeffrey’s wonderful introduction, and then start answering! It shouldn’t take much more than 10 minutes to complete (it took me 6 minutes, 44 seconds, but who’s counting?).

Last year, we had an astonishing 32,831 responses; I can only imagine where we’ll end up this year. And just as with last year, we will report our findings and release an anonymized raw data set.

The more people who take the survey, the better the results will be, so please—post the link on any relevant sites, mailing lists, discussion boards, or other communities. Print up flyers and post them around your town. Anything we can do to get the word out!

In support of the still-to-be-finished proposal for allowing most HTML 5 elements to become hyperlinks, I’ve written a quick proof-of-concept demo for your perusal. Basically, it’s a page with some JavaScript that captures the whole document tree, looks for any elements with an href attribute, and then sprinkles some events on those elements in order to make them act like hyperlinks. There’s also some CSS that applies old-school link presentation to said elements (blue and underlined, baby!). I’m using href because it was the easiest thing to do.

I’m sure I could have written a more elegant script (and yes, I know, your favorite JS framework would done it in half the lines and seventeen times the page weight) and I suspect there are some things I’m missing. I’ll be interested to hear what those may be. Meanwhile, if you want to try out your own arbitrary-element linking, grab a copy of the demo and edit the markup to your heart’s content. Or you could suck out the JS and apply it to your own test pages. Your call.

The demo works fine in Firefox 2, Camino 1.5, Safari 2, and Opera 9.2. I didn’t test it in anything else. It may well fail spectacularly in every other browser known to man and dog. That’s not really an issue, though. The goal here is to have a working demonstration, not a universal solution. (The latter may come later.) It’s a handy way to show people how browsers should behave in an arbitrary-link world.

The one thing that didn’t go right is the status-bar URL handling when hovering over a linked element (other than an a element) that descends from another linked element. For some reason the descendant’s URL never shows up in the status bar. I’m sure there’s an easy fix. I regard this as a minor issue. [Update 7/23: this has been fixed thanks to Allwyn Fernandez.]

The biggest thing that’s missing is simulating “visited” styles on non-a elements; in this case, turning them purple. That would require mining the history and dynamically adding classes and, well, all kinds of stuff. I’m sure it’s possible. I’m also sure that I don’t have the time right now to figure out how to do it well. Besides, ship early, ship often, right?

As I said before, I’m very interested to know what people think of the demonstrated behavior and how it might be improved. And hey, if anyone wants to contribute improvements to the JS, I’ll do my best to keep up.

At one point during An Event Apart Boston—for which I finally uploaded my few pictures, to add to the much larger pool—I observed that Boston, like parts of New York City and most European cities, is a place where maintaining a relation to the cardinal compass points is almost impossible. Thanks to its centuries-long Organic Growth Syndrome, finding one’s way can be next to impossible, even when you have Google Maps giving you directions on your iPhone. (Not my iPhone; I don’t have one yet, which makes my posting of the perfect ringtone deliciously ironic. But certainly on whoever around you has an iPhone, which is put-near ever’body, these days.)

Of course, the soon-to-be-released 3G iPhone will have true GPS capabilities, I said, and that’s when it hit me: someone should take the iPhone SDK and an insanely high-resolution copy of the Safari logo and put them together to create a 3G iPhone compass. Hold it level and watch the needle find true north! Genius.