rails ajax universal design

41
Rails+AJAX and Universal Design

Upload: jason-kunesh

Post on 28-Jan-2015

106 views

Category:

Technology


3 download

DESCRIPTION

This is my presentation from RailConf 2006 on considerations for designing with accessibility.

TRANSCRIPT

Page 1: Rails Ajax Universal Design

Rails+AJAX and

Universal Design

Page 2: Rails Ajax Universal Design

Today’s talk in 3 parts

Universal Design, Accessibility and Usability

User centered design for the Agile process

Ajax and Rails make Universal Design easy

Page 3: Rails Ajax Universal Design

What is universal design?“A focus on designing products so that they are usable by the widest range of people operating in the widest range of situations as is commercially practical.” - Dr. Gregg Vanderheiden

Also called “inclusive design” by industrial or product designers

There is debate regarding the relationship of usability to accessibility

Page 4: Rails Ajax Universal Design

Accessibility is for...People with disabilities

People with technical or cultural disadvantages• Old computers and/or slow Internet connections

• English as a second language, non-native speakers, cultural mis-translations, etc.

Sensory blindness, low vision, color-blindness, deafness (we don’t do smell or taste, yet.)

Motor speech or physical impairments

Cognitive speech aphasia, dyslexia

Page 5: Rails Ajax Universal Design

Accessible technologyPerceivable Content must be perceivable to each user

Operable User interface components in the content must be operable by each user

Understandable Content and controls must be understandable to each user

Robust Content must be robust enough to work with current and future technologies

POUR

Page 6: Rails Ajax Universal Design

Usable technology“Usability: the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use.” - ISO-9241

Jakob Nielsen in Usability Engineering cites 5 factors:

• Learnability• Efficiency• Memorability• Errors• Satisfaction

SMEEL? SLEME? MEELS?

Page 7: Rails Ajax Universal Design

Epicenter or IUI design

37signals.com

“Start from the core of the page and build outward”

Microsoft: Inductive User Interface design

“...a new user interface model that suggests how to make software applications simpler by breaking features into screens or pages that are easy to explain and understand.”

Page 8: Rails Ajax Universal Design

Steve Krug’s Trunk Test

What site is this?

What page am I on?

What are the major sections of this site?

What are my options at this level?

Where am I in the scheme of thing?

How can I search?

Page 9: Rails Ajax Universal Design

Heuristic EvaluationDiscount usability evaluation method by Nielsen and Molich (1990)

• Visibility of System Status• Match Between System and the Real World• User Control and Freedom• Consistency and Standards• Error Prevention• Recognition Rather than Recall• Flexibility and Efficiency of Use• Aesthetic and Minimalist Design• Help Users Recognize, Diagnose, and Recover from Errors• Help and Documentation

Page 10: Rails Ajax Universal Design

Tog’s First PrinciplesTog has a good introduction to interaction design concerns. Because it’s Tog, it’s fairly idiosyncratic.

“The time to acquire a target is a function of the distance to and size of the target.” - Fitts’ Law

Fitts’ Law Applied

• For desktop design, this means corners and edges of the screen are ideal

• For web design, it means big buttons are beautiful

• For both environments, the center of the screen is a great hotspot

Page 11: Rails Ajax Universal Design

Why is it important?

Reach more people• By 2020, estimates are 40 million Americans will have a visual disability

• 1.5 million+ blind and visually impaired Americans access the Internet

• Search engine benefits

• Graceful degradation for lazy support of handheld, PDAs or text-based browsers

Legal protection

Increased public approval

It’s the right thing to do

Page 12: Rails Ajax Universal Design

People with disabilities

People with technical or cultural disadvantages• Page optimization, alt text (in case they turn off images), etc.

• Language declaration, standardized access keys, etc.

How do we accommodate users?

Sensory Web standards XHTML+CSS Multimedia (podcasts, mpgs) must be transcribed

Motor Assistive hardware

Cognitive Cognitive impairments such as speech aphasia, are often not addressable

Page 13: Rails Ajax Universal Design

Visual disability != blind

•Age-related macular degeneration (AMD), glaucoma, cataract, and diabetic retinopathy are the most common eye diseases in Americans age 40+

•8% of males and 0.4 - 2% of females are color blind

Page 14: Rails Ajax Universal Design

Screen magnifiers•Application magnifies some or

all of screen for users with partial vision; apps may also invert the colors for greater contrast

•Included in operating systems (WinXP, Mac OS X) or available as a standalone application (ZoomTest)

Page 15: Rails Ajax Universal Design

Screen readersMake 2D visual content 1D (serialization) then it reads it.

• Job Access With Speech (JAWS)

• Integrated with OS

• These apps offer modes for applications: web mode, form browsing mode

• IBM Home Page Reader (browser)

Page 16: Rails Ajax Universal Design

Blind usersBlind users more capable than sighted of grokking serialized content. In one study, novice blind screen reader users were able to comprehend speech at 370 words per minute; accomplished users could listen at 490 wpm or more.

Here’s 100 wpm

Is Thomas here?

Page 17: Rails Ajax Universal Design

Assistive hardware

Datahand Personal Edition

Headwand

For motor disabilitiespredictive keyboards, on screen keyboards, eye-tracking systems, mouse by mouth

Sip and puff system

Page 18: Rails Ajax Universal Design

Legal + W3C framework

34 Web Content Accessibility Guidelines

Recommended you solve

You should solve

Priority 2 Priority 3

Americans with Disabilities Act,

1990

You must solve

Priority 1

14guidelines

Section 508a Rehabilitation Act Amendments o'98

66 guidelines!

e-Europe 2002 2010

European UnionAccessibility Standards

WCAG 1.0 WCAG 2.0http://www.w3.org/TR/WCAG20/

Final commentsdue 05/31/2006

?

?

AUS:1992JAP, UK:1999CAN:2000

ITA, NZ:2001

Section 255 Telecom.

Act of 1996Section 608bRiot Act of '12

216guidelines?!?

Page 19: Rails Ajax Universal Design

Ewwwww... lawyers

These cases are often to shame the site or service into accessibility

• Ramada.com and Priceline.com investigated in NY state under ADA

• Access Now, Inc. v. Southwest Airlines, Co.

• America Online sued

• Target.com sued February, 2006 for excluding “the blind from full and

equal participation in the growing Internet economy”

Page 20: Rails Ajax Universal Design

Why do I care?You may be a developer, designer, or sweeper. Regardless, the user is your responsibility.

Yes, you, the one who argues the pros and cons of distributed DB transactions and multiple inheritance with your friends.

You have a form factor that is mutable in appearance, behavior, content and context.

Good software lets customers have their cake and eat it, too. Don’t bar users with special needs or make them sit at the “separate but equal” lunch counter.

Black turtleneck optional.

Page 21: Rails Ajax Universal Design

How do I know what I’m doing to whom?

Page 22: Rails Ajax Universal Design

Introduction to personasAlan Cooper has a saying:

When boarding a plane, software engineers turn left, mere mortals turn right.

Most of us don’t want to know how the plane flies, we just want to get where we’re going.

Page 23: Rails Ajax Universal Design

Why personas?

You are not a user.

Your customer may be a user, but not a typical one. Users don’t often get to design the UI.

Cooper’s 4 truisms:• There is no “Elastic User”• Being the victim of a problem doesn’t mean you know the solution• Designing with equal weight for all users leads to a weak interface• Real users (an audience of one) are often quirky. Personas smooth out the

rough edges

from About Face 2.0

Page 24: Rails Ajax Universal Design

Agile PersonasCooper and Reimann make the point that coders cannot simultaneously be designers. They claim it is a mental stretch that isn’t easily made.

Cooper invests weeks or months in doing discovery and primary research to drive product development strategically.

It’s okay, we’re not doing it solo.

We are going to go Agile, and work with the customer to define our personas.

Page 25: Rails Ajax Universal Design

Agile PersonasCore Principles of Agile Modeling

• Assume Simplicity• Embrace Change• Enabling the Next Effort is Your Secondary Goal• Incremental Change• Maximize Stakeholder Investment• Model With a Purpose• Multiple Models• Quality Work• Rapid Feedback• Software Is Your Primary Goal• Travel Light

Page 26: Rails Ajax Universal Design

Personas in actionMake many personas, and as you work with the customer, you will discover the primary persona. (Multiple models, Maximize stakeholder investment)

Dial in to the level of fidelity you need now. You can always add metadata like education, emotional profiles, etc., later. (Embrace change, incremental change)

Often times the work can provide insight, but you need to turn it into results.

Update personas over time, keep them current as you learn about your users and their demands change.

Page 27: Rails Ajax Universal Design

Persona attributesName, sex, age range, technical/domain experience, job.

User goals. The most important part.

Primary, secondary or negative personas. The most... well, another important part.

One to two paragraph narrative of persona’s personal experience.

Can have multiple personas in any role.

Get a picture from Corbis, Getty, flickr, or google.

A quote from the persona.

Page 28: Rails Ajax Universal Design

Where do you find data?From your customer

• They may have marketing segmentation studies, surveys, or contact info for users

• Don’t let them be evil about it.

Do a task analysis or contextual inquiry

Grab some research from Jupiter Research, etc.

Google for personas you can extend

Use diveintoaccessibility.org’s personas for people with disabilities

Examine your logs

Engage groups--user groups, support groups, pay a recruitment firm

Page 29: Rails Ajax Universal Design

Task analysisHelps to understand how people do analogous tasks in the world today.

• It may be a software-based solution to improve (more on this later)• You could be creating something entirely new, and be looking for convenient

metaphors

Common questions:• How often (frequency) do you...• How long (duration) do you...• Importance (critical function, like stopping a reactor) to you...• What tools do they use to do it today?• Do they use forms to do it (paper, online, etc.)?• Probe for internet usage, technical experience• Try to get a sense of their day to day world

Page 30: Rails Ajax Universal Design

Um, this is RailsConf!

Intelligent URL design, with three or fewer attributes, helps users and search engines. Use labels and terms that resonate with the personas.

Scaffold forms are accessible out of the box, there’s comprehensive layouts and shared partials to provide accessibility features such as jump navigation, accesskeys, and relative links. Consistent filenaming conventions aids both search engines and the disabled, especially if you use whole words, and not abbreviations.

Page 31: Rails Ajax Universal Design

Rail’s newness lends to a progressive enhancement technique as you build new sites and products

Rail 1.1’s adoption of new methods (e.g., Streamlined) offer the possibility of componetizing those aspects of accessibility once strategies are developed.

Check out http://diveintoaccessibility.org/ Mark Pilgrim lays out the code-related issues far better than I could hope to here.

I also highly recommend Jim Thatcher’s site and the book he edited http://www.jimthatcher.com/ and Constructing Accessible Websites.

Um, this is RailsConf!

Page 32: Rails Ajax Universal Design

Graceful degradation,Progressive enhancementGraceful degradation

• A lithe solution to presentation. What happens to agents who don’t understand all this semantic markup, images, css?

• A stumbly solution to interaction. It’s not as easy as cross-browser DOM scripting, which means it’s really murky, indeed. What happens without javascript? What happens with funky implementations of Javascript?

Progressive enhancement• As you add more interactivity, from Web 1.0 to Rich Internet Application type features,

ensure the prior, less interactive version is not broken.• There are still no clear solutions for AJAX and screen readers.• http://hesketh.com/publications/progressive_enhancement_paving_way_for_future.html

Text Alternative• If all else fails, you can punt them to a text site... if you can keep it updated.• Separate but equal? Violates the DRY principle, unless you write code to generate it.

Page 33: Rails Ajax Universal Design

Rails Scaffold Web 1.0?Dave Thomas mentioned in the keynote these need to be moved forward to web 2.0 (no SM). He is absolutely right.

They also need to keep their roots via progressive enhancement since we can’t always filter for accessibilized user agents or gracefully degrade with AJAX

Scaffold form tags are well-formed. Create good labels, then leave them alone:

Page 34: Rails Ajax Universal Design

Ajax and ScreenreadersSupport is uneven across agents. Disabled users could be using the same browser you are right now.

On Script.aculo.us with JAWS:• Autocomplete works fine• Using the drag’n’drop cart you don’t hear a whisper.

James Edwards has some recent findings here:

http://www.sitepoint.com/article/ajax-screenreaders-work

Page 35: Rails Ajax Universal Design

No accessibility,no usability

(no product)

Page 36: Rails Ajax Universal Design

Accessibility without usabilityBig button phones are meant to serve people with visual or slight motor impairments, with large, high contrast buttons. A handset form factor limits the appeal and is not universal design.

In order to serve the needs of specific users, the designers emphasized features that make this phone less attractive to many users.

The more modern BT100 puts the numbers on the base and includes a handsfree mode.

Page 37: Rails Ajax Universal Design

Usability without accessibility

This car seat is a human factors wonder, designed to accommodate people of many shapes and sizes, from Gilbert Brown to Kerri Strug.

It is not meant to be accessible.

Page 38: Rails Ajax Universal Design

Accessibility as usabilityThe famous OXO Good Grips tools came from a kitchenware manufacturer, Sam Farber. Upon retirement he observed the impact of non-accessible tools upon his wife’s arthritic hands.

These category-leading utensils are pleasurable for everybody to use.

Incorporating human factors and engineering to determine the form, such as oval handles that spread force evenly across the hand.

Page 39: Rails Ajax Universal Design

Big future endnote

Ruby on Rails is fast becoming the API for web applications, UI to DB, like the Windows API once was for desktop applications.

Let’s build this platform for everyone, and learn from the mistakes of the past, when accessibility was an afterthought.

Page 40: Rails Ajax Universal Design

I said I’d have more examples, and I simply ran out of time. Please do download a screenreader or use VoiceOver. Feel the frustration.

My apologies to other speakers--I struggled with a sick daughter all week, and finalized this presentation on-site. Sorry for being the rude guy typing in the back of the room, believe me, it hurt me more than it hurt you.

All the links and references mentioned here can be found at: http://del.icio.us/jdkunesh/ tagged accessibilty and/or usabiility

[email protected]

Thanks, Errata, and Apologies

Page 41: Rails Ajax Universal Design

Shameless pluggery

I worked out many of the methods for doing this while working on revizit.com in graduate school.

If you’re interested, you can sign up to be a part of our beta test group, and tell us how bad the app sucks. You guys are a negative persona. ;-)

http://revizit.com/