15th March 2009
Breakfast was taken, taxi driver wasn't a conspiracy theorist... seemingly we've got this whole SXSW thing down now.
With opening reference to WCAG2.0 and Section 508, it is clear that accessibility and consideration of assistive technologies is important. This is why I was so impressed to see a Flash accessibility panel on the schedule. Not only is it important for the users, it is important for developers to know that it is possible to make Flash accessible (and how you can do it).
Accessibility for Flash and RIA's needs to consider:
The Fact that Flash has supported a level of accessibility since version 6 in 2002 was reiterated in addition to how Flex has also done so since version 1.5. For example when demoing a zoom magnifier tool we were shown how flash could react and instead of auto playing a video wait for a user action (so they don't miss the beginning - when it is off screen).
The panel also discussed how Adobe have released scripts for Jaws to add support for things like Roles that are more specific to flash than standard HTML (such as TreeView).
Using the Accessibility panel in the Flash authoring environment alt text can be added as well as the tabindex. This can be used to address text equivalents and meaningful sequence issues.
A demo of a card matching game showed all these techniques together. The user could tab through the cards and hit enter to choose. Each card identified itself through the alt text (which changed depending on if it was face up or down). Audio feedback for 'correct' or 'incorrect' actions were used, with the sound being pre-played to the user at the beginning of the movie so they were aware of what to expect. Accessibility.UpdateProperties() is utilised after any change to alt text to ensure that the UI responds with the new values while Accessibility.isActive() can be used to identify if the current user is using an assistive technology.
A slightly less realistic demo followed, with a whack-a-mole implementation using tabindex and audio 'mole' 'no mole'. I guess this is where the realisation comes that you are not attempting to provide a directly equivalent experience, more that you are exposing the same level of functionality to a user.
Inappropriate naming of items (adding 'button' to a name when it is already read out, making names too long etc) and background music interfering with audio alternatives were listed as mistakes often made in developing accessible Flash. Use of the wmode attribute is also known to cause accessibility difficulties and SWFObject was described as the most appropriate method of embedding flash content.
Unfortunately the accessibility implementation appears to be limited to Flash and Flex on windows. Adobe Air came up in Q&A, with accessibility coming soon for that (but again full support only coming to windows to start).
It was a shame that this panel was more business and law focused than I originally hoped it might be. In fact so much so, that not only did I barely make any notes, I almost fell asleep. Only to be woken by a heckler from the crowd taking issue with the statement that ownership issues "didn't matter" because as soon as something is online.. it's there and theres nothing but retrospective compensatory action that you can take.
Luckily for me the CSS3 panel didn't disappoint. With representatives from Microsoft, Mozilla and Opera (with the noted exception of an invited but uninterested Apple) we were bound to see some interesting stuff (Just a shame that Molly's over Americanness grated on me).
In terms of CSS 3 we were talking about nth Child selectors (with speed an issue but still faster than inserting classes using javascript), partial opacity, border images (currently in FF3.5 beta), multi column support, text shadow, box shadow, border radius, font size adjust, @font-face and @media based rules. Many of which have appeared in some form in many of the release versions of current browsers (but under different prefixed rule names).
The @media based rules were of particular interest. For example:
<style type="text/css"> /* no wider than 800px */ @media all and (max-width: 800px){ ...rules } </style>fig. 1.0
This allows excellent control over display for various user agents (such as handhelds that do not explicitly identify themselves as media handheld).
Combining a number of these CSS3 abilities together Opera had managed to draw their logo using only spans and CSS. On rollover it even animated across the screen.
According to the Microsoft representative IE8 will be the most complete implementation of CSS 2.1 at time of release. IE 8 will reference a blacklist of 'requiring IE7 Compatibility' sites. These sites will be displayed using the compatibility mode. Compatibility mode can also be manually toggled using the button in the toolbar. After a set number of toggles a site will be flagged into the IE process to addition to the blacklist. When a site is added to the black list it will be notified by Microsoft with instructions on how to run the site under IE8 standards mode to fix. The site can later be submitted back for approval to be removed from the list.
I came away from this talk pretty positive that a simple App really isn't too difficult to create... Time to buy an intel based Mac and test that theory I guess!
Bypassing some rather inane descriptions of what a delegate is and why json is better than just using your own string (cheers random questioner guy for this unnecessaryness) this talk made clear that iPhone dev is quite different from web dev. The hardware is 10 to 100 times slower in terms of processor/memory/capability than most web servers and memory management (garbage collection) is on you. The differences also extend to latency cues; similar to AJAX you have to ensure you indicate progress and wait times yourself.
Cocoa, XCode and Interface Builder open up a variety of components for easy UI creation (things like scrollable lists etc come for free). So for simple applications it's a matter of wiring up web service API calls to UI display components.
Mmmm Icon Cactus followed by meet on swords at Fogo de Chao in the evening was not only good in terms of food but also for meeting Richard Rutter and Paul Annett of Clear Left.
Having not made the trip down to Bournemouth for re:develop 1 or 2 it was great to be in attendance for it's third incarnation.
Making games over a weekend... competitively... and we chose a dead technology... why the hell not!
Hack Days are awesome. How could they not be? you get to make stuff with like minded people with no bosses, no client deadlines, no point but the love of it.
It's been a while since I posted. I'd like to say that's because a lot's been going on. In reality I got lazy and now I just happen to have something to write about that can make it sound like a lot has been going on.