world usability day keyboard accessibility 12.11.2009

68
Keyboard accessibility Patrick H. Lauke / World Usability Day / Duesseldorf / 12 November 2009 BASIC STEPS TOWARDS A MORE USABLE AND ACCESSIBLE SITE

Upload: patrick-lauke

Post on 02-Jul-2015

1.649 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: World Usability Day Keyboard Accessibility 12.11.2009

Keyboard accessibility

Patrick H. Lauke / World Usability Day / Duesseldorf / 12 November 2009

BASIC STEPS TOWARDS A MORE USABLE AND ACCESSIBLE SITE

Page 2: World Usability Day Keyboard Accessibility 12.11.2009

accessibility = blind users + screenreaders?

Page 3: World Usability Day Keyboard Accessibility 12.11.2009

difficult to test – need to install and learn screenreader

Page 4: World Usability Day Keyboard Accessibility 12.11.2009

many different forms of disability

Page 5: World Usability Day Keyboard Accessibility 12.11.2009

keyboard or keyboard-like interfaces

Page 6: World Usability Day Keyboard Accessibility 12.11.2009

easiest to test…no special software required

Page 7: World Usability Day Keyboard Accessibility 12.11.2009
Page 8: World Usability Day Keyboard Accessibility 12.11.2009
Page 9: World Usability Day Keyboard Accessibility 12.11.2009

by default users TAB

Page 10: World Usability Day Keyboard Accessibility 12.11.2009
Page 11: World Usability Day Keyboard Accessibility 12.11.2009

using keyboard, move from one focusable element to the next

Page 12: World Usability Day Keyboard Accessibility 12.11.2009

standard focusable elements:links, form elements, image map areas

Page 13: World Usability Day Keyboard Accessibility 12.11.2009

TAB cycle – normally just source order

Page 14: World Usability Day Keyboard Accessibility 12.11.2009

tabindex forces a certain TAB cycle

Page 15: World Usability Day Keyboard Accessibility 12.11.2009

anything with tabindex takes precedence

Page 17: World Usability Day Keyboard Accessibility 12.11.2009

<input type="text" name="author"…tabindex="1" /><input type="text" name="email"…tabindex="2" /><input type="text" name="url"…tabindex="3" /><textarea name="comment"…tabindex="4"></textarea>

Page 18: World Usability Day Keyboard Accessibility 12.11.2009
Page 19: World Usability Day Keyboard Accessibility 12.11.2009
Page 20: World Usability Day Keyboard Accessibility 12.11.2009
Page 21: World Usability Day Keyboard Accessibility 12.11.2009
Page 22: World Usability Day Keyboard Accessibility 12.11.2009
Page 23: World Usability Day Keyboard Accessibility 12.11.2009

don’t forget the fancy styling

Page 25: World Usability Day Keyboard Accessibility 12.11.2009

a.action:hover {background-color:#a82310;color:#fff !important;text-decoration:none;

}#promo-dvd .content a:hover img {

background-color:#d5c7ae;}

Page 26: World Usability Day Keyboard Accessibility 12.11.2009

a:focus, a:hover, a:active { … }

Page 27: World Usability Day Keyboard Accessibility 12.11.2009

don’t suppress outline!

Page 29: World Usability Day Keyboard Accessibility 12.11.2009

keyboard accessible, but where am I?

Page 30: World Usability Day Keyboard Accessibility 12.11.2009

/* =Reset Styles - Thank you Eric Meyer (http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/) */html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {

margin: 0;padding: 0;border: 0;outline: 0;font-weight: inherit;font-style: inherit;font-size: 100%;font-family: inherit;vertical-align: baseline;

}:focus {

outline: 0;}

Page 31: World Usability Day Keyboard Accessibility 12.11.2009

/* remember to define focus styles! */

Page 32: World Usability Day Keyboard Accessibility 12.11.2009

why do designers suppress outline?

Page 33: World Usability Day Keyboard Accessibility 12.11.2009

“get your outline out of my design!”…is there a compromise?

Page 34: World Usability Day Keyboard Accessibility 12.11.2009
Page 35: World Usability Day Keyboard Accessibility 12.11.2009
Page 36: World Usability Day Keyboard Accessibility 12.11.2009

a { … overflow: hidden; }

Page 38: World Usability Day Keyboard Accessibility 12.11.2009

…only suppress it on :active

Page 39: World Usability Day Keyboard Accessibility 12.11.2009

easy enough…let’s drop in some JavaScript

Page 40: World Usability Day Keyboard Accessibility 12.11.2009
Page 41: World Usability Day Keyboard Accessibility 12.11.2009

keyboard accessible, butwhere’s the extra information?

Page 42: World Usability Day Keyboard Accessibility 12.11.2009

$('#whatever').hover(function() {…},function() {…}

);

Page 43: World Usability Day Keyboard Accessibility 12.11.2009

$('#whatever').hover(function() {…},function() {…}

);$('#whatever').focus(function() {…});$('#whatever').blur(function() {…} );

Page 44: World Usability Day Keyboard Accessibility 12.11.2009

aside: mobile browsers don’t do hover (well)

Page 45: World Usability Day Keyboard Accessibility 12.11.2009

lightboxes…we love ’em

Page 47: World Usability Day Keyboard Accessibility 12.11.2009

close it again on TABdon’t invent new keyboard shortcuts

Page 48: World Usability Day Keyboard Accessibility 12.11.2009

more complex solution: manage focus

Page 49: World Usability Day Keyboard Accessibility 12.11.2009

and now, the dangerous part…

Page 50: World Usability Day Keyboard Accessibility 12.11.2009

JavaScript attaches behaviour to anything

Page 51: World Usability Day Keyboard Accessibility 12.11.2009

$('div').click(function() {…} );

Page 52: World Usability Day Keyboard Accessibility 12.11.2009

sexy tutorials out there doing it wrong

Page 54: World Usability Day Keyboard Accessibility 12.11.2009

be lazy…use libraries that solved thisYUI, jQueryUI, etc

Page 55: World Usability Day Keyboard Accessibility 12.11.2009

beware 3rd party solutionseven the big boys can get it wrong

Page 56: World Usability Day Keyboard Accessibility 12.11.2009
Page 57: World Usability Day Keyboard Accessibility 12.11.2009
Page 59: World Usability Day Keyboard Accessibility 12.11.2009

hijack generated markup to accessify it

Page 60: World Usability Day Keyboard Accessibility 12.11.2009

in conclusion…

Page 61: World Usability Day Keyboard Accessibility 12.11.2009

leave tabindex alone – source order

Page 62: World Usability Day Keyboard Accessibility 12.11.2009

if you style :hover, also :focus and :active

Page 63: World Usability Day Keyboard Accessibility 12.11.2009

don’t suppress outline completely(reintroduce :focus and suppress :active)

Page 64: World Usability Day Keyboard Accessibility 12.11.2009

JavaScript on hover (mouseover/mouseout) also on focus/blur

(if focusable element)

Page 65: World Usability Day Keyboard Accessibility 12.11.2009

lightboxes and their problems

Page 66: World Usability Day Keyboard Accessibility 12.11.2009

only attach behaviour to focusable elements

Page 67: World Usability Day Keyboard Accessibility 12.11.2009

</rant>