You may be sick of hearing it, but Apple, and in particular their iPhone/Pod/Pad, are setting the standard for instinctive and usable interaction. And I’m sure the iPhone will influence the next generation of Flex components, but until then I’ve rolled one of my own.
My client was reporting the primary school children their app was aimed at were having trouble entering their (given) passwords, the logs showing some needing 20 or 30 tries. The iPhone way of entering passwords, showing the last letter typed, solves the issue of imprecise keying on a touchscreen. But it also serves as an accessible alternative for any user group who may need it.
I was going to post this as a Flash/Flex component, but it is so simple I may as well just post the code, then it is easily translatable into JavaScript, PHP, Processing or whatever is your flavour.
private var _passwordEntered:String = "";
// this will store the password as it is typed
passwordTI.addEventListener(Event.CHANGE, passwordEntry);
// the TextInput component - make sure "displayAsPassword" is turned OFF
private function passwordEntry(e:Event):void {
// update _passwordEntered with whatever has been typed
var newText:String = passwordTI.text;
if (newText.length < _passwordEntered.length) {
_passwordEntered = _passwordEntered.substr(0, newText.length);
} else if (newText.length > _passwordEntered.length) {
var diff:int = newText.length - _passwordEntered.length;
_passwordEntered += newText.substr(newText.length - diff, diff);
}
// hide the text in the field, apart from the last char
passwordTI.text = "";
for (var x:int = 0; x < _passwordEntered.length-1; x++) {
passwordTI.text += "•";
}
passwordTI.text += _passwordEntered.charAt(_passwordEntered.length-1);
}
The portfolio has just received a long overdue update, with some recent projects added to it, one of which being (slightly prematurely) the CD-Rom I am currently finishing off for Natural England, which I put together using Flex3 and AIR. I mention this because in the process of doing this project I have come to realise that I now owe Adobe a small apology.
A year ago O’Reilly books generously sent me a review copy of their Apollo For Adobe Flex Developers Pocket Guide. Apollo, or AIR as it has since been re-christened, was only at alpha stage when the book was released, and was full of bugs. I had spent a lot of time hacking away at both that and the documentation-less Flash 9 Alpha that had been released not long before. With AIR, even with the help from some of the development team, I couldn’t get even the most basic of applications to run. Because of my frustration (and because I thought I was oh-so big and clever) I wrote a deeply sarcastic review of the book for Blogcritics.
So this is my apology. I made my peace with Flash 9 and ActionScript 3.0 some time ago, and now, since AIR finally got it’s first 1.0 official release last month, I have had a complete u-turn in my opinion of that too. AIR is an utter delight to work with. And with Flex reaching version 3 to coincide with the release, they go together like Peters And Lee. Harmonious.
When I was schoolboy I used to tape music videos off the ITV Chart Show onto a Betamax tape recorder. This used to require studious attention and a steady hand over the pause button. Going back and re-editing a playlist was near impossible. Now the only place I see music videos is on YouTube, and they can be added to or removed from my favourites list with a click. This is what we call progress.
Similarly, back in the heady days of 2007 I used to blog using WordPress, which involved actually writing words, adding links, and embedding media using a WYSIWYG interface. It also required you to have something to write about in the first place. How primitive. In 2008 I’m using Tumblr.
If you’re in the mood for some outside the box thinking on interface design, how about putting a bit of physicality into your learning and controlling it with a Wii remote?
Already you can run Flash content on the Wii, and control it with the remote. But now there are third party apps for reading data from the Wii-mote on a Mac or PC.
Lets just ignore the accessibility considerations for now, and think about how much more fun eLearning would be if it involved flinging your arms about.
Transitions – utterly useless from a usability perspective? Rubbish.
Transitions can often contribute more to an application’s look and feel than fonts, colours and sounds. Most of what we present as multimedia comes down to pages of data, laid out attractively, with some way of navigating in-between them. But why have just a simple page to page sequence when, with thoughtful use of transitions, you can give a sense of space. A few examples:
http://www.leoburnett.com/
This is an old favourite, but still a goodie. It’s a portfolio site that is just a series of pages, but the way they are connected together makes it feel like a 3d environment to be explored. The pen scribble that you leave behind is the most inspired trick, as this a) orients you to show where you’ve been, b) leaves ‘evidence of use‘ behind as you explore (much underused in multimedia).
http://www.sixthsenseuk.com/
This is by our local chums futurlab, and I like it a lot. The desktop metaphor is a well used cliche, but to do it as smoothly as this you find yourself exploring just for the joy of watching the transitions, not just to find what you’re looking for.
http://www.wefeelfine.org/
This isn’t Flash, it’s processing, but there are plenty of great navigation ideas in here. In fact it’s essentially a site of nothing but experimental navigation ideas. Again, it is so visually appealing it wouldn’t matter if this was data about the sale of dental equipment, it would still be great.
There were two sessions at FOTB that got me thinking about transitions, especially as FM are planning a showcase site at the moment, which will be a great opportunity for a bit of experimental navigation. Firstly, Tink’s Flashing Flex talk, showed how simple it is to style Flex and not feel limited by the framework. There’s no reason Flex cannot have the same dynamic animation behind it as Flash does, because they are essentially the same product after all.
Secondly, Carlos Ulloa’s demonstrations of Papervision showed how it can be used for much more than just animating 3d fish and spaceships. Just a simple 3d transition between two planes can make the difference between an application being a series of pages to it being an “environment”. See Carlos’s work for Sony Bravia as a good example.
Multimedia and accessibility requirements can be the cause of much confusion. While it is inarguable that as producers of quality software we shouldn’t discriminate against any user, there is also a danger of over-compensating for accessibility requirements. Locking out any sub-group of potential users is never acceptable, but watering down the interactivity of an application so far that it loses sight of its original objectives should not be the solution.
Many organisations are feeling the pressure to bring accessibility to the forefront because of the legal implications of being seen to discriminate. But with confusion over the exact requirements of the law the tendency is to err on the side of caution and commission a ‘lowest-common-denominator’ designed application, just in case. The legal confusion gets even more complex when the target user base crosses national boundaries, as the majority of web content does, and so has to conform to a globeful of differing territorial law.
But there is no reason to lose one’s head over accessibility. It is just a matter of giving a little thought to the issues, and making sure no potential user is likely to be shut out of the experience. The idea of ensuring that all users, regardless of ability, have exactly the same user experience is probably misunderstanding the issue. A visually impaired user is never going to have the same experience as a sighted user for example, simply because the visual content is not available to them. So to compromise a sighted users experience too far to accommodate a non-sighted user is the wrong way of thinking about it. Instead it is important to think of ways we can give disabled users a comparative experience, within the context of their disability.
2.2 (p7): “The Act makes it unlawful for a service provider to discriminate against a disabled person by refusing to provide any service which it provides to members of the public.”
4.7 (p39): “From 1st October 1999 a service provider has to take reasonable steps to change a practice which makes it unreasonably difficult for disabled people to make use of its services.”
2.13 – 2.17 (p11-13): “What services are affected by the Act? An airline company provides a flight reservation and booking service to the public on its website. This is a provision of a service and is subject to the act.”
5.23 (p71): “For people with visual impairments, the range of auxiliary aids or services which it might be reasonable to provide to ensure that services are accessible might include … accessible websites.”
5.26 (p68): “For people with hearing disabilities, the range of auxiliary aids or services which it might be reasonable to provide to ensure that services are accessible might include … accessible websites.”
For the first provision you need to be clear on what constitutes the ’service’ you are providing. For eLearning the service is usually a training course, and the opportunity to complete it. This may mean removing barriers within the navigation; dependency on the mouse to progress for example, or providing audio alternatives to text.
Other territories have much stricter laws, Australia and Canada in particular. In the USA, Section 508 of the US Rehabilitation Act mandates that web content maintained by the federal government must be made accessible to people with disabilities. Section 508 is based on the W3C Priority 1 standard. Many legal standards are based on this W3C standard, either priority 1 or 2, which can cause difficulties. The W3C standard dates from 1999, and is inappropriate to anything apart from HTML (the majority of eLearning is Flash based currently, which barely existed in 1999). It is a little archaic (I love the provision it makes for ‘ascii art‘!) but is still useful. Although, it is actually quite easy to conform to the W3C, as most of the provisions are simply passed as ‘not applicable’. This is fine for legality, but not so good in ensuring accessible content.
There is also a key problem when it comes to eLearning that one of the lowest priority W3C requirements is that a page has to be able to function with scripts disabled. This means if you want your app hooked into an LMS, you cannot comply to even the lowest level of the standard.
User Focussed Design
My message is this: don’t take the letter of the law as your roap map to accessible content. If you do it will make for very sterile, non-user focused applications. Instead think about it from a user experience perspective. If you are task focussed, apply good user-centric design, and sensible building practices, meeting the requirements of accessibility law will just come naturally. Adhering to the law is the easy part, it is creating an engaging user experience that is the hard part. So don’t think legalities – think usability.
There are gains to be made by thinking outside the box on the issue, in order to stay focussed on your objectives. For example, if an application needs to cater for partially sighted, motor impaired, or any other user that might have difficulty with a traditional computer application, you might consider the cost/usability implications of making a written version of your content available by mail-order. This way you can cater for all users, without compromising the user experience of the majority. The approach you take should depend on the objectives of your content, not the medium of delivery. If you can meet these objectives in technologically agnostic ways, then you should feel free to do so.
As a final note, if you think accessibility considerations for eLearning are difficult, you should try making considerations for accessibility in the games industry (as I have had to in previous jobs). A game, by its nature, is designed to test motor skills, reaction times, etc. i.e. it is discriminatory by design. Although, if a user cannot play a game this is not really disadvantaging them more than they already are. But if you were to prevent them from buying a service, finding information, or completing an assessment it is a much more serious problem.
Further reading: There is a great case study on the RNIB site, examining the efforts made by J K Rowling website to reach all it’s readers.