88
MAKING YOUR WEB APPLICATION WORK FOR EVERYONE YAPC::EU:2016, Cluj-Napoca, Romania

YAPC::EU::2016, How to make your web application work for everyone

  • Upload
    jkva

  • View
    151

  • Download
    0

Embed Size (px)

Citation preview

Page 1: YAPC::EU::2016, How to make your web application work for everyone

MAKING YOUR WEB APPLICATION

WORK FOR EVERYONEYAPC::EU:2016, Cluj-Napoca, Romania

Page 2: YAPC::EU::2016, How to make your web application work for everyone

đź‘‹

Page 3: YAPC::EU::2016, How to make your web application work for everyone

JOB VAN ACHTERBERG

@DETONITE

PD5JOB

Page 4: YAPC::EU::2016, How to make your web application work for everyone

đź’ľ

Page 5: YAPC::EU::2016, How to make your web application work for everyone

🚀

Page 6: YAPC::EU::2016, How to make your web application work for everyone

đźš’

Page 7: YAPC::EU::2016, How to make your web application work for everyone

INCLUSIVE DESIGN

Page 8: YAPC::EU::2016, How to make your web application work for everyone

UNIVERSAL DESIGN

Page 9: YAPC::EU::2016, How to make your web application work for everyone
Page 10: YAPC::EU::2016, How to make your web application work for everyone

♿

Page 11: YAPC::EU::2016, How to make your web application work for everyone

🚲

Page 12: YAPC::EU::2016, How to make your web application work for everyone

👶

Page 13: YAPC::EU::2016, How to make your web application work for everyone

đź‘´

Page 14: YAPC::EU::2016, How to make your web application work for everyone

🏂

Page 15: YAPC::EU::2016, How to make your web application work for everyone
Page 16: YAPC::EU::2016, How to make your web application work for everyone
Page 17: YAPC::EU::2016, How to make your web application work for everyone
Page 18: YAPC::EU::2016, How to make your web application work for everyone
Page 19: YAPC::EU::2016, How to make your web application work for everyone

🚦

Page 20: YAPC::EU::2016, How to make your web application work for everyone

SEEHEAR

DISTINGUISHFEEL

Page 21: YAPC::EU::2016, How to make your web application work for everyone

MAKE IT USABLE

MAKE IT ACCESSIBLE

Page 22: YAPC::EU::2016, How to make your web application work for everyone
Page 23: YAPC::EU::2016, How to make your web application work for everyone

âť“

Page 24: YAPC::EU::2016, How to make your web application work for everyone

âť“

Page 25: YAPC::EU::2016, How to make your web application work for everyone

“ON THE CONTRARY, I THINK THE BLINK TAG IS AN EXCELLENT IDEA!”

Page 26: YAPC::EU::2016, How to make your web application work for everyone

“ON THE CONTRARY, I THINK THE BLINK TAG IS AN EXCELLENT IDEA!”

Page 27: YAPC::EU::2016, How to make your web application work for everyone

“THE POWER OF THE WEB IS IN ITS UNIVERSALITY. ACCESS BY EVERYONE

REGARDLESS OF DISABILITY IS AN ESSENTIAL ASPECT.”

Page 28: YAPC::EU::2016, How to make your web application work for everyone

“THE POWER OF THE WEB IS IN ITS UNIVERSALITY. ACCESS BY EVERYONE

REGARDLESS OF DISABILITY IS AN ESSENTIAL ASPECT.”

Page 29: YAPC::EU::2016, How to make your web application work for everyone

HOW?

Page 30: YAPC::EU::2016, How to make your web application work for everyone

YES WAIHTTPS://WWW.W3.ORG/WAI/

Page 31: YAPC::EU::2016, How to make your web application work for everyone

WEB ACCESSIBILITY INITIATIVE

Page 32: YAPC::EU::2016, How to make your web application work for everyone

WCAGHTTPS://WWW.W3.ORG/TR/WCAG20/

Page 33: YAPC::EU::2016, How to make your web application work for everyone

WEB CONTENT ACCESSIBILITY GUIDELINES

Page 34: YAPC::EU::2016, How to make your web application work for everyone

4 PRINCIPLES OF A11Y1. PERCEIVABLE 2. OPERABLE 3. UNDERSTANDABLE 4. ROBUST

Page 35: YAPC::EU::2016, How to make your web application work for everyone

GOOD DESIGN =

POUR DESIGN

Page 36: YAPC::EU::2016, How to make your web application work for everyone

“A11Y”

Page 37: YAPC::EU::2016, How to make your web application work for everyone

WAI-ARIAHTTPS://WWW.W3.ORG/WAI/INTRO/ARIA

Page 38: YAPC::EU::2016, How to make your web application work for everyone

SEMANTICS<h2 class=“story-title”>Undead Perl</h2>

<button aria-expanded=“true” aria-controls=“story”>Read more!</button>

<div id=“story”> Why won’t it die()!</div>

Page 39: YAPC::EU::2016, How to make your web application work for everyone

NATIVE ROLESBUTTON BUTTON

ANCHOR LINK

DIV[ROLE=LINK] LINK

Page 40: YAPC::EU::2016, How to make your web application work for everyone

DEMO TIME!

Page 41: YAPC::EU::2016, How to make your web application work for everyone

MAKE IT VISIBLE MAKE IT USABLE MAKE IT GROKABLE MAKE IT FLEXIBLE

Page 42: YAPC::EU::2016, How to make your web application work for everyone

WHY?

Page 43: YAPC::EU::2016, How to make your web application work for everyone

QUALITY

Page 44: YAPC::EU::2016, How to make your web application work for everyone

PROFIT

Page 45: YAPC::EU::2016, How to make your web application work for everyone

INDEPENDENCE

Page 46: YAPC::EU::2016, How to make your web application work for everyone
Page 47: YAPC::EU::2016, How to make your web application work for everyone

CRIPPLE-BUDDY™

Page 48: YAPC::EU::2016, How to make your web application work for everyone
Page 49: YAPC::EU::2016, How to make your web application work for everyone

IT’S JOBOUR

Page 50: YAPC::EU::2016, How to make your web application work for everyone

đź’©

Page 51: YAPC::EU::2016, How to make your web application work for everyone

USE SEMANTIC HTMLANCHORS GO PLACESBUTTONS PERFORM ACTIONS

ARIA IF NECESSARYINDICATE CUSTOM SEMANTICSPREFER NATIVE SEMANTICS

Page 52: YAPC::EU::2016, How to make your web application work for everyone

PROPER CONTRAST

Page 53: YAPC::EU::2016, How to make your web application work for everyone

PROPER CONTRAST

Page 54: YAPC::EU::2016, How to make your web application work for everyone

PROPER CONTRAST

Page 55: YAPC::EU::2016, How to make your web application work for everyone

LIGHT TEXT ON WHITE BACKGROUND

TINY TINY TINY TEXT

Page 56: YAPC::EU::2016, How to make your web application work for everyone

IMAGE ALT TEXT

Page 57: YAPC::EU::2016, How to make your web application work for everyone

CONTAINS TEXT? USE ALT.

CONTEXT RELEVANT? USE ALT.

PRESENTATIONAL? USE ALT.

alt=“Perl is very much alive!”

alt=“Larry Wall giving a thumbs-up”

alt=“”

Page 58: YAPC::EU::2016, How to make your web application work for everyone

FORM CONTROL LABELS

Page 59: YAPC::EU::2016, How to make your web application work for everyone

<input type=“text” id=“name” name=“name”><label for=“name”> Your name, please.</label>

<label> Your name, please. <input type=“text” name=“name”></label>

Page 60: YAPC::EU::2016, How to make your web application work for everyone

NAVIGABLE BY KEYBOARD

SHOW FOCUS OUTLINE

FOLLOW USER FOCUS

Page 61: YAPC::EU::2016, How to make your web application work for everyone

TABINDEX-1 MAKE FOCUSABLE0>0

NATURAL ORDERDON’T

Page 62: YAPC::EU::2016, How to make your web application work for everyone

SECTIONINGheader

footer

sectionaside

nav

article

main

search

Page 63: YAPC::EU::2016, How to make your web application work for everyone

HEADINGSH1…H6

Page 64: YAPC::EU::2016, How to make your web application work for everyone

HEADING LEVEL 1

HEADING LEVEL 2 HEADING LEVEL 3

HEADING LEVEL 2 HEADING LEVEL 3 HEADING LEVEL 4

Page 65: YAPC::EU::2016, How to make your web application work for everyone

SKIP LINKS

Page 66: YAPC::EU::2016, How to make your web application work for everyone

CAPTCHASGUILTY BY DEFAULT. PROVE YOUR INNOCENCE!

HARD TO SEE

HARD TO HEAR

HARD TO UNDERSTAND

Page 67: YAPC::EU::2016, How to make your web application work for everyone

DON’T DISABLE VIEWPORT ZOOM

Page 68: YAPC::EU::2016, How to make your web application work for everyone

<meta name=“viewport” content=“ width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=1; ” >

<meta name=“viewport” content=“ user-scalable=no; “ >

Page 69: YAPC::EU::2016, How to make your web application work for everyone

PROGRESSIVE ENHANCEMENT

Page 70: YAPC::EU::2016, How to make your web application work for everyone

HTML

CSS

JAVASCRIPT

Page 71: YAPC::EU::2016, How to make your web application work for everyone

SEPARATION OF

CONCERNS

Page 72: YAPC::EU::2016, How to make your web application work for everyone

MAKE IT WORK

Page 73: YAPC::EU::2016, How to make your web application work for everyone

RESPONSIVE DESIGN

Page 74: YAPC::EU::2016, How to make your web application work for everyone

JAVASCRIPT ANGULARIFY

YOUR REACTIVE ELECTRON UI

TM

Page 75: YAPC::EU::2016, How to make your web application work for everyone

HIJACK THE DOM

Page 76: YAPC::EU::2016, How to make your web application work for everyone

ASYNC REQS ROUTING LINKS -> BUTTONS LOCALSTORAGE MODALS MESSAGES

Page 77: YAPC::EU::2016, How to make your web application work for everyone

FEATURE DETECTION

Page 78: YAPC::EU::2016, How to make your web application work for everyone

MODEL: COMPOSE

FUNCTIONS

Page 79: YAPC::EU::2016, How to make your web application work for everyone

VIEW: COMPOSE SNIPPETS

Page 80: YAPC::EU::2016, How to make your web application work for everyone

CONTROLLER: CONTENT

NEGOTIATION

Page 81: YAPC::EU::2016, How to make your web application work for everyone

TOOLS

Page 82: YAPC::EU::2016, How to make your web application work for everyone

DEQUE’S AXE, WAVE CHROME TOOLS TENON.IO TPG CONTRAST CHECKER FILAMENT GROUP TOOLS

HTTPS://WWW.W3.ORG/WAI/ER/TOOLS/

Page 83: YAPC::EU::2016, How to make your web application work for everyone

VOICEOVERNVDAJAWS

DOLPHIN (SUPERNOVA)

ORCADRAGON

ASSISTIVE TECHNOLOGY

Page 84: YAPC::EU::2016, How to make your web application work for everyone

LINKS

Page 85: YAPC::EU::2016, How to make your web application work for everyone

WAI: HTTP://WWW.W3.ORG/WAI/

WCAG: HTTP://WWW.W3.ORG/WCAG/

WCAG QUICKREF: HTTPS://WWW.W3.ORG/WAI/WCAG20/QUICKREF/

WUHCAG: HTTP://WUHCAG.ORG

Page 86: YAPC::EU::2016, How to make your web application work for everyone

BOOKS

Page 87: YAPC::EU::2016, How to make your web application work for everyone

“APPS FOR ALL”, H. PICKERING

“ADAPTIVE WEB DESIGN”, GUSTAFFSON

“A WEB FOR EVERYONE”, HORTON

“DESIGNING WITH PROGR. ENH.”, FILAMENT GROUP

“A BOOK APART” SERIES

NORMAN/NIELSEN GROUP PUBLICATIONS

“THE DESIGN OF EVERYDAY THINGS”, NORMAN

Page 88: YAPC::EU::2016, How to make your web application work for everyone

THANK YOU!

JOB VAN ACHTERBERG @DETONITEPD5JOB

YOU’RE AWESOME.