Elements or Lower

Sun, 17 Dec 2006

Three Months

So Zoë is now a whole quarter of a year old, and my hermitage must end sometime. Some observations, by way of rehabilitation:

  1. Zoë is so preternaturally disinclined to cry when out in public that people seem to believe we must be adding valium to her milk.

  2. To eat and poo simultaneously is the sole prerogative of babies and Elvis.

  3. The missus has finally given in to the cult of Livejournal.

  4. Steriliser manufacturers seem to believe it’s their mission to make their products the loudest thing in one’s house. Wake up everyone! The bottles are ready! The bottles are ready!

  5. The bottles are ready!

  6. In recent days, Zoë has put herself into a bedtime routine, begun to grip objects and learned to laugh. She rocks.

Sat, 16 Sep 2006

Introducing Zoë

My beautiful daughter, Zoë Charlotte Green, was born today, her due date, at 6:32AM, weighing 7lbs 9oz and measuring a respectable 54cm.

Daddy and Zoë, only a few hours old

Mother and baby are doing brilliantly, and I have an obligatory scotch and cigar awaiting me.

Thu, 07 Sep 2006

Monks Chartered Surveyors

In some ways, things have just gone full circle. Nearly ten years ago, Article Seven’s very first invoice was for Martin Monk and Company, a small Shrewsbury-based estate agents then-owned by the father of my then-girlfriend. Tested at first only using Arcweb, the site featured a “showcase” of a dozen or so properties, which I had to tediously update by hand for several years thereafter. It was blue and gold, textured, Times New Roman. It made liberal use of <hr> and all paragraph tags were unclosed. It was last season’s shoes even when it was launched.

Since then, the site has been overhauled a few times. Firstly, the “showcase” was reimplemented using a tied DBM file. Then, I added a crude administration layer so that I no longer had to update the site myself. Finally, when the company changed hands and became Monks Estate Agents, the design was refreshed and the HTML rewritten.

Now, the company’s rebranded and growing, and this morning we made a completely rebuilt monks.co.uk live. Unexpectedly, the site represents the fourth publicly-available installation of my CMS, so that content could be easily developed and edited in-house, and so that I had a convenient framework already in place for the site redevelopment.

We’ve been quite careful to include a handful of features I’d have liked in the sites the missus and I used to help us buy our home here in Greenwich a few years ago:

As always, there are various changes I’d already like to make. Principally, the map on the search page is way too big and only really serves to get in the way of the form. But it’s very early days, and we’ll continue to develop the site once it’s had a chance to settle in. Overall, I’m quite pleased with how this one turned out.

Wed, 06 Sep 2006

Using Backpack Calendar as a Timesheet

For a long time, I’ve been looking for a system to help me keep track of how long I spend on the work I do for my clients, and I think I may finally have found a solution.

The key issue here has been finding something that doesn’t get in the way of my actual work, allows me to record timesheet entries for days in the past, and supports the fairly loose way I like to divide my time. Generally, I tend to invoice by the day or half-day. If I’ve spent an hour here and a few minutes there on various things for a client, I’ll aggregate this into a half-day when it seems fair to do so. There are clients for whom I do very infrequent jobs, and I’ll always have quoted a specific amount to cover the work needed on any given occasion. And there are some clients that get a different hourly rate from everyone else.

There are a number apps for the Mac that allow you to trigger timers to record actual time spent on different projects, but these operate on far too specific a level for my needs. I tried a couple out for a while, but ultimately found that I’d often have to make up entries when I forgot to trigger the timer. Moreover, the pudding was getting too eggy.

I tried setting up a local MySQL database, but found it too cumbersome to ever record a damn thing, and had neither the time nor the inclination to arrange a proper interface for it.

I tried just appending lines to a text file, but this felt like no structure at all, and made it hard to visualise where I’d left gaps in my record keeping.

I tried printing out monthly planner sheets from iCal, which actually worked quite well for a while. I’d write notes on a day’s jobs in each panel, and this gave me just enough structure to be able to get an overview of the month, without over-complicating the process. But I found that I’d often run out of room in some boxes when trying to note down a range of tasks for a client — and, frankly, if God meant us to use a pen, he wouldn’t have given us keyboards.

My Backpack Calendar

And then 37 Signals added a calendar to Backpack. I’ve used Backpack for some time now as a way of managing technical to-do lists and notes for various projects, largely as an adjunct to the strategic discussions and functional specifications held with clients on the sister site, Basecamp.

The beauty of the Backpack calendar is that adding an event involves merely typing its details into a single text field. I’m quite happy using iCal to keep track of my actual appointments, and had no desire to move all that over to Backpack. But it struck me that I could enter timesheet details into the Backpack calendar without running out of room or making my hand ache. So, at the end of each day, I divert my inevitably-running browser to the calendar, and simply type “half day FISITA (visitor survey) <return> half day WBC (forum archive)” or whatever, and the timesheet for the day is done.

So far, this seems to be easy enough that I’ll be able to sustain using it, structured enough that I can get a fair overview of what I need to invoice, and loose enough to cope with my ramshackle time management habits.

Mon, 28 Aug 2006

Great Biblical Typos, #36 in a series of twelvety

I say, I say, I say, how many Pharisees does it take to change a lightbulb?

…they offered to him gifts: gold, frankincense, and mirth.

Mon, 24 Jul 2006

Three Small Opinions

  1. Whilst Kate Bosworth is a fine actress, Rachel McAdams would have made a considerably better Lois Lane.

  2. The Dawnseeker, the debut album from Sleepthief, is practically a checklist of my recent musical tastes. Throw a real orchestra in there and watch me dribble.

  3. Charlie Brooker is entirely correct in everything he says about Doctor Who, and is furthermore generously capable of making me weep with laughter in a variety of media.

Tue, 18 Jul 2006

happy happy joy joy

It seems that the version of LibXSLT I have installed on the server supports EXSLT extensions without complaint or need for tinkering. This is cause for much jubilation in these parts.

That said, the furnace that is my studio means that “jubilation” today extends merely to a weak hurrah and a celebratory Kia-Ora.

Thu, 13 Jul 2006

Odi et Amo

I recently wrote that my new, long-term mission would be to get the administration area of my CMS working with both the WCAG and ATAG.

Truth be told, I haven’t yet made any progress with this, other than to give some of the issues rather more thought. In doing so, however, I’m already being pulled in two different directions.

This first is to try and make the “Administration Shell” work, at least to a basic extent, in all browsers — even with JavaScript disabled. One of the key challenges here is the way that the Shell uses a visual editor to help publisher author HTML content. Sans JavaScript, the page contains a regular textarea containing the raw HTML code. With JavaScript, this is transformed into an editable representation of the HTML, with toolbars and whatnot.

Fundamentally, then, a publisher can edit content if they have JavaScript disabled: they merely need to know HTML first. And that, of course, isn’t really good enough.

Until recently, I’ve been very much of the school of thought that the only accessibility issue with JavaScript is whether or not the functionality you’re providing works on at least some level without JavaScript. The trouble is, that’s not true. As evidenced by some of the recent work on AJAX and accessibility, assistive technologies such as the JAWS screen reader operate on top of Internet Explorer — so, if IE has JavaScript enabled, so does the screen reader.

This, in turn, means the visual editor needs to be operable in a screen reader context. We can’t assume that if you’re using a screen reader, you’ll have JavaScript turned off. It means that popup windows such as those created by tools in the visual editor to allow the creation of links and insertion of images into content, have an impact. It means that the visual editor’s tools need to be device-independent. Those functions I’ve tucked away in a right-click menu become a problem.

On the other hand, I’m falling in love with script.aculo.us. Some well-placed visual effects here and there, and a little bit of AJAX magic in the right places, can work wonders on overall usability.

For example, the Greenwich Community Network’s contact form has some questions that ask you to expand on your answer to a prior question. Hiding the questions you’re not expected to answer using JavaScript improves the form no end.

Equally, The Woking Forum has a bunch of ongoing discussions with many, many responses. On page load, messages older than three weeks aren’t included, but a little AJAX incorporates them into the page if you want them.

In the context of the Administration Shell, there are a number of places where these kinds of technique would improve usability in general. For example, the Shell includes an expandable sitemap to help the publisher select the page they want to edit. Although it already takes some steps to split the DOM manipulation required to open and close levels of the hierarchy into manageable chunks, everything would be so much snappier if levels of the sitemap were only loaded when expanded, using AJAX.

The Shell also has a number of places where the publisher is asked to sort a list of items as they choose. For example, a navigation list for a level in the site hierarchy isn’t generally sorted alphabetically, or by date, but according to an arbitrary sort order of the publisher’s choosing. Coding a usable interface for this kind of thing isn’t easy.

Except, of course, it is. The current Administration Shell doesn’t use a drag-and-drop list. Instead, it uses a series of buttons marked “here” for the publisher to indicate where they want to position an item within a list. But this is terribly clumsy, means that anything other than the shortest list takes up an acre of screen space, and means that it’s impossible to alter the position of more than one item at a time.

The main problem with scrip.aculo.us’s drag-and-drop sortable lists, however, is that in being drag-and-drop, they’re as far from being device-independent as you can get. It’s not possible to use the keyboard to sort one of these lists. I had hoped to improve accessibility within the Shell, not make it worse.

So, on the one hand, I want to be able to claim WCAG compliance for the Administration Shell. I want to be able to lift the browser-sniffing on the Shell for Window on Woking. I want to be able to apply the same rigour to the back-end of sites that I’ve started to apply to the front-end.

But, equally, I want to make the Shell as easy an environment to use as possible. I want to be able to take advantage of the good things to come out of “Web 2.0” (but not the name).

I’m hardly alone in trying to get to grips with this kind of problem, and the community will find answers in time, just as it always has. For me, I suspect the answer may lie in having a set of preferences for the Shell, where publishers can make the choice as to whether they’re comfortable with drag-and-drop or not, and whether they want to edit content using the visual editor, or using Markdown. As long as I don’t find myself tempted to stick a bunch of JavaScript into the preferences screen, that is.

Mon, 12 Jun 2006

Doctor Fun, RIP

Pretty much since the day I got my first Internet connection at home, back in 1996, I’ve been a regular reader of David Farley’s Doctor Fun, and even obtained permission to include the panel in the NPC Newsletter. Today, I learn that having achieved his target of 520 weeks of daily cartoons, the good doctor has finally hung up his stethoscope. Goodbye, and thank-you.

Wed, 31 May 2006

Greenwich Community Network

The site for the Greenwich Community Network is now live, in its resplendent minty glory.

This represents Article Seven’s first foray into work for local authorities other than Woking, and my only work for a while that hasn’t been in any way CMS-related. It’s also (I hope) one of my more rigorously-accessible efforts, despite being fixed-width.

Fri, 19 May 2006

Version Five

It’s still only a single page, but I’ve now put a new redesign of article7.co.uk live. This serves as an entirely unwarranted distraction from real work, not unlike poor Timmy’s relentless torment.

Thu, 18 May 2006

SiteMorse Testing

Right now, there’s a fascinating discussion in progress over at Accessify Forum on the merits and problems with the SiteMorse automated site testing tool, specifically insofar as it claims to test pages against the WCAG.

Regular readers here will know that SiteMorse publish a monthly league table of both central and local government sites, and that despite these having no formal government backing, it’s hard to ignore them altogether. The league table divides its results into a number of columns, including “performance”, “metadata”, “code quality”, “accessibility” and “function”. We’d been consistently scoring well on most of these, but very poorly on “function”, and we had no real idea what precisely this meant, nor did we get very far in finding out by trying to contact SiteMorse directly.

So, we decided to purchase a bunch of credits for the SiteMorse tool, in order to fully divine what they perceived was wrong with the site, and to be able to make better sense out of the monthly league table. In the light of the current discussion, I thought it might be useful to summarise what we found.

For the record, it turned out that “function” relates to things like broken links (both internal and external) or malformed URLs, together with a handful of potential issues in the HTML itself, such as lacking a <title> element. It also turned out that any problems in this area, such as a link to an external site timing out, would be marked quite punitively. With an appropriate login, the full results from the league table tests are made available, and the most recent test (carried out on 8 May, and covering 12 pages from the site) had a link to each of two different sites time out. These two errors alone furnished us with a function score of 2/10 — ouch!

Of course, part of the reason for this is that the SiteMorse tool simply balances the number of errors found against the number of pages tested. If your site uses correct syntax, but does nothing, has no content, and links nowhere, your SiteMorse score will be fantastic. A great SiteMorse score isn’t really an endorsement of what you’re doing, but merely an indication that you managed to avoid a specific set of potential errors.

This has a great impact on the interpretation of the SiteMorse accessibility score. A SiteMorse accessibility score of 10/10 does not equal a fully-accessible page, but merely indicates that there were no failures discovered for any of the 16 different accessibility checks it actually carries out. Of course, it’s very hard to keep this in mind, even though the page for accessibility in a given test lists a further 26 points with “manual check” written against them. What’s more, there seems to be a very strong disconnect between the disclaimers in the SiteMorse test results themselves, and the tone of the company’s marketing.

Despite all this, we found the accessibility tests genuinely useful in identifying a handful of real issues. We had a few pages, adapted from old CGI scripts, that contained deprecated HTML. We had a few pages with out-of-sequence headings. We had a couple of pages whose content didn’t validate properly. And we had a truckload of links which used the same link text, but with different link URLs.

In addressing these issues, it was really important to be able to interpret the results in a sensible and educated way. For example, just as one could avoid broken link errors by having no links, one could avoid heading-sequence errors by having no headings. I don’t think it’s entirely fair to consider this an argument against the tests themselves, however. It’s more of a caution not to prioritise a “good” result over a good site, league tables be damned.

Incidentally, we noticed that the links with identical link text but different link URLs were, without exception, internal links. Because the CMS handles the generation of the HTML for internal links, it was relatively straightforward to adapt this to include sensible disambiguation in a title attribute for each link. To see some examples of this, view source on the sitemap.

Thu, 04 May 2006


And thus do I briefly celebrate what may be a Juncture of Great Import in the history of broadcast television: the celestial alignment of such glorious entertainment that angelic choirs doth erupt and spew from the Sky. Alas, it cannot last.

  1. Doctor Who

    Gather round, my children, for this is the Boe Selector.

  2. Lost

    Though some may turn their heads away, I am not of their number. Give me flashbacks or give me death.

  3. Battlestar Galactica

    Kneel, good people, and worship at the altar of Baltar.

  4. 24

    As the scriptures tell us, “Guns don’t kill people: Jack Bauer kills people.”

  5. American Idol

    There are annals of secret shame in which may be found much from the Opus Nigellum.

  6. The Apprentice

    And thus it comes to pass that the Badger may inherit the Earth.

  7. My Name is Earl

    I, too, have wasted electricity, and saw that it was good.

Tue, 02 May 2006


I’ve now released XML::Generator::RSS10::ipsv to the CPAN. This adds support for the Integrated Public Sector Vocabulary List to RSS 1.0 feeds generated through Dave Rolsky’s XML::Generator::RSS10.

It’s accompanied by an update to XML::Generator::RSS10::egms. Installing this should install XML::Generator::RSS10::ipsv as a dependency.

Fri, 28 Apr 2006

Gladstone can Bite Me

No, we didn’t win, nor were we the runner-up. This wasn’t entirely unexpected, of course, since the awards were for innovation, and community web sites have been done before. The winners in our category, the European Health Insurance Card and the London Borough of Islington’s Sign-Video Contact Centre are certainly more innovative, and thoroughly deserving of their awards.

That’s not to say that we weren’t disappointed, but getting shortlisted in a hotly-contested category is very much something to crow about in itself. The only genuine niggle was that, in reading out the shortlist, the presenter claimed that Window on Woking was a product of Wokingham Borough Council. The barely-concealed muttering from my colleagues around the table suggested that this is far from an isolated incident.

The ceremony was held at Madame Tussauds, with the unexpected consequence that Gladstone was seated just behind me throughout dinner, his cold, dead glare distracting me enough that I found myself adding milk to my espresso.

Tussauds seemed considerably smaller than I remember from being a child. Nonetheless, a free BT-branded disposable camera provided for ample opportunity to have pictures taken towering over Tom Cruise (who can also bite me, though for different reasons), and the evening concluded with 75 of Monopoly money being frittered away on quite possibly the most unruly Roulette table I’ve ever enjoyed.

We can hardly complain, not least because the project’s grand fromage, Geoff Young, won Innovator of the Year last year!

Mon, 17 Apr 2006

Saved from the Realm of Goatees and Pointy Sticks

It seems I invented nothing, save perhaps a transliteration from k to c.

Bizarrely, Rubik evidently went in another direction.

Fri, 14 Apr 2006

Notions I have entertained, however briefly

  1. If one were to put frozen prawns in a popcorn maker, one would obtain prawn crackers.

  2. By placing one’s textbooks in a blender and drinking the result, one could absorb the information contained therein through a process of homeopathic revision.

  3. Pimms and Vimto are the same product and should be considered entirely interchangable at middle-class barbecues.

  4. West Ham is merely an abbreviation of West Hampstead.

  5. That it might be possible to hurl an A-level maths textbook in such a way that each page would individually impact the face of the teacher, like a flickbook animation.

  6. Sidcup is a suburb of New Malden.

Fri, 07 Apr 2006

The Local e-Gov Expo

I spent Wednesday and Thursday as an exhibitor at the Local e-Gov Expo at the frankly colossal ExCeL centre, along with various personnel from Woking Borough Council.

Because Window on Woking was funded as part of the e-Innovations programme, we’d been asked to attend as part of an “e-Innovations village”. Since a key factor in the funding was the production of deliverables that could be used by other local authorities, we’re offering the system as a hosted solution. It’ll be really interesting to see if any other local authorities take us up on this.

Quality free merchandise in a range of densities!

My experience of these kinds of event is limited to a brief walk-round of the exhibition at the FISITA 2004 World Automotive Congress, shopping trips to a couple of Mac shows, and a tradition of demonstrating graphics software for a company called Cerilica at a bunch of Acorn shows.

Ah, the nostalgia. Not only were these shows the last time I got to share a beer with Dunstan Orchard, they also represented a time when I was one of the least geeky people in the room, rather than the most.

Mon, 27 Mar 2006


In a fit of forward-thinking, I’ve now set all organisation and councillor homepages on Window on Woking to use the hCard microformat.

We’re planning some improvements to the Diary of Events, and I’ll implement hCalendar at the same time as implementing those changes.

Wed, 22 Mar 2006

Three Observations

  1. Although it has a numeral in the domain name, article7.co.uk does not consider itself Web2.0-buzzword-compliant.

  2. Although this numeral is spelled-out as “Article Seven” in the company name, this should not be construed as part of the marketing campaign for the new version of Internet Explorer.

  3. This is just a coincidence.

Tue, 21 Mar 2006

“It’s an honour being nominated…”

I’m hugely pleased to announce that Window on Woking has been shortlisted for the Government Computing BT Awards for Innovation 2006.

From what I can tell, we’re the only web site to be shortlisted in our category, which makes it somewhat harder to size up the competition. Regardless, it’s an impressive list, and I’m genuinely both thrilled and humbled to be part of part of it.

I haven’t been to Madame Tussaud’s since I was about seven, during which I was terribly excited to be able to come face-to-face with K9. I gotta admit, I still would be — but I’m pretty sure this’ll trump it.

Fri, 17 Mar 2006

The Accessible Shell

As Patrick Griffiths notes, in the same way that the WCAG describes accessibility for web content, the lesser-known ATAG describes accessibility for applications and services that generate web content — including, of course, the web-based “Administration Shell” employed by my CMS.

Naturally, in an ideal world, the Shell would conform to all Priority One and Two (plus selected Priority Three) guidelines from both the WCAG and the ATAG. I’m sceptical of the extent to which I’ll be able to manage this — for one thing, so much of the authoring envrionment depends on JavaScript that checkpoint 6.3 of the WCAG is pretty much doomed to be broken. Nonetheless, it certainly defines a long-term goal, and a serious challenge.

The existing Shell is very far from achieving conformance with anything. I’ve even yet to apply the standard-based treatment of the front-end to the back-end, and the Shell doesn’t behave properly right now using anything other than Internet Explorer 6 — which, to make matters worse, is only available on Windows.

To address this problem, my own top priority here is to get the Shell working fully in Firefox 1.5+. It very nearly manages this even now, but there are still issues that need to be addressed.

Then comes a thorough revision of the HTML, CSS and scripting used in the Shell, so that everything is as clean and valid as possible. And then, finally, comes the larger task of working through the WCAG and ATAG. This is my new mission. It will take a while.

Wish me luck.

Thu, 16 Mar 2006

Reading this magnificent rant only serves to further confirm that selling my soul to The Murdoch in exchange for the delights of Sky+ all those years ago was frankly a sweet deal.

Never liked my soul that much anyway.

Fri, 10 Mar 2006


In a busy week for blogging, I’ve released XML::Generator::RSS10::ev to the CPAN.

This small module adds support for “mod_event” to Dave Rolsky’s XML::Generator::RSS10. It tries hard to get event start and end dates to be output correctly in W3CDTF, allowing a range of input types.

Thu, 09 Mar 2006

In lamenting our failure to achieve level-AA accessibility, I noted that we could make a quick accessibility improvement to the WBC site by slightly changing the way we link to popups on the site.

I believe there are times that launching a popup window from a link (never in the background) is actually useful on a site, such as offering contextual help without diverting the user away from the current page. We do this quite a lot for links to PDF files and RSS feeds.

In doing this, however, one has to be very careful that the links remain as accessible as possible. Two checkpoints from the WCAG are especially relevant here:

6.3 Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page.

10.1 Until user agents allow users to turn off spawned windows, do not cause pop-ups or other windows to appear and do not change the current window without informing the user.

We’ve always covered our bases with the first of these. The CMS has the ability to “masquerade” any page to make it behave as if it were a different page in the site hierarchy. When a popup link is created, the URL leads to a special popups page, and features the internal ID of the page you’re coming from as pathinfo. The popup ID is then provided in the querystring.

This prompts the popups resource to “masquerade” as the resource whose ID was provided, and the querystring not only pulls out the popup content from the relevant database table, but also triggers the CMS to make the page “deep” — that is, the page acts as though its content is the result of a form submission, and a link back to itself is appended to the breadcrumb trail. This is how something like The Woking Forum gets the breadcrumb trail right for individual messages even though the CMS considers the whole Forum to be a single resource in the site hierarchy.

The result of this is that, without Javascript, the popup link acts just like it brings up a descendent of the current page, containing further explanatory information. This satisfies checkpoint 6.3 above.

Previously, the CMS would also write an onclick event to the link in the HTML, which would call a Javascript function to open the link in a popup window instead. The URL for this would be slightly different, though. By omitting the pathinfo ID of the current page, the popup resource wouldn’t masquerade the content as a regular page, but would wrap it in a special popup template instead. Consequently, the results of selecting the link with Javascript enabled would be different from selecting it without Javascript, both in terms of window behaviour and page appearance.

This didn’t satisfy checkpoint 10.1, however, because at no point was the user informed that the link would act as a popup using Javascript. Although it’s subject to interpretation, the consensus on checkpoint 10.1 seems to be that it’s okay to open a new, or popup, window as long as the user is informed this is going to happen.

So, I thought I’d implement a variation on Gez Lemon’s script for opening external links in a new window.

This works by finding all links marked with rel="external" and modifying them using Javascript to open in a new window, and also to append a “(opens in a new window)” disclaimer to the link text. The beauty of this is that, without Javascript, neither the behaviour nor the link text is modified. You’re never misled.

In the end, my implementation was inspired by this, but wasn’t a modification of the code. Instead of attaching the onclick event to the link in the HTML, the CMS simply attaches a “popuplink” class. The site already loads the wonderful behaviour.js, so my script uses this to trigger a function when the page loads that pulls out all elements with the “popuplink” class to modify them. The actual code for this is taken straight from the equally wonderful Prototype, but the library itself isn’t loaded to save on download time, as it’s quite large.

The script adds the onclick behaviour to each link it finds (it seems that onclick does behave in a device-independent way, so I believe we’re safe with respect to checkpoint 6.4), and then appends an img icon to the link. The icon is set to have alt text of “(opens in popup window)”, so the icon acts as notification that the link is different from normal for both sighted users and users of assistive technologies. This, I think, should satisfy checkpoint 10.1 too.

You can see this in abundance on the site’s What’s New page.

Wed, 08 Mar 2006

Announcing Junior

Fatherhood looms. ETA: 16 September.

Today’s ultrasound reveals that it’s already tall for its age, and not twins. Had it turned out to be male twins, I’d have been sorely tempted to name them Kensal and Stepney.

Sun, 05 Mar 2006

Better Connected 2006

Press coverage on this year’s SOCITM “Better Connected” report observes that only three local authority sites achieve WCAG “level AA” conformance, despite the ODPM priority outcome for all sites to do so by 1 April. Woking isn’t one of the four.

This news got under my skin just a little, not because I think it’s unjustified, but because it reminds me vaguely of my old French teacher:

I have a word for nearly right, and it’s this: “wrong”.

The subtext I found myself reading into this was that accessibility is an all-or-nothing thing; that unless you can meet all checkpoints on all pages, your site is inaccessible.

In truth, every checkpoint you can meet is acting to decrease potential problems and frustration for at least some users. There are some things you can do to completely nix accessibility for certain groups (for example, requiring Javascript for any links to work), but few checkpoints are designed to specifically address these kinds of egregious issues.

Of course, the report itself probably acknowledges this, and it’s unlikely that more than a representative sample of pages from any site were assessed. But the difficulty we have, as an organisation who have tried to follow the WAI checkpoints closely, is knowing exactly what let us down in the eyes of the report.

The current guidelines aren’t always 100% unambiguous, and there are certain issues addressed by them that are the subject of some debate.

Although the Council have yet to receive the full report, I understand that the methodology for assessment against level A are listed in the appendix. This is great news, but (unless I’ve misread the situtation), the methodology for assessment against level AA isn’t included, and that’s precisely what would help us most.

My sentiments here are largely an echo of those expressed by Dan Champion, web manager for Clackmannshire Council. Dan notes that the lack of transparency in the assessment process used by companies such as SiteMorse devalues the results they provide.

Our page metadata doesn’t claim greater than level A comformance, since it’s probably better to undersell than oversell here, but accessibility is an ongoing priority both for the Council as publishers and me as programmer, and we’re confident that by-and-large, we really should be meeting pretty much everything from level AA and a fair number of checkpoints from level AAA as well.

Having said that, we certainly have work to do in improving the accessibility of our PDF provision, we need an accessibility statement, we need to consider provision for accesskeys, and I have a personal project to implement a zoom layout style-switcher in the next few months.

I also suspect that a key issue that let us down is the way that we’ve used popups for things like explaining PDF and RSS usage. My implementation here works by having a link to the content as the href and a call to a Javascript function that opens a popup onclick. The normal link, however, includes a reference to the current page, so that the CMS wraps the popup content as if the page were a descendent of the current page in the sitemap (that is, the breadcrumb trail contains appropriate navigation back). The onclick link lacks this reference, which prompts the CMS to disregard the normal page templates and use a “popup” template instead.

The issue here is that none of this addresses the requirement to inform the user when a link opens a new window. The content only opens a popup if you have Javascript enabled, and acts as a normal link using the same window otherwise, but that’s not quite what the checkpoint addresses.

I plan, therefore, to implement a variation on Gez Lemon’s script, which uses the DOM to add new window behaviour — and, crucially, notification — to links marked as being external.

It won’t help our score in Better Connected, of course, but it will help our ongoing accessibility efforts.

Thu, 16 Feb 2006

Themes for Window on Woking

When we built Window on Woking, we knew that organisations who signed up to the site would want to be able to customise their pages as much as possible.

So, inspired by the themes system for Blogger, the CSS Zen Garden and, in particular, Zaadz and the Evanescent Design Crew, we decided to try to implement a themes system for Window on Woking.

Internally, and backed up by consultation with the project’s visual designer, Adam Pink, we came to the following conclusions:

  1. Themes would be implemented as an extra CSS file, loaded in addition to the main site styles — a theme would override global rules selectively, changing as much or as little of the default design as the author wished.

  2. Other than the extra <link> to load the theme stylesheet, the HTML of any given page would remain otherwise identical between themes.

  3. The Window on Woking masthead, login panel, primary navigation and footer would all be “sacred” and must remain untouched by any theme.

Having developed the global stylesheet and a set of styles for the Diary of Events, we first asked Adam to design a theme for the Councillors’ pages. This acted as a proof-of-concept for the idea, from which Adam then went on to produce two more themes, which we named Steel and Mediterranean.

I’ve produced four themes myself (Autumn, Air, Meadow and Grass), and we’ve commissioned Mike Stenhouse for two more, one of which (the excellent Corkboard) has now gone live.

Organisations can change theme whenever they wish, but at the time of writing, here are some examples of the seven currently-available themes in use:

We’d like to have a much more extensive library of themes available, however, and so we’re hoping people will get in touch with their ideas. We’re offering 200 for each theme that we commission, although we’re only asking for people to contact us at first if they have an idea.

We’ve put more information about this, including a downloadable theme resources pack, on the Window on Woking site.

Although the budget for each theme is modest, I’m hopeful that we might be able to get some really talented artists contributing to the site.

Fri, 10 Feb 2006

Comments are back

…at least for a while. I’m trying out Haloscan to see if it allows me to manage comment spam rather more successfully than my old system did. As you were.

Wed, 18 Jan 2006

Window on Woking

Towards the end of 2004, Woking Borough Council won a Round One e-Innovations bid, securing funding from the ODPM to develop three initiatives in Trusted Partner Access to Information.

Part of the resulting project involved the creation of a new community site for Woking, whereby local voluntary and community organisations would be able to develop their own pages within an overall framework, for free.

This relates heavily to the ODPM’s Priority Outcomes for local government, specifically outcome G2:

Empowering and supporting local organisations, community groups and clubs to create and maintain their own information online, including the promotion of job vacancies and events

The key innovation in Woking’s community site would be that each organisation would be able to restrict some of their pages on the site to members of their own organisation, or to members of other organisations which they could specify, creating a network of trusted partners between organisations on the site.

Article Seven — which is to say, me — was charged with the development of the infrastructure for this, which would be based largely on the CMS put together for the main woking.gov.uk site. The key deadline for this was 1 April 2005, by which time we had to be able to demonstrate that the basis of the site was functional and sound, even if the site was far from being a complete, marketable commodity.

That meant that the first three months of last year required me to focus practically 100% on this one project. Oddly, I found that experience rather liberating: all my other clients knew that development work for them would have to wait until April, and I determinedly didn’t accept any additional work for that period. For three months, I lived and breathed the Community Site.

I want to write in detail about the development process later, but for now it’s enough to say that:

  1. We got the basic infrastructure in place on schedule

  2. We spent the rest of the year getting the site fit for launch

We’re now, finally, ready to launch Window on Woking.

The Window on Woking homepage

The Council began approaching local organisations over the summer, taking many through the sign-on process and running training sessions in the CMS. At the time of writing, we have 234 organisations signed up and developing pages on the site — including each of the local councillors, for whom we’ve developed a basic blogging system.

Our launch involves promoting the site to the public, with enough content now in place to justify a visit, and many of the initial problems resolved. That’s not to say, however, that work on the site is over — far from it: there are still some things that don’t quite work as well as we’d like them to, and plans for future development on most aspects of the site.

It’s been a pleasure working on this over the past year, and I’m really happy to be continuing to work on it (albeit with less exclusivity) for the foreseeable future. The project also gave me my first taste of collaborative development, with much of the graphic design and CSS work on the site having been expertly created by Adam Pink at Sardine Media. Not only that, but the shaping and specification for the site was built with Basecamp between me and Sean Rendall, the manager for this strand of the e-Innovations project at Woking Borough Council, and with whom I’ve always had an enjoyable working relationship. Sean has a keen eye for the way things ought to be done, even if they’re technically harder to achieve. If the site turns out to be a success, it’s likely to be because Sean’s stopped me being lazy.

Tue, 03 Jan 2006

The SuDoCube

Sometime during the early hours of Boxing Day, I fear I may have bought my ticket to Hell.

As part of a Christmas gift, the missus and I had been given a variation on the Rubik’s Cube, as pictured below.

The cube, perpetually unsolved

It’s similar to the Rubik’s Revenge, in that each face consists of a 4x4 grid (instead of the usual 3x3. Addditionally, the colours of each face are supplemented by a small picture of an animal — meaning that the way each facet on a side can end up in an entirely different orientation to the others becomes really clear.

As a child, I never actually had a Rubik’s Cube (though I did have a Rubik’s Magic). So, I’d spent the last couple of hours of Christmas Day engrossed in the toy, succeding in being able to solve a single face, but progressing nowhere towards being able to solve the whole puzzle.

And then I got to thinking about ways in which the puzzle could be made even harder. And then I started thinking about SuDoKu. And then I found myself bound for Hades.

In SuDoKu, the object is to fill each 3x3 region of a 9x9 grid with the numerals 1-9, such that each numeral is placed once and only once within each region, and also occurs once and only once for any given horizontal or vertical line in the grid as a whole.

One could combine this with the traditional 3x3 Rubik’s Cube such that each face consisted of the numerals 1-9 — instead of filling in the blanks, one would have to rearrange the facets on the cube such that there isn’t a repeated numeral on any face.

Fold me into a cube

This actually represents the solved cube, though it’s not at all easy to tell at a glance. On a normal Rubik’s Cube, it’s instantly obvious (colour-blindness notwithstanding) if the puzzle is completed — the real difficulty here would be that it’s no longer in any way obvious whether the cube is solved or scrambled.

Incidentally, I’m not actually at all sure whether the template represents the only solution to the puzzle. It might not, I think, given the way the cube allows facets to rotate and change position.

Anyway, here, unlike real SuDoKu, the relationship between the regions (the faces of the Cube) isn’t important — since there are four faces for each “line”, it’s not possible for each line to contain only one instance of each numeral. One could restore this constraint by having a 4×4 grid like the cube with the animals — the fiery Gehenna of hexadecimal SuDoKu, as found (so I’m told) in The Independent.

If, in the near future, a plague of boils is bestowed on London, it might not be terrorism. It might be that I’ve made a prototype and sent it to ThinkGeek.