Slide 1

Slide 1 text

Accessible Widgets Eric Eggert, Knowbility & W3C AccessU 2016, May 9th

Slide 2

Slide 2 text

Eric Eggert Germany 2013–today: W3C/WAI 2016–today: Knowbility TranslaHng WCAG to Human.

Slide 3

Slide 3 text

Times Day & Time Room Presenter Topics May 9th, 10:15-11:45 JBWS 165 Patrick Fox Focus management, Announcing dynamic content, Tool Hps, Modal dialogs, Dynamic table filtering and sorHng May 9th, 4:00-5:30 JBWS 163 Eric Eggert Date picker, Time field, Combo box, Progress bar May 10th, 10:15-11:45 JBWS 163 Eric Eggert Slider, Accordion control, Tabs, Alerts May 10th, 2:15-3:45 JBWS 163 Patrick Fox Eric Eggert Wizard progress indicator, File selector and upload, Form validaHon, Search by locaHon, Dynamic applicaHon page elements and flow

Slide 4

Slide 4 text

Date picker, Time field, Combo box, Progress bar

Slide 5

Slide 5 text

Context

Slide 6

Slide 6 text

User Experience

Slide 7

Slide 7 text

Usability

Slide 8

Slide 8 text

To ARIA or not to ARIA?

Slide 9

Slide 9 text

1. If you can use a naDve HTML5 element or aJribute with the semanDcs and behaviour you require already built in, instead of re-purposing an element and adding an ARIA role, state or property to make it accessible, then do so.

Slide 10

Slide 10 text

2. Do not change naDve semanDcs, unless you really have to.

Slide 11

Slide 11 text

Example:

heading button

Slide 12

Slide 12 text

Example:

heading button

Slide 13

Slide 13 text

3. All interacDve ARIA controls must be usable with the keyboard.

Slide 14

Slide 14 text

Example: If using role=button the element must be able to receive focus and a user must be able to activate the action associated with the element using both the enter (on WIN OS) or return (MAC OS) and the space key.

Slide 15

Slide 15 text

4. Do not use role="presentaDon" or aria-hidden="true" on a visible focusable element .

Slide 16

Slide 16 text

5. All interacDve elements must have an accessible name.

Slide 17

Slide 17 text

All the Demos! h]p:/ /codepen.io/collecHon/nqBLjL/

Slide 18

Slide 18 text

Date Picker

Slide 19

Slide 19 text

HTML5 input type="date" The input element with a type a]ribute whose value is "date" represents a control for secng the element’s value to a string represenHng a date.

Slide 20

Slide 20 text

HTML5 input type="date" Date

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

ARIA Enabled h]p:/ /www.w3.org/TR/wai-aria-pracHces/#datepicker

Slide 29

Slide 29 text

Date Picker Examples • www.oaa-accessibility.org/examplep/datepicker1/ • freqdec.github.io/datePicker/demo/#demo-1 • whatsock.com/tsg/Coding%20Arena/ARIA %20Date%20Pickers/ARIA%20Date%20Picker %20%28Basic%29/demo.htm • blog.fastmail.com/2015/12/15/the-anatomy-of- a-good-date-and-Hme-widget/

Slide 30

Slide 30 text

Time Field

Slide 31

Slide 31 text

HTML5 input type="2me" Time

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Or: HTML5 input w/ datalist Time 1pm 2pm 3pm

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

Time Field Example • blog.fastmail.com/2015/12/15/the-anatomy-of- a-good-date-and-Hme-widget/

Slide 36

Slide 36 text

Select Time 1pm 2pm 3pm

Slide 37

Slide 37 text

Combo Box aka Autocomplete

Slide 38

Slide 38 text

Remember? HTML5 input w/ datalist Time 1pm 2pm 3pm

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

Combo box Example • www.oaa-accessibility.org/example/10/

Slide 41

Slide 41 text

Progress Bar

Slide 42

Slide 42 text

HTML5 progress element‽ 60% Loading

Slide 43

Slide 43 text

Progress bar Example • h]p:/ /getbootstrap.com/components/#progress- label • www.oaa-accessibility.org/example/27/

Slide 44

Slide 44 text

Sources: • Font: Lato • Skull: Created by Andrew Cameron, from the Noun Project