Connecting the Accessibility Dots (Full Day Workshop)

A presentation at Accessibility Club Summit in November 2019 in Berlin, Germany by Eric Eggert

Slide 1

Slide 1

Connecting the Accessibility Dots

Eric Eggert · Accessibility Club Summit · November 2019

Slide 2

Slide 2

Eric Eggert

Eric Eggert is a Web Developer and Teacher who works with Knowbility and the W3C on improving the Web for People with Disabilities, and everyone else.

My name is Eric Eggert and I work with Knowbility and the W3C to improve the Web for People with Disabilities. I work with Knowbility and they donate 50% of my work time to W3C in a fellowship for which I’m very grateful.

Slide 3

Slide 3

Stars in the night sky.

Slide 4

Slide 4

Sagittarius

Stars connected to show Sagittarius in the night sky.

Connecting arbitrary dots that fits one’s own view.

Slide 5

Slide 5

Carina

Carina is a star constellation that is only visible from the Southern Hemisphere, so most of you might have never seen it.

Images: Till Credner, https://commons.wikimedia.org/wiki/User:Till_Credner

Slide 6

Slide 6

Let’s change perspectives!

Slide 7

Slide 7

Our rough plan for today:

10h–13h

  • This.
  • Intros.
  • Disabled People.
  • Guidelines.
  • Assistive Tech.

14h–17h

  • Planning & Managing.
  • Q&A.
  • Discussion.
  • The how and why of different solutions.
  • W3C Resources.

Slide 8

Slide 8

Who are you?

Slide 9

Slide 9

Disabled People & Guidelines & Assistive Technologies

Slide 10

Slide 10

You cannot talk about **accessibility** without talking about **disabilities.**

Slide 11

Slide 11

EJ Mason:

Love 2 b called “differently abled” because it suggests that I have some kind of paranatural ability beyond the ken of mortal man. And I do, but you can still just call me “disabled”. Promise.

Twitter: https://twitter.com/codeability/status/1195471433754796033

Slide 12

Disabled people are often shown as superheroes in media (here: Daredevil), with other senses becoming more strong, overcompensating for the disability. That is not the case in real life. Yes, blind people have techniques to use their hearing to augment and navigate the world but it is never a drop-in replacement for the ability to see.

Slide 13

Hallway fighting in Daredevil

Slide 14

Slide 14

The development of websites and apps often is carried out in less-than-desired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 15

Slide 15

Talking & Planning

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 16

Slide 16

Graphic Design (of an image of a website)

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 17

Slide 17

HTML/CSS/JavaScript

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 18

Slide 18

CMS

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 19

Slide 19

Content

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 20

Slide 20

Iterations

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 21

Slide 21

Performance

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 22

Slide 22

Security & Hotfixes

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 23

Slide 23

Data protection

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 24

Slide 24

Quality Control

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 25

Slide 25

Accessibility

…and often is carried out in less-thandesired ways: After talking and designing, implementing is often done before performance, content, security, data protection and, yes, accessibility, are considered.

Slide 26

Slide 26

Accessibility is a sign of good quality.

And that despite that we all know that accessibility is a sign of a good process and caring for it can result in a process that produces better quality websites.

Slide 27

Slide 27

“Designing inclusive software results in improved usability and customer satisfaction.” — Microsoft’s app developer guide

Don’t take my word for it.

Slide 28

Slide 28

Accessibility must be a foundational value

But that also means accessibility needs to be a foundational value in the process and everyone needs to live it and embrace it.

Slide 29

Slide 29

[alt: Neil Patrick Harris with a stack of papers that he arranges neatly, saying “hopes and dreams” on the cover. Then throwing it away behind himself.]

Slide 30

Slide 30

Pace Layers

Slide 31

Slide 31

Jeremy Keith introduced Pace Layers at Beyond Tellerrand:

The lowest level, Nature moves slowest, then, barely quicker moves culture, then governance, then infrastructure and commerce. Each changing a little bit quicker. On top there’s fashion which tries stuff out that gets commercially viable and can then slowly descend through the layers.

Slide 32

Slide 32

Basically the strategy is the lowest moving layer, then there’s scope, structure, skeleton and surface.

Slide 33

Slide 33

On the web, everything is built onto TCP/IP, then HTTP, URLs, HTML, CSS and Javascript, where the experimentation happens in JavaScript.

Slide 34

Slide 34

Accessible Web Development is Complicated

Slide 35

Slide 35

WebAIM Million Only 2.2% of the top 1 million websites are not inaccessible according to a study by our friends at WebAIM. That’s bad.

Slide 36

Slide 36

Observations → 60% of the 1 million home pages had ARIA present. → Home pages with ARIA present averaged 11.2 more detectable errors than pages without ARIA. → Pages with a valid HTML5 doctype had significantly more page elements (average of 844 vs. 605) and errors (average of 61.9 vs. 53.3) than those with other doctypes. → 2.1M layout tables were detected compared to only 114k data tables. Here are some more detailed observations from the study.

Slide 37

Slide 37

More Complex == Less Accessible

Slide 38

Slide 38

Taming that complexity comes with more complexity Many developers that get the task of implementing complex widgets add ARIA in an attempt to ensure accessibility. But that makes it even more complex.

Slide 39

Slide 39

[alt: Jodie Whittaker as Doctor Who, saying “I am too nice. This is what happens when you try to be nice.”]

Slide 40

Slide 40

Screen Reader Differences

Slide 41

Slide 41

“VoiceOver and Safari remove list element semantics when list-style: none is used.” — Scott O’Hara: “Fixing” Lists

Slide 42

Slide 42

Slide 43

Slide 43

“This was a purposeful change due to rampant ‘list’-itis by web developers.” — James Craig, Apple, bugs.webkit.org

Slide 44

Slide 44

What does it mean for me as a web developer that Safari is not reading lists when they don’t look like a list?

Slide 45

Slide 45

Nothing.

Slide 46

Slide 46

A Time Line 2014: First Commit 2015: Additional Code … No Changes … 2019: The Web Notices

Slide 47

Slide 47

“Customers seem much happier in the 3 years since this change went in.” — James Craig, Apple, bugs.webkit.org

Slide 48

Slide 48

dowebsitesneedtolookexactlythesameineverybrowser.com

Slide 49

Slide 49

The same it true for screen readers: They don’t all need to produce the same output.

Slide 50

Slide 50

Screen readers have extremely granular verbosity settings. In VoiceOver, you can chose between Medium, Low and High verbosity. Users can chose individually the level of verbosity they are comfortable with.

Slide 51

Slide 51

The same goes for punctuation. Some users might opt to hear most or all of the punctuation, some only to hear a couple.

Slide 52

Slide 52

You can even overwrite certain abbreviations or symbols. You can even make VoiceOver pronounce GIF as jiff, if you want to.

Slide 53

Slide 53

There is no Control.

Slide 54

Slide 54

Slide 55

Slide 55

Other Differences

Slide 56

Slide 56

Go <figure>

Slide 57

Slide 57

Slide 58

Slide 58

JAWS has the best support for announcing native figures and their captions, though support is not perfect or consistent depending on the browser and JAWS’s verbosity settings.

Slide 59

Slide 59

IE11 requires the use of role=”figure” and an aria-label or aria-labelledby pointing to the figcaption to mimic native announcements.

Slide 60

Slide 60

!!! Edge won’t announce the presence of a figure role at all, regardless if ARIA is used or not. 1 1 EdgeHTML-Version as published in 2018.

Slide 61

Slide 61

Chrome and Firefox offer similar support, however JAWS (with default verbosity settings) + Chrome will completely ignore a figure (including the content of its figcaption) if an image has an empty alt or is lacking an alt attribute.

Slide 62

Slide 62

Testing NVDA version 2018.4.1 with IE11, Edge, Firefox 64.0.2 and Chrome 71, there was no trace of figures.

Slide 63

Slide 63

<figure role=”figure” aria-label=”Caption for the figure.”> “”“<!— figure content. if an image, provide alt text “”—> <figcaption> Caption for the figure. “</figcaption> “</figure> “”“<!-aria-label for macOS VoiceOver + Chrome role=”figure” for IE11. IE11 needs an accessible name (provided by aria-label). If not for the fact VO + Chrome doesn’t support an accessible name from aria-labelledby, that attribute would have been preferred / pointed to an ID on the <figcaption>. “”—>

Slide 64

Slide 64

Presently, mobile screen readers won’t announce figures, nor Edge unless paired with Narrator (sort of), or any browser paired with NVDA.

Slide 65

Slide 65

Thanks, Scott! 2 How do you figure? | scottohara.me 2

Slide 66

Slide 66

ARIA can help, but not in every situation.

Slide 67

Slide 67

Accessibility is not only Screen Readers

Slide 68

Slide 68

Most non-Screen-Reader assistive technology does not work well with ARIA.

Slide 69

Slide 69

Slide 70

Slide 70

How Dragon Naturally Speaking works with ARIA » Simply Accessible (2014)

Slide 71

Slide 71

Screen shot courtesy of Eric Bailey This screen shot shows a couple of links: Normal links, placeholder links without href, links that are faked using ARIA, even one without a button. On the right, there’s a paragraph of text with a styled ARIA link in it (Non-underlined dark blue text link in black text paragraph.)

Slide 72

Slide 72

Screen shot courtesy of Eric Bailey. This is the same page with High Contrast Mode enabled. Only real links are colored differently compared to the normal text. ARIA links have the same color as the text.

Slide 73

Slide 73

The same goes for buttons – when you use aria-disabled=true, the disabled button will not look inactive, like a button that has the disabled attribute set. This can confuse users.

Slide 74

Slide 74

Users!

Slide 75

Slide 75

Knowledge Levels Vary Greatly

Slide 76

Slide 76

Users often don’t know what their computers can do for them.

Slide 77

Slide 77

Other Users hack their assistive technology to work with inaccessible sites.

Slide 78

Slide 78

Some users write style sheets and JavaScripts to change websites to their needs.

Slide 79

Slide 79

Users are somewhere on this spectrum between type of disability, accessibility support of the tools they use and the proficiency that they have to actually use those tools.

Slide 80

Slide 80

Test with Diverse Users

Slide 81

Slide 81

Give Users Agency

Slide 82

Slide 82

Allow use of assistive technology that suits a particular user’s needs.

Slide 83

Slide 83

Try not to prescribe how to use a component.

Slide 84

Slide 84

Use HTML & CSS to describe elements.

Slide 85

Slide 85

Don’t expect any proficiency from users.

Slide 86

Slide 86

Don’t break conventions!

Slide 87

Slide 87

Users get a lot more tools to use!

Slide 88

Slide 88

Reader Mode

Slide 89

Slide 89

This is reader mode in Safari. Clicking on the reader mode icon in the top left transforms the page (in the first screen shot) to an easy to read layout that focuses on the content of the page.

Slide 90

Slide 90

You can change fonts and colors to your liking.

Slide 91

Slide 91

Reader Mode Native Support: → Safari (since 2010, can set to default since 2015) → Firefox (2015) → Edge (2015) → Chrome (soon)

Slide 92

Slide 92

This is the reader mode in Firefox.

Slide 93

Slide 93

It can read the content to you, which is important for users with cognitive disabilities.

Slide 94

Slide 94

It also has theme options.

Slide 95

Slide 95

More Website Settings

Slide 96

Slide 96

You can nowadays set different default settings for a website. Here I set to use reader mode when it is available, enable content blockers and never auto-play video on medium.com.

Slide 97

Slide 97

It’s also possible to get an overview, and change, the settings on a site basis.

Slide 98

Slide 98

OS As in Operating System

Slide 99

Slide 99

OS Settings The Operating System, here macOS, has a diverse set of settings, including “invert colors”, “reduce motion”, “use greyscale”, “increase contrast” and “reduce transparency”. We can use those settings on the web:

Slide 100

Slide 100

prefers-reduced-motion Media Query

Slide 101

Slide 101

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

Slide 102

Slide 102

Support Support across browsers is very good.

Slide 103

Slide 103

On Windows …it’s complicated

Slide 104

Slide 104

Source: Patrick H. Lauke, Twitter, ThreadReader

Slide 105

Slide 105

prefers-color-scheme Media Query

Slide 106

Slide 106

:root { !—color: #333; !—bgcolor: #eee; } @media (prefers-color-scheme: dark) { :root { !—color: #eee; !—bgcolor: #333; } } html { color: var(!—color); background-color: var(!—bgcolor); }

Slide 107

Slide 107

DEMO

Slide 108

Slide 108

We also get a lot more tools to use! 3 3 Designers & Developers

Slide 109

Slide 109

Media Queries Level 5(?)

Slide 110

Slide 110

inverted-colors → none → inverted 4 Planned in Media Queries Level 5 4

Slide 111

Slide 111

prefers-reduced4 transparency → no-preference → reduce 4 Planned in Media Queries Level 5

Slide 112

Slide 112

prefers-contrast → no-preference → high → low 4 Planned in Media Queries Level 5 4

Slide 113

Slide 113

forced-colors → none → active 4 Planned in Media Queries Level 5 4

Slide 114

Slide 114

Environment MQs 4 Planned in Media Queries Level 5 4

Slide 115

Slide 115

light-level → dim → normal → washed 4 Planned in Media Queries Level 5 4

Slide 116

Slide 116

4 environment-blending → opaque → The document is rendered on an opaque medium, such as a traditional monitor or paper. Black is dark and white is 100% light. → additive → The display blends the colors of the canvas with the real world using additive mixing. Black is fully transparent and white is 100% light. For example: a head-up display in a car. → subtractive → The display blends the colors of the canvas with the real world using subtractive mixing. White is fully transparent and dark colors have the most contrast. For example: an LCD display embedded in a bathroom mirror. 4 Planned in Media Queries Level 5

Slide 117

Slide 117

Scalable Vector Graphics → Can adapt to the viewport (or embed size). → Can use the font color of the text. → Can have “real” text in it.

Slide 118

Slide 118

<details> & <summary>

Slide 119

Slide 119

<details id=”examples”> <summary> <h2 id=”examples”>Examples!</h2> !</summary> <div> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Doloribus non amet perferendis quasi similique impedit maxime, iusto fuga magni. Similique sint a expedita esse alias voluptate illum porro placeat est?!</p> !</div> !</details>

Slide 120

Slide 120

<details id=”examples” open> <summary> <h2 id=”examples”>Examples!</h2> !</summary> <div> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Doloribus non amet perferendis quasi similique impedit maxime, iusto fuga magni. Similique sint a expedita esse alias voluptate illum porro placeat est?!</p> !</div> !</details>

Slide 121

Slide 121

An Accordion in 5 5 Lines of JS 5 OK, jQuery in this instance.

Slide 122

Slide 122

Nice :focus Styles → JavaScipt → We don’t need JS. → Thanks currentColor!

Slide 123

Slide 123

:focus-within

Slide 124

Slide 124

Thank You! Eric Eggert Web: yatil.net E-Mail: mail@yatil.net Social: @yatil