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

World Usability Day Keyboard Accessibility 12.11.2009

Jul 02, 2015

Download

Technology

Patrick Lauke
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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>