
World Usability Day at User Vision User Vision , November 2005 The User Vision office was a hive of activity on November 3rd as over 50 visitors tried to meet the challenges of User Vision 's ' Usability Obstacle Course ' . Visitors from a wide variety of companies came to User Vision to learn about usability first hand by trying to meet some of the common usability challenges we face in our modern world . User Vision prepared a series of ' obstacles ' to reveal the design features that can make or break the user experience , and everyone had a chance to see if they could succeed in the tasks such as : Setting the VCR to record a TV programme Buying a product online from a website Changing the ring tone on a mobile phone Transferring a song to an MP3 player - and then playing it Guessing the icon functions on a printer Opening the plastic packaging on a product - without using their teeth ! The epic battle : Man vs . VCR Some of the results are worth noting : Only half the vistors could change the ringtone on a Nokia 6630 mobile phone and most gave it a rating of ' very difficult ' , whilst 92 % could perform the task on a Samsung D500 It took an average of 3.12 minutes to set the VCR ( the slowest was over 6 minutes , and there was notable ( and audible ) exasperation in front of the telly ! Opening the packaging of a plastic wrapped CD took nearly 1 minute on average with the record being set at 9 seconds ( and a few broken nails in the process ! ) In the battle of the MP3 Players , the iPOD won handily over Creative 's Zen Micro , although previous familiarity with the popular pod no doubt helped some 9 % were unable to make an e-commerce purchase due to difficulties in using the site - something that many e-retailers should note Less than 60 % of people could figure out what the icons on our printer mean ( that 's why we 've had to stick little labels on them ! ) Printer icons - are these symbols supposed to MEAN something ? Now , there must be ringtones in here somewhere . . Many Eyes on Usability Testing - and Ears on Accessibility The other main event of the afternoon was a rolling programme of usability tests on a variety of sites , including e-government , finance , online travel and e-commerce . On one side of a one-way mirror in User Vision 's Usability test lab a test subject worked through tasks and described their impressions to a User Vision consultant , whilst on the other side up to a dozen observers were riveted on their every move and comment . There were some moments of teeth-gnashing frustration from the observers , who thought they could see what would be the most logical next step , which often was not seen by the test subject . The value of usability testing was clearly demonstrated , and the subject 's comments and actions clearly showed up some issues in the sites tested . In User Vision 's focus group room a demonstration of screen readers used by blind and partially sighted web users was a compelling introduction to web accessibility . Many visitors took the opportunity to ' hear ' their sites as a blind user would , whilst User Vision consultants explained the accessibility features or shortcomings . Certainly the importance of creating accessible sites was highlighted after getting an insight to how many disabled people use the web . Overall , World Usability Day at User Vision proved to be very successful and enjoyable for everyone taking part in the event . Not only did it help to raise awareness of usability but it allowed people to have an understanding of some of the obstacles that consumers and end users have when faced with the task of using an everyday product , software or website . More photos from the day A room with a view . Observers in User Vision 's usability test lab Viewers watching a compelling usability test from the observation room If you think its so funny , just wait until you try it ! Serious concentration from web and MP3 users Press enquiries : For further information on User Vision members of the media should contact Richard Leonard at Brazil PR on Tel : 01865 725 269 or email : 