Archive for March, 2011

longdesc in HTML5

Yesterday, In tweeted “I know it’s important, & I know this makes me evil, but if I read any more about bloody longdesc in #html5 I’m gonna set fire to my scrotum”, thereby doing a dis-service to an important debate which has exasperated me due to the traditional enmities and personality clashes.

To make amends for my flippancy, today I’m writing about it.

The latest skirmish between the Accessibility types and Young Turk HTML5 types, which has left trails of dead and scorched earth across mailing lists, involves the longdesc attribute of the <img> element.

Never heard of it? Few have.

It’s an attribute that points to a URL where a long description of the image can be found. It’s not the description itself.

The trouble is, hardly anyone uses it correctly and there is little browser support. WebAIM has an example of longdesc, and there is nothing that indicates to a user, either visually or otherwise, that a longdesc is available. Opening the context menu in Opera offers an option “long description” which, if activated, opens the URL specified, but this doesn’t exist in any other browser except iCab (and is only a year or so old in Opera).

Extensions exist that give a visual cue that longdesc exists in Opera, and an extension by Patrick Lauke brings Firefox up to Opera’s native support.

But basically, discoverability is a problem, support is low, it’s used very little “in the wild”, and when it is used it’s badly used:

No more than one in a hundred get it right, of one in a thousand that even try

so the WHATWG wants to remove longdesc from HTML5.

Cue uproar from those involved in Web accessibility. They point to the fact that assistive technologies and authoring tools support longdesc and, they argue, if only the browsers would fix discoverability, a thousand longdesc flowers would bloom.

A recent survey by the splendid WebAIM people suggests that screenreader users love longdesc (although less than two years ago the same survey found it “very unpopular”. Why the sudden surge in popularity?)

Generally, I’m not in favour of hidden metadata that is meant only for one sector of the audience. Hidden metadata, because it’s hidden, easily falls out of step with the rest of the information. On the other hand, I’m not generally in favour of chopping things out of the language because it makes it harder for people to migrate from HTML4 to HTML5 and because I’ve seen the light after the <cite> debacle. And, although it’s hardly used anywhere, people claim to love it; I’m against removing something that makes their lives easier, particularly when there are enough impediments out there to their full and equal access to the Web.

So on balance, I prefer longdesc to stay. But I’d suggest that better practice is to use the HTML5 details element or aria-describedby and point to a resource that anybody can discover.

If you want to link to an off-page resource, Steve Faulkner suggests:

<img alt="2009 results table" aria-describedby="desc">
<a href="description.html" id="desc">description of table</a>

Removed as Steve has changed his mind.

Now, where’s my lighter?

Startup Britain!

We live in economically uncertain times. The Keynsian nonsense of the State ensuring crade-to-the-grave social care for its citizens, providing and maintaining an infrastructure so the country can function, and other socialist claptrap is discredited.

The way to economic prosperity is for entrepreneurs – like you! – to start up businesses, make a fortune and trickle down all over everyone else.

Fortunately, for the self-starter – like you! -who can’t be arsed to get up and do some research, there is a new website startupbritain.org to help you on your path. Like the cartoon God in Monty Python and the Holy Grail, David Cameron’s disembodied head gazes down at you from his celestial home, squinting inspiration at you. And as if that were not energising enough, there’s a picture of Richard Branson doing his best double-thumbs-up orgasm face.

This fabulous resource is

Designed to celebrate, inspire and accelerate enterprise in the UK, it has the full backing of the Prime Minister, the Chancellor and HM Government. This is a response from the private sector to the Government’s call for an ‘enterprise-led’ recovery. We believe that many of the important functions and services necessary to foster and champion new enterprise can be open-sourced, instead of provided by government directly.

Hopefully you are by now inspired and accelerated?

There are, sadly, defeatists who cling to the old politics of envy and deface such rallying cries:

trickle-down economics? Head in the bloody clouds

Kettle them all. They’ll be moaning about the Royal Wedding next.

Conference jargon-busting

After three conferences back-to-back, here’s my start of a conference jargon-busting dictionary. Please add your own.

“Enterprise solution” = ludicrously over-priced bloatware
“turnkey” = turkey
“ecosystem” (as in “Apple ecosystem”) = vendor lock-in
“keynote speech” – content-free flatulence from a bigwig
“inspirational speech” = content-free flatulence with nice pictures taken from Flickr creative commons, and attributed in tiny, tiny type
“party” = purgatory
“panel” (as in “SxSW panel”) = the only way to pleasure your best friends under a desk in public without breaking the law
“Awesome!” = yawn
“paradigm” = punch me

South By Southwest 2011

My second SxSW is over, and all I have are some photos, fewer memories than I have photos, and an aircon throat.

I have mixed feeling about South By Southwest. There’s the torrent of emails they send you for months leading up to the event, requiring you to register to their different systems. Once there, I get little time to meet new people and little time to spend with old friends because the conference is too big.

I get pretty nervy for my talk, which this year went well (slides). I usually include a lot of humour but our American friends have a very different sense of humour than Brits, so I play safe and also add liberal quantities of what I call useful information, as SxSW has more than its fair share of circle-jerking panels heavy in “inspiration” but devoid of content. The trick seems to have paid off; I had a full house in Ballroom C and a hundred people lined up outside in case other people left.

The best thing about SxSW is meeting our users. Our PR folks kitted us out with a huge giant rotating Opera O, so it was easy to find our booth and, once there, developers and consumers asked us everything from how to edit a speed dial on a BlackBerry to how to do remote debugging with Opera Dragonfly, We had comfy chairs at the booth, too, leading to a steady stream of visitors from Our New Best Friends, such as chums from Adobe, Microsoft and Google.

I met a penguin

Me and Penguin

two Slappas (for those who don’t know, a Slapper is a woman of easy virtue, so making two booth babes wander around with t-shirts marked “Slappa” is unfortunate)

Me and two booth babes in t-shirts reading 'Slappa'

(as did Paul Irish)

and picked up the best swag: a flicker book made from a 6 second video you make with some props on the Rackspace stand.

It was great to see old friends, albeit briefly, and make new ones. So see you next year, hopefully.

Song: Aquamarine

Down at my Dad’s house, I found some old cassettes of demos I made in the early 90s. So bad luck, blog watchers; expect to find the tech content of this blog spoiled with hissy wow-and-fluttery vanity posts.

Anyway, here’s one of the favourite songs I wrote during that period. I was obsessed with TS Eliot’s poem Marina, a monologue inspired by Shakespeare’s Pericles. So I ripped that off, nicked a line or two from The Waste Land, pinched a bit of Shakespeare’s The Tempest and, while the literary store detective was looking the other way, ran off with a bit of Dylan Thomas too.

It’s a 4-track demo, hastily recorded in order to test out the harmonies swirling in my head, and the cassette suffers from being in a cupboard for 20 years, but maybe you’ll like it.

Aquamarine –
I’m a ship becalmed after stormy seas.
You’ve been silver and green;
I love you best now for your clarity.
You sing to me in sharpened keys.
You bring me emeralds and harmonies.

I will be here for you if you’ll be here for me
Sometimes, the tide turns
and everything becomes monochrome.

Aquamarine –
Your wet hair dries in the warm sea breeze.
Lie still and dream
Of the mountains – there you feel free.
Sail across still memories
Under sleep where all the waters meet.

Aquamarine –
This music crept upon the water to me
I’m a machine
Powered by your electricity.
You ebb and flow with melody;
You bring me emeralds and energy.

What seas, what shores,
what great rocks?

Sieze what’s yours;
What grey rocks?

What islands? What water laps at the bow?

The sea’s daughter, you ebb and you flow;
The sea’s daughter, in emerald green;
The sea’s daughter, my Aquamarine.

Lie still, be calm, and dream.
O my daughter.

Mobile Web talks, SxSW and Bath

On Saturday Saturday 12 March at 5:00PM in Ballroom C of the Austin Convention Center, I’m doing a talk snappily-titled Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript.

This will be a really fast-moving talk with tips and code snippets you can use right away. We’ll cover

  • mobile web philosophy: what is “mobile web”?
  • The three methodologies for mobile web development
  • What new goodies HTML5, CSS 3 and JavaScript offer us
  • Tips and tricks (code) to make your site faster on mobile
  • Apps vs Web and how the boundary is blurring
  • What’s coming soon, with hopefully a preview of what’s cooking in Opera Labs

I doubt many people will be there—it’s pretty late in the day, but do come along if you can. Otherwise, please come and say hi at the Opera booth in the trade show; there will be a giant red O suspended from the ceiling, so you can’t miss us.

I’m doing a cut-down version (1 hour into 40 minutes) at The Big M Conference in Bath, UK, where Patrick Lauke will be giving a 3 hour workshop.

Here are the slides.

Reading list 3

Stuff that people who aren’t following my tweet stream may have missed.

The mystery of Microsoft IE6countdown.com

When it was released 10 years ago, IE6 was the most sophisticated browser on the market. Now it lingers like a nasty fart in a crowded lift, embarrassing its producer Microsoft so much that it sent flowers to a mock-funeral for IE6 and now has released IE6countdown.com, asking developers to market IE9 by adding a browser upgrade link on their sites.

Two years ago, I wrote about IE8 in a ZDNet article:

If Microsoft is serious about wishing to persuade users and corporates to upgrade, it should address the reasons why people have not yet upgraded.

It could, for example, encourage systems administrators to upgrade corporate networks by officially announcing that IE6 has reached the end of its life and stop supporting it, and back-port IE8 to run on Windows 2000 so users of that operating system have an upgrade path.

But IE9 is only available for Windows 7 and Windows Vista users—so users of Windows XP, the most-used operating system in the world, cannot leave IE6 for IE9.

If Opera can make Opera 11, with its superb support for modern standards, work on Windows 2000 and above, why can’t Microsoft make Microsoft Internet Explorer 9 work on Microsoft Windows XP and Microsoft Windows 2000?

That would significantly help them towards their goal of watching “Internet Explorer 6 usage drop to less than 1% worldwide”.

I really can’t think of a reason why they don’t backport it – can you?

Other cleverer people’s opinions

JavaScript and screenreaders

For three years Jared Smith and his lovable chums at WebAIM have conducted a survey of screenreader users, analysed the result and posted them. This year’s results are out. Let’s take a moment to give them a round of applause.

There is much to digest, but one figure really caught my attention: only 1.6% of respondents had JavaScript disabled. Turning that round, 98.4% of screenreader users had JavaScript enabled.

Hopefully this will finally bury the WCAG1-era myth that JavaScript is automatically bad for accessibility or that pages that depend on scripting are inaccessible to assistive technologies.

This myth came about from the early days of screenreaders, which took a snapshot of the rendered page into a buffer and, when a user was navigating a page, he was really navigating that snapshot. If a page was changed with script the user wouldn’t know because another snapshot wasn’t triggered. (Even in this model, some JavaScript was fine. If, for example, your page contained lots of document.writes that executed immediately, and wrote HTML to the page, that would be available.)

As the Web made more use of “Ajax”, screenreaders became more sophisticated and now can handle most scripted interactions. This doesn’t mean that JavaScript is always fine to use; just as you can write inaccessible HTML and CSS, it’s possible to script away accessibility. An understanding of WAI ARIA is vital to professional JavaScripters.

(It’s also important to understand that not all accessibility needs are assistive technology needs. Christian Heilmann and Antonia Hyde showed that some scripting can be empowering for people with cognitive problems with their Easy YouTube and Easy Flickr.)

So we know that script doesn’t scare off assistive technologies, and we know from Yahoo! developer Nicholas C. Zakas’ report How many users have JavaScript disabled? that only 1% of visitors to Yahoo! have turned off JavaScript. Does this mean that we can safely forget about those who can’t use JavaScript.

Well, no. But JavaScript-required is not an accessibility problem, it’s a usability problem. As Zakas says

While the percentage of visitors with JavaScript disabled seems like a low number, keep in mind that small percentages of big numbers are also big numbers.

We spend a lot of time making our sites work with old browsers, using JavaScript shivs and polyfills but we don’t talk much about users without JavaScript. The Opera mini browser, for example, is the most-widespread mobile browser out there but, because it renders on a server, interactivity is limited (See Opera Mini: web content authoring guidelines for more information.)

How far can an application that requires Web Sockets, local storage, cross-domain messaging, canvas be expected to degrade gracefully?