Earlier I posted about onUnload handlers spinning. Apparently the hacky workaround patch has landed, though not without some drama. The net effect is that this will break the web for some corner of web apps but to the benefit of users, though surely web developers will find some more invasive way to accomplish their goal.
This tension, between site owners controlling what users do with their sites vs users controlling their browsing experience, is likely never to be resolved. Here's my stance: I believe the user should have ultimate control of their experience, but that a site owner should simultaneously be able to dictate the conditions under which their site is used; that doesn't mean allowing sites to force the user into a bad experience but it could mean allowing sites to reject users unwilling to meet their terms.
That may seem unpleasant but I think the alternatives are worse: on one side, today's internet where users and site owners are increasingly at war with one another -- pop-unders, ad blockers, invasive browser-hanging onunload handlers -- and technical aristocrats enjoy a pleasant experience while non-techinical users pay the tax; on the other, tomorrow's internet where sites use walled-garden technologies in an attempt at control and unintentionally leave you where you can't even permalink or copy and paste.
How might my proposal play out? One example is the ever-unpopular
ping> attribute, which tells the browser to ping a URL on the side
when a user follows a link, allowing a site to "track" what links a
user clicks on. I put "track" in scare quotes because it's already
possible to do such a thing: examine for example a Google or Yahoo
search result page, which uses an onclick handler to swap out
innocuous-looking links for links that go through a redirector. (Try
this: right-click on a link then cancel the pop-up. At least on Linux
Chrome I now see a different URL when I mouse over the link, though
this may be a bug.)
This redirect is bad for everyone: bad for users, who are unable to
copy the "real" link from the page since it involves the redirect;
and bad for search engines, who are obsessive about speed and can
measurably lose users due to it feeling "slow" (extra latency from the
redirect). An attribute like
<a ping> would fix this for both
sides, but a user-oriented browser would likely provide an option to
turn it off, forcing us back into the redirect world.
In my hypothetical fantasy-land, a page could ask the browser whether
it's willing to ping; if so, both sides get the better experience, if
not, to the redirects for you. It's kind of the prisoner's dilemma
except with negotiation up front. (I believe this prisoner's dilemma
has already played out in user agents: because IE has an
ping>-like functionality already, it gets faster search results. But
my knowledge of this is four years stale.) But realistically, I am
probably just naive; just as in the prisoner's dilemma, the pressure
to defect is strong.
On the subject of user control and ads: the AdSweep extension, a popular Chrome extension that behaved like the hugely popular AdBlock extension for Firefox, has been discontinued. The author cited, among other things, a lack of feedback from users.
I hate ads as much as the next person, but I must admit I find this hilarious: when you've written software whose userbase is explicitly the users who are mooching ("Other people will see the ads and support the site, I don't want to"), it is quite ironic to expect those same users to help you out.