Building the Web for Everyone

Accessibility 101

Who Am I?

Gregory Tarnoff

Father. Veg*n. Buddhist. Web Developer. Mobile Developer. Accessibility Advocate. Community Organizer. Photographer. Father’s Rights Advocate. Tinkerer. Logician. http://tarnoff.info

Why Accessibility?

20% of the population struggles to use the web

Who to Consider

  • Blind & Color Blind
  • Motor Control (try dropdowns with a keyboard)
  • Deaf
  • Learning Needs

Test Early, Test Often

Get users of assistive technology testing with you

Progressive Enhancement

Progressive Enhancement =

HTML

If it doesn't work now, it won't be very accessible

Progressive Enhancement =

HTML +

CSS

Progressive Enhancement =

HTML +

CSS +

JavaScript

Progressive Enhancement =

HTML +

CSS +

JavaScript +

Video and Audio

Use HTML5

HTML5 Powered

Screen readers are keeping up with it.

(and Modernizer for older browsers)

Flexible, Resizeable Design

Nav or Skip Links

Remove redundant actions when accessing content

Keyboard Accessible Navigation

Remember what I said about drop down menus?

Multiple Access Points

Tell the User Where They Are

Change Context Only on User Initiation

Consistent Navigation

Make Focused Elements Visible

Use Plenty of Contrast

Organize: Headers, Sections, Hierarchy

Transcripts for Video & Audio

Don't forget to test play, pause, scrub and volume buttons

Alt Attribute for Images

(if not decorative)

Names, IDs, and Labels for Form Fields

Context Sensitive Help

Tables Are for Data Only

(and only if really needed)

Relay Information in Multiple Methods

People learn by seeing, reading, hearing and doing

Learn and Use ARIA Right

Roles, States, and Regions are your friends, especially if you like RIA

ARIA Roles

Tell screen readers what your divitis does

Header, Footer, Banner, Tabs, Trees, Slider, Etc.

ARIA States

Add meaning about relationships and states

Change with user and server interaction

Busy, Selected, Invalid, Pressed, Expanded, Etc.

ARIA Live Regions

Areas that change dynamically

Alert user with "politeness"

aria-live="rude" is an attribute

This will interrupt workflow, use cautiously

Resources

And yes, this presentation is accessible (and mobile friendly).