Slide 1
Connecting the Accessibility Dots
Eric Eggert · Accessibility Club Summit · November 2019
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 4
Sagittarius
Stars connected to show Sagittarius in the night sky.
Connecting arbitrary dots that fits one’s own view.
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
Let’s change perspectives!
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 9
Disabled People & Guidelines & Assistive Technologies
Slide 10
You cannot talk about **accessibility** without talking about **disabilities.**
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
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
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
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
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
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
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
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
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
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
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
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
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
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
“Designing inclusive software results in improved usability and customer satisfaction.” — Microsoft’s app developer guide
Don’t take my word for it.
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
[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 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
Basically the strategy is the lowest moving layer, then there’s scope, structure, skeleton and surface.
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
Accessible Web Development is Complicated
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
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
More Complex == Less Accessible
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
[alt: Jodie Whittaker as Doctor Who, saying “I am too nice. This is what happens when you try to be nice.”]
Slide 40
Screen Reader Differences
Slide 41
“VoiceOver and Safari remove list element semantics when list-style: none is used.” — Scott O’Hara: “Fixing” Lists
Slide 42
Slide 43
“This was a purposeful change due to rampant ‘list’-itis by web developers.” — James Craig, Apple, bugs.webkit.org
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 46
A Time Line 2014: First Commit 2015: Additional Code … No Changes … 2019: The Web Notices
Slide 47
“Customers seem much happier in the 3 years since this change went in.” — James Craig, Apple, bugs.webkit.org
Slide 48
dowebsitesneedtolookexactlythesameineverybrowser.com
Slide 49
The same it true for screen readers: They don’t all need to produce the same output.
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
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
You can even overwrite certain abbreviations or symbols. You can even make VoiceOver pronounce GIF as jiff, if you want to.
Slide 53
Slide 54
Slide 55
Slide 56
Slide 57
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
IE11 requires the use of role=”figure” and an aria-label or aria-labelledby pointing to the figcaption to mimic native announcements.
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
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
Testing NVDA version 2018.4.1 with IE11, Edge, Firefox 64.0.2 and Chrome 71, there was no trace of figures.
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
Presently, mobile screen readers won’t announce figures, nor Edge unless paired with Narrator (sort of), or any browser paired with NVDA.
Slide 65
Thanks, Scott! 2
How do you figure? | scottohara.me
2
Slide 66
ARIA can help, but not in every situation.
Slide 67
Accessibility is not only Screen Readers
Slide 68
Most non-Screen-Reader assistive technology does not work well with ARIA.
Slide 69
Slide 70
How Dragon Naturally Speaking works with ARIA » Simply Accessible (2014)
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
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
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 75
Knowledge Levels Vary Greatly
Slide 76
Users often don’t know what their computers can do for them.
Slide 77
Other Users hack their assistive technology to work with inaccessible sites.
Slide 78
Some users write style sheets and JavaScripts to change websites to their needs.
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 81
Slide 82
Allow use of assistive technology that suits a particular user’s needs.
Slide 83
Try not to prescribe how to use a component.
Slide 84
Use HTML & CSS to describe elements.
Slide 85
Don’t expect any proficiency from users.
Slide 86
Slide 87
Users get a lot more tools to use!
Slide 88
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
You can change fonts and colors to your liking.
Slide 91
Reader Mode Native Support: → Safari (since 2010, can set to default since 2015) → Firefox (2015) → Edge (2015) → Chrome (soon)
Slide 92
This is the reader mode in Firefox.
Slide 93
It can read the content to you, which is important for users with cognitive disabilities.
Slide 94
It also has theme options.
Slide 95
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
It’s also possible to get an overview, and change, the settings on a site basis.
Slide 98
OS
As in Operating System
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
prefers-reduced-motion Media Query
Slide 101
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
Slide 102
Support
Support across browsers is very good.
Slide 103
On Windows …it’s complicated
Slide 104
Source: Patrick H. Lauke, Twitter, ThreadReader
Slide 105
prefers-color-scheme Media Query
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 108
We also get a lot more tools to use! 3
3
Designers & Developers
Slide 109
Slide 110
inverted-colors → none → inverted
4
Planned in Media Queries Level 5
4
Slide 111
prefers-reduced4 transparency → no-preference → reduce 4
Planned in Media Queries Level 5
Slide 112
prefers-contrast → no-preference → high → low
4
Planned in Media Queries Level 5
4
Slide 113
forced-colors → none → active
4
Planned in Media Queries Level 5
4
Slide 114
Environment MQs 4
Planned in Media Queries Level 5
4
Slide 115
light-level → dim → normal → washed 4
Planned in Media Queries Level 5
4
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
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 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
<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
An Accordion in 5 5 Lines of JS 5
OK, jQuery in this instance.
Slide 122
Nice :focus Styles → JavaScipt → We don’t need JS. → Thanks currentColor!
Slide 123
Slide 124
Thank You! Eric Eggert Web: yatil.net E-Mail: mail@yatil.net Social: @yatil