1 of 45

Principles of Accessibility

OpenWest 2014

2 of 45

Introductions

Dallas Despain

Developer at ThomasArts

Slides and intro: https://joind.in/talk/view/10975

Examples: https://github.com/pandaPowder/accessibility-demos

3 of 45

Improving lives

The Internet is the most important single development in the history of human communication since the invention of call waiting. -Dave Barry http://bit.ly/16MUUsx

  • Internet is a game changer for everyone
    • especially for disabled people
  • It’s about impacting people
  • Higher Purpose

4 of 45

Why worry about it?

5 of 45

Roadmap

  • Overview
  • Disability types
  • Assistive technology
  • Principles
  • Laws
  • Testing
  • Alt Text Basics
  • Forms Basics
  • HTML5, ARIA and fancy pants

6 of 45

What is it?

“…the development of information systems flexible enough to accommodate the needs of the broadest range of users … regardless of age or disability.” [3]

Parallels in the physical world

  • Wheelchair ramps
  • Parking spaces
  • Accessible restrooms
  • Sign Language Interpreters
  • Captioning on TV/DVD’s

7 of 45

Who needs it?

What percentage of people are impacted by disabilities?

  • 15-20% of people consider themselves disabled [1]

Photo Credit: knowyourmeme.org

8 of 45

Types of Disabilities

What types of disabilities can you think of?

  • Visual
  • Auditiory
  • Cognitive
  • Motor
  • Seizures

9 of 45

Assistive Technology

Disabled users use technology to help them access the internet

Output

  • Screen readers
    • JAWS, Window Eyes, NVDA, VoiceOver, Talkback
  • Braille devices
  • Screen Magnifiers

10 of 45

“How quaint”

11 of 45

Input Devices

Beyond keyboard

  • Joysticks/ mouth sticks
  • foot pedals
  • eye tracking
  • speech recognition

12 of 45

A wider audience

Accessibility issues affect “us” too!

  • glasses, aging - good contrast
  • Demo site inaccessible to keyboard

"Google is, for all intents, a blind user. A billionaire blind user with tens of millions of friends, all of whom hang on his every word. I suspect Google will have a stronger impact than [laws] in building accessible websites."...

-Karsten M. Self

13 of 45

Accessibility and Usability

  • The aims of future friendly content/adaptive web support the aims of accessibility
  • Good accessibility helps usability

“Good design and a good user experience go a very long way toward making a site more accessible

-Clarissa Peterson, UX Designer [2]

14 of 45

15 of 45

Laws

16 of 45

Section 508

  • U.S. Only
  • 1998, Part of Rehabilitation Act
  • Limited scope
  • Applies to federal government and many states
  • Refresh some time soon (Fall 2014)?

17 of 45

WCAG 2.0

  • Internationally accepted
  • Finalized December 2008
  • Principles based
  • Easier to verify compliance
  • Technology agnostic

18 of 45

Principles (WCAG2)

  • Perceivable
  • Operable
  • Understandable
  • Robust

19 of 45

Perceivable

  • Discoverable through sight, hearing or touch
  • Text alternatives
    • Text can be easily changed to another format
    • Alt text on images, captions on video/audio
  • Mark up relationships and structure to preserve them when format changes
    • Lists, headings, paragraphs, labels, headers for tables
    • Don’t rely on visual location/proximity for this

20 of 45

Perceivable Example

21 of 45

Operable

  • Keyboard operable!
    • Generally ensures operability with any alternative input device (avoid “click here”)
  • Allow user control over time-sensitive functionality
  • Avoid flashing that might cause seizures
  • Provide ways to navigate, find content, and determine where they are
      • Labels on forms, bread crumbs, consistent navigation, skip navigation

22 of 45

Understandable

  • Both content and functionality need to make logical sense
  • Readability, Plain Language writing, avoid technical jargon
  • Navigation should be consistent, and well organized
  • Input assistance/error recovery
  • Hard to verify without manual testing

23 of 45

Understandable Example

24 of 45

Robust

25 of 45

Evaluating Accessibility

  • Automated Tools
  • Manual Testing
    • Keyboard only!
    • Use JAWS or NVDA and turn off monitor
    • If possible ask disabled users to test

26 of 45

Demo wave evaluation

27 of 45

Alt Text Essentials

  • Every image needs an alt attribute!
    • Even if it is “null” (alt=“”)
  • Alternative text can be presented two ways:
    • Within the alt attribute
    • By the surrounding context
  • Alt text shouldn’t be redundant

http://webaim.org/techniques/alttext/

28 of 45

More Alt Text

  • Linked images must have alt text
    • otherwise, the user has no idea where the link might go.
  • Images that are purely decorative and convey no information should be set to alt=””
  • If the image contains text then it definitely conveys information

29 of 45

Zeratul

  • Total boss
  • Cloaked
  • Blink
  • Void prism ability

30 of 45

Label Essentials

  • Every form field needs a label
  • …<label for=“firstName”>… <input id=“firstName” />
  • If several form fields make up one control, use <fieldset> and <legend> to group them together
  • Placeholder is really cool, but it’s not a label!
    • http://bit.ly/1uvAW3g

31 of 45

Fieldsets

  • With fieldset and legend

  • Without fieldset and legend

  • Which is easier?

32 of 45

But what about my beautiful design?

You can hide stuff offscreen and screen readers will still read it.

Use with caution

Could this benefit

everyone?

33 of 45

Form Validation

  • Don’t rely on Javascript alone for validation
  • Clearly identify validation errors
    • Don’t rely on color alone
    • use aria-invalid
    • use html5 required attribute
  • Make it easy to recover from a failed submission

http://webaim.org/techniques/formvalidation/

34 of 45

Semantic markup

  • use <th> and scope on data tables
  • proper use of lists
    • don’t style a bunch of divs to look like a list
  • Proper headings
    • One and only one <h1> per page
    • try not to put <h3> before <h2> etc...
  • Don’t sacrifice semantics for visual design
  • Separate content and presentation
  • <em> and <strong> vs <i> and <b>

Photo Credit: http://www.flickr.com/photos/dullhunk/3525013547/

35 of 45

Javascript Event handlers

  • device independent handlers

  • Stars have mouse hover effects
  • Implemented using mouseover and mouseout
  • Not keyboard accessible without focus and blur backups

36 of 45

ARIA

  • Accessible Rich Internet Applications
  • Seeks to expose same info to AT as desktop apps do
  • Allows for richer controls such as menus, dialogs, sliders, trees, etc…
  • Reminds me of Jedi mind tricks
  • Only works in FF3+, Chrome (limited) and IE8+ Use jQueryUI widgets when possible (YUI and Dojo are better)
  • http://www.w3.org/WAI/intro/aria.php

37 of 45

What about HTML5?

  • HTML5 is the ideal but...
  • Until support is better you should use both ARIA and HTML5
  • ARIA was designed to supplement native language semantics http://www.w3.org/TR/wai-aria/introduction

38 of 45

ARIA Landmarks

  • Vs skip links
  • Breaks document up into sections that are generally applicable to any site
  • Makes it very quick for users to jump around the site to quickly find information.
  • Can be combined with HTML5 elements.

http://blog.paciellogroup.com/2013/02/using-wai-aria-landmarks-2013/

39 of 45

Landmark Demo

40 of 45

Landmarks

Landmark

Purpose

Sister HTML5 Tag

banner

Logo, main heading, etc..

<header>

complementary

Supporting content (ads, stock ticker…)

<aside>*

contentinfo

metadata

<footer>

form

Section containing forms. Don’t put it on a div containing forms, not on forms itself.

main

main content. (no more than one)

<article>?

navigation

<nav>*

search

search box

41 of 45

ARIA Sampling

  • Roles
    • Landmarks
      • <header role=”banner”> (html5 with aria backup)
    • Dialog
    • Alert
    • Tree
    • Slider
    • ...
  • States and properties
    • Aria-*
    • Aria-checked
    • Aria-live
    • Aria-required
    • Aria-selected
    • ...

42 of 45

Resources

43 of 45

Implementation Resources

44 of 45

Contact info again

Dallas Despain

Developer at ThomasArts

Slides and intro: https://joind.in/talk/view/10975

Examples: https://github.com/pandaPowder/accessibility-demos

45 of 45

Notes