When Alan Partridge asks Tony Hayers what he thinks of regional detective dramas Shoestring, Taggart, Spender, Bergerac and Morse, and Tony Hayers says “There’s too many of them”, Alan replies “That’s one way of looking at it. Another way of looking at it is, ‘People like them, let’s make some more of them’”. The BBC has a similar attitude when it comes to javascript libraries, it seems. A few weeks ago they released Glow
under the Apache license, giving us all a chance to spread some of the magic dust that goes into the BBC site over our own creations. But far from being another framework for wow-effects, Glow has the edge in two important areas: cross-browser support and accessibility.
Why another javascript library?
The BBC never released Glow in an attempt to ace the competition on functionality. There’s already a pretty comprehensive list of javascript frameworks
to choose from (jQuery
– which was used in an early version of the BBC homepage – is apparently the favourite amongst the BBC’s own team of developers, and they still “admire it enormously”), and there isn’t really anything in Glow that you couldn’t do with another JS library.
But what sets Glow apart is the way it spreads that magic dust, and this is all down to their strict – and very comprehensive – rulebook on web development, the Future Media Standards & guidelines
. The guidelines, which are continually reviewed by specialist BBC working groups and updated monthly, cover both technical & infrastructure requirements as well as editorial and visual design. And there is also a component on Accessibility.
The BBC’s web accessibility guidelines
The BBC’s standards on web Accessibility
– a mix of good practice and adherence to web standards & WCAG recommendations – aim to realise one goal:
The BBC is committed to making its output as accessible as possible to all audiences (including those with visual, hearing, cognitive or motor impairments) to fulfil its public service mandate and to meet its statutory obligations defined by the Disability Discrimination Act.
Now we’ve all seen statements like this on websites before haven’t we, and on websites where you’d have to say that “commitment” is questionable. But the BBC are too big an outfit, with far too big a reach, to adopt the ‘checkbox’ mentality of accessibility testing and conformance without coming unstuck. Not that I think they’re doing it just to avoid coming unstuck and attracting negative publicity. Having heard Jonathan Hassell (the BBC’s Head of Audience Experience & Usability, and member of the steering group for the BSI specification for accessible web design PAS 78) speak at the Internet World 2009 panel debate on accessibility, I’d say they take their commitment very seriously.
Guidelines examples
Amongst the guidelines, which are divided into mandates that must be done and those that should, there are some real gems that must have had the BBC developers scratching their heads. On the subject of keyboard navigation:
All functionality on all BBC websites and services MUST be fully controllable using the keyboard alone.
And on the subject of javascript (for which there’s a separate set of guidelines
):
All content and features delivered using JavaScript MUST be accessible with JavaScript switched off.
I single these two points out because they are areas where I have had trouble when using other javascript libraries. Not all JS frameworks follow the principle of progressive enhancement (where everything works at the lowest common denominator – e.g. CSS and javascript disabled), and some implementations of the show/hide effect in other frameworks are definitely not keyboard accessible.
Yes if you know javascript you can modify the effects or, given time, doubtless the other libraries – particularly those that have a strong developer community contributing to them – will be made more accessible. But isn’t it surely more comforting to use a framework that comes from an organisation where the usability and accessibility requirements are at the very core of their development, and where you know that future enhancements will have been thoroughly tested before release?
Cross-browser support
Glow also has to conform to the BBC’s Browser Support Standards
, which has web browsers in one of three categories: supported (including IE6, which apparently has the “highest proportion of users” in the current version (version 3.4, April 2009)), partially-supported and unsupported.
The BBC base their browser support standards not only on analysis of browser useage, but also on how much disruption a browser upgrade would entail:
For instance, when we had a significant number of users on Safari 1.3, we refrained from asking them to upgrade to Safari 2 as that would require them to buy a new operating system (OSX 10.4).
As with accessibility, Glow has better cross-browser support than other frameworks, and could be considered a far more stable option to choose given that no other framework is regulated in such a way:
No major libraries were compatible with these requirements, and there was no guarantee that even if they were, they would not change their policies.
Summary
If you’re anything like me and you want bells and whistles on your websites, and the mere sight of javascript code brings you out in a sweat – but you want your bells and whistles to be accessible bells and whistles, then Glow could be well worth a look.
The Glow website has documentation and demos of the various modules you can use
, along with a Getting started section
on how to download Glow and start spreading the dust around.
In true Open Source spirit the BBC are asking for feedback and input from developers. So if you can help improve on it, then you can get involved through the Glow Community
.
Oh, and to see what Alan Partridge does after Tony Hayers rejects all his TV Show ideas, watch ‘Smell my cheese’ on YouTube
.
Written by: Andy Bryant
Published on: 28 Jul 2009
Tags: Accessibility, Glow, javascript, web development, Web standards
“The BBC has a similar attitude when it comes to javascript libraries, it seems.”
Actually, I’d wager it’s more likely that their development of Glow had to do with (a) addressing the issues you rightly point out, and (b) not being beholden to the whimsy of other developers. If they were to adopt jQuery and support/development went Left and the BBC needed to go Right, they’d be kind of screwed, wouldn’t they?