Playing Catchup

Thursday, May 17th, 2007 at 11:35pm

I seem to have got out of the blogging habit, so I’m hoping to catch up on a few posts now. I’ll tweak the dates so they’re relevent to the events roughly as they happened (chronology? what’s that?!)

The first event I’d like to make a post about was the excellent -

Web Standards Group Meeting on Javascript

Some of us shy away from JavaScript (until recently, myself included) on the grounds that it’s not accessible. But these days, if it’s done right, it can be positively beneficial to accessibility.

Demystifying Screen Readers – Steve Faulkner
Steve is very knowledgable on screen readers and all their foibles, and is Director of the Web Accessibility Tools Consortium. This talk mainly centred around Jaws (65%) and Window Eyes (35%). The bracketed figures are from a US National Federation of the Blind market share survey – it’s obvious these are the two big players.

The key issues revolve around:

  • Dynamic updates – user initiated and independent
    Can the user access the updated content?
    Is the user aware that the content has been updated?
  • Rich Internet Applications (RIA)
    Can the user understand the role of the control?
    Can the user successfully interact with the control?
    Is the user able to access information about the current state of the control?

He then explained the differences in screen reader modes:

  • Browse Mode (virtual buffer) – the user can navigate page content via paragraphs, headings, links, lists etc. They can also activate links and some form controls. But text characters can’t be input into form fields, or interact with select elements in this mode.
  • Forms Mode (browse mode off) – the user may only navigate through a document to focusable elements via the TAB key. Text access is limited to “read all” functionality. Most of advanced content navigation is unavailable.

The crucial question we have to consider is, when and how does content become available to the user after it’s been updated in the browser?

[Steve Faulkner and the Latency Issue]

Latency is a problem because the virtual buffer does not update and the user doesn’t know anything has changed. However, JAWS v7.1 started “listening” for virtual buffer updates in response to things like:

  • window.setInverval()
  • object.innerText (for IE)
  • object.textContent and object.appendChild (in Firefox)
  • changes in form control values
  • And other stuff like ALT or TITLE attribute value changes.

Jez Lemon has an excellent article on Improving Ajax Applications For JAWS Users on his webiste. Steve summed up with some recommendations:

  • Do not code to accommodate the poor support shown by JAWS and Window Eyes.
  • Use unobtrusive methods where available and appropriate, to help screen readers along.
  • Don’t use the excuse that JavaScript / Ajax is not accessible for screen readers to not bother to design for accessibility.
  • Start developing interface elements that use WAI-ARIA specs, which will provide some benefits now and many more in the future.

Steve’s thought-provoking presentation was followed by a turn from Christian Heilmann entitled Seven Reasons For Code Bloat

[Christain's been on the beanz again]

His notes are available for download from his blog, so I won’t repeat them verbatim. Needless to say, it was a fun presentation and contained the obligatory photo of a kitten ;-) . Meanwhile, he’s thinking of this as the title of his next book:

[Christian's Next Book?]

PubStandards XVIII
Of course, the next item on the social agenda was the PubStandards gathering. Lots of fun and revelry as usual, here’s one photo, but you can see more on Flickr.

[Patrick & Ashe go head-to-head, while Ross butts in the middle]

BarCamp Day 2 – Morning & Afternoon

Sunday, February 18th, 2007 at 8:42pm

Simon Willison on OpenID
Simon talked about systems for single sign-on across multiple sites. You don’t give away your user name to the site, but do it via a third party signon, such as Yahoo!. MyOpenID https://www.myopenid.com

Attribute Exchange
Registering personas. You can set up personas which lets you act as different people on each site, with perhaps a different circle of friends or interests..

A bit prone to phishing – an evil site could redirect you to a phishing site which could catch your ID and password (if you are signing into openID via any old site (rather than at the mothership). AOL have turned OpenID on for 68 million accounts now.

idproxy.net is a site which Simon has written, which acts as a middle man for yahoo signin/openID.

[Simon demos openID signon for Magnolia]

What happens if your provider goes away? You can use your own url as a delegation by inserting a couple of lines of HTML in the code of your site.

If you log into a blog to comment, you can populate a white list of trusted friends’ openIDs which would then bypass comment spam moderation.

http://jyte.com is a way to enhance your reputation as a distributed profile. Other users vote yes or no to say if they agree with your opinion. Jyte has a group for BarCamp (effectively a white list) which could be exported to another social network, lock, stock and barrell.

Janette Girod on Optimising The Everyday: Finding Flow
Janette’s presentation was all about the art of training your attention. You get out what you put in – pay attention and you’ll get more benefit. Also need to set up circumstances to allow you to pay full attention to what you’re doing. This can be helped by:

  • Defining clear goals
    Focus one one small thing to achieve per session.
  • Heighten concentration
    Can be increased by practice. Make it easier on yourself by removing apps you’re not using, ban im, email, twitter!! Don’t sabotage yourself.
  • Loss of self-consciousness
    Become absorbed in what you’re doing.
  • Distorted sense of time
    Specifically allot a period of time to concentrate – it can take 15-20 minutes to zone-in. 48 minutes on, 12 minutes off. Fun to race against the clock. At the end, it gives you break – get up, make tea, check email: this break means your next session of 48 minutes is more productive.
  • Direct & immediate feedback
    Test all the time, immediate reward for your work, seeing when something works
  • Balance between ability level and challenge
    T oo hard, you freak out, too easy, you switch off. If you have a really hard task, break it down into smaller chunks and get those out of the way one by one
  • Sense of personal control of activity
    Master your tools, then you will feel in control of what you are doing
  • Intrinsically rewarding action
    If you have a choice, do something you want to do, rather than something you have to
  • Focus of awareness narrowed down to concentrate
    Be strict with yourself if you find your attention wandering off track. If you keep practising this, you will need to do it less often.

[Janette, in full FLOW]

As a soon-to-be freelancer, I found her ideas and suggestions most welcome, as self-motivation will be a big factor in my success!

Erin Staniland on Web Sites For Photographers
Erin demonstrated With Associates‘ Flash-based galleries for photographers, with a cms. The customer gets their own domain name, a unique design on a small budget, they manage pictures themselves. Some examples of the system:

http://justice.withassociates.com/
http://www.jameshatt.com/
http://www.175pairslater.com/

The CMS is Ajax on Rails, which creates an XML file which can be manipulated with Flash.

Minibooks – cheap, quick and dirty website for quickly showing work to potential clients. These have standard templates, slight customisations.

Ben Ward on ASP.NET Active Standards Pages
Ben concurred that ASP1.1 not designed with standards in mind. Therefore it was crap at it, at times. Visual studio tends to insert nastyinline JavaScript in certain circumstances, eg Image Buttons, form validation, hyper link pagination on datagrids.

Some controls need to be nested inside forms. Gridview (.NET2) MUST be inside a form. <label> is a pain. The code will generate unique codes for each element – it can screw up css id selections. Page doesn’t validate under some circumstances – viewstate can cause problems.

.NET2.0 Master Page templates are better now to set header, nav, footer and define content area into which we can drop the form controls etc. Easy to pass unique page ID for body class switching. Other useful stuff in the header – such as setting the RSS feed link for auto discovery of feeds.

Wrapping Up
After such an action-packed couple of days, there were a few dropouts by the end, but the vast majority made it to the final session. Thanks were given all round, especially to everyone who helped out or organised. There was a discussion about the format of the whole event, and it was general concensus that sleepover was an integral part of the event, and a one-day format wouldn’t be the same (besides, when would we play Werewolf?!).

As a first-time BarCamper, would I go again? Most definitely! It was fantastic to meet such great people – going to PubStandards with some of them regularly is one thing, but this is a chance to “jam” in a completely different way. There was laughter in the air virtually all the while during social times, and you could almost see the ideas sparking off each other during the speaking sessions.

So, we departed until next time, full of inspiration and in need of some sleep!

[All wrapped up, and the photos are posted on Flickr already.

Misc Bits

Friday, February 9th, 2007 at 5:26pm

Pubstandards Logo
First off, a quick update on the Pubstandards logo comp – Kapowaz has set up a group on Flickr for the challenge, and there’s now quite a few entries.

BarCamp Worries
I’ve got my ticket for next weekend’s BarCampLondon2 – but I’ve still got little idea what I’m going to present. There will be plenty of folks there who are better able to say something new about CSS, Microformats or whatever. So I think I might go a bit lateral and perhaps do something biased towards the photography. We’ll see.