Hidde de Vries, a11yTO, 3 October, Toronto
“Built-in” accessibility: blessing or curse?
Slide 2
25 years ago…
Slide 3
“in the grand scheme of things it’s always the same principles and guidelines” — Eric Eggert (in post about WCAG)
See: Do we need WCAG 3 now? yatil.net/blog/do-we-need-wcag-3-now
Slide 4
Slide 5
Websites with sticky elements that cover everything when zoomed aren’t accessible
codepen.io/hidde/pen/PovjPYV
Slide 6
Websites with FAQs that aren’t reachable by just a keyboard aren’t accessible
codepen.io/hidde/pen/ExzXVmb
Slide 7
Websites with important election results in an image with no alternatives aren’t accessible
Slide 8
We need better websites…
Slide 9
(lack of)
Accessibility is a website problem, not a user problem
In defense of websites… Hard to ind good code examples
•
Conformance vs guidance
•
AT/browser support vs actual usability
•
WCAG often can’t tell you what to do (for reasons, but still) f
•
Slide 12
Many of us
“Are there opportunities to change the system to improve accessibility across the board?”
Slide 13
Managers
“Can we integrate accessibility into our practices?”
Slide 14
Browsers
“Can we display websites better?”
Slide 15
CMSes
“Can we help content editors edit more accessible content?”
Slide 16
Standards bodies
“Can we make standards that take accessibility into account”?
Slide 17
Built-in accessibility: blessing or curse?
Slide 18
Built-in accessibility: blessing and curse
Slide 19
Building accessibility into systems
Slide 20
Building accessibility into systems (1)
Web Platform features
Slide 21
Building accessibility into systems (1)
Web Platform features
// features that make a11y possible, // e.g. support for alt text <img src=”” alt=”” />
Slide 22
Building accessibility into systems (1)
Web Platform features
// features that make a11y possible, // e.g. support for captions <video> <track>…</track> </video>
Slide 23
Building accessibility into systems (1)
Web Platform features
// features that do accessibility // semantics for you, like headings <h1>Top news</h1>
Slide 24
// features that do some accessibility // semantics for you, like popover <button popovertarget=”p”> Open popover </button> <div popover id=”p”> I am popover content </div>
Slide 25
// features that do some accessibility // semantics for you, like popover
I am popover content
<button popovertarget=”p”> Open popover </button> <div popover id=”p”> I am popover content </div>
Slide 26
// features that do some accessibility // semantics for you, like popover
I am popover content
<button popovertarget=”p”> Open popover </button> <div popover id=”p”> I am popover content </div>
Slide 27
‘Built-in’: aria-expanded state
I am popover content
See: On popover accessibility: what the browser does and doesn’t do https://hidde.blog/popover-accessibility/
Slide 28
‘Built-in’: aria-expanded state aria-details relationship (if apt)
I am popover content
See: On popover accessibility: what the browser does and doesn’t do https://hidde.blog/popover-accessibility/
Slide 29
‘Built-in’: aria-expanded state aria-details relationship (if apt)
I am popover content
group fallback role (if apt)
See: On popover accessibility: what the browser does and doesn’t do https://hidde.blog/popover-accessibility/
Slide 30
‘Built-in’: aria-expanded state aria-details relationship (if apt)
I am popover content
group fallback role (if apt) some focus management
See: On popover accessibility: what the browser does and doesn’t do https://hidde.blog/popover-accessibility/
Slide 31
Not built-in: colour contrast zoom support
I am popover content
etc etc
See: On popover accessibility: what the browser does and doesn’t do https://hidde.blog/popover-accessibility/
Slide 32
“Horizontal review” in standards processes
See: FAST w3c.github.io/apa/fast/
Slide 33
Self-review in TAG
z
Self-Review Questionnaire: Accessibility github.com/w3ctag/accessibility-questionnaire/blob/main/accessibility-questionnaire.md
Slide 34
Implementations in browsers can have accessibility bugs
It’s Mid-2022 and Browsers (Mostly Safari) Still Break Accessibility via Display Properties adrianroselli.com/2022/07/its-mid-2022-and-browsers-mostly-safari-still-break-accessibility-via-display-properties.html
Slide 35
See: HTML, the inaccessible parts daverupert.com/2020/02/html-the-inaccessible-parts/
Slide 36
Slide 37
Chromium Blog, Updates to form controls and focus blog.chromium.org/2020/03/updates-to-form-controls-and-focus.html
Slide 38
Chromium Blog, Updates to form controls and focus blog.chromium.org/2020/03/updates-to-form-controls-and-focus.html
Slide 39
Improvements re making accessibility tree testable >1000 Web Platform Tests labeled “accessibility”
See: Improving Web Accessibility with Web Platform Tests webkit.org/blog/15400/improving-web-accessibility-with-web-platform-tests/
Slide 40
TAKEAWAY #1 We need web platform / HTML features that are accessible and/or include accessibility and it’s not trivial
Slide 41
Building accessibility into systems (2)
CMSes
Slide 42
Slide 43
Checks in Jooa11y, for Joomla (based on Sa11y)
Slide 44
Checks in Editoria11y v2, for Drupal (Based on Sa11y)
Slide 45
Contrast warnings in Gutenberg, for WordPress
Checks in Editoria11y v2, for Drupal (Based on Sa11y)
Slide 46
Porta11y, accessible checks for Portable Text github.com/hidde/porta11y github.com/hidde/porta11y Checks in Editoria11y v2, for Drupal (Based on Sa11y)
Slide 47
TAKEAWAY #2 CMSes can be accessibility assistants and it’s (usually) not trivial
Slide 48
Building accessibility into systems (3)
Browsers
Slide 49
f
f
“Could browsers ix more accessibility problems automatically?” talks.hiddedevries.nl/KKW74X/could-browsers- ix-more-accessibility-problems-automatically
Slide 50
Untruncate text
Force focus indication
Force colour contrast
Suppress autoplay of gifs and videos
Slide 51
TAKEAWAY #3 Browsers could intervene when the web content they serve is inaccessible
and it’s (usually) not trivial
Slide 52
Building accessibility into systems (4)
Design systems
Slide 53
Design systems can make your patterns repeatable
Slide 54
“Not only is this work not inherently valuable, it is also not inherently harmless” — Amy Hupe
Building conscious design systems amyhupe.co.uk/articles/building-conscious-design-systems
Slide 55
Design systems can make good patterns repeatable
Slide 56
Design systems can good make good patterns d ba repeatable or
Slide 57
Design systems can make patterns repeatable
so we’d better ensure they’re good
Slide 58
Design systems can teach the nuance between the components
Slide 59
TAKEAWAY #4 Design Systems make code and principles repeatable, ensure you repeat the right things
f
and it’s (de and initely) it’s not trivial
Slide 60
“Built-in” accessibility
It can be done. It’s worthwhile. It’s not trivial.
Slide 61
What are the or: questions constraints? you can ask
Slide 62
What could (possibly) go wrong?
Slide 63
Does the icon disappear in dark mode? Will the tabs break with too many items? What if all buttons in a group are named the same? How do we ensure there’s useful text in <FormFieldError>?
f
Can we force the label component to be used whenever the text ield component is used?
Slide 64
What decides the accessibility of a component?
Slide 65
Save
Slide 66
The quick brown fox jumps Where does she jump? Over the lazy dog? Well, there is really only one way to ind out…
f
Find out
Slide 67
Slide 68
Who impacts the accessibility of a UI?
Slide 69
developer
QA tester
designer Who impacts the accessibility of a UI? researcher
content editor
Slide 70
(it’s the whole team)
Slide 71
browser that renders it What impacts the accessibility of a UI? assistive technology
CMS that is involved with managing it
Slide 72
A design system can impact through components and docs
Slide 73
What design system components can do • User preference support (dark/forced color mode, text spacing, zoom support)
• Accessibility semantics (roles, states, properties)
• Keyboard support
• Focus management • Support for
accessibility features
(images: alt support, video players: caption support, etc)
Slide 74
What design system docs can do • All variables/settings documented
• Theme validator (colour
f
contrast, spacing etc)
• Full lows: how do
components work together?
• Showing the right way
Slide 75
What design system docs can do • All variables/settings documented
• Theme validator (colour
f
contrast, spacing etc)
• Full lows: how do
components work together?
• Showing the right way
Slide 76
“Educate, don’t berate” — Meryl Evans (in “Progress over perfection“)
Slide 77
Used as-is
Interpreted
Components (excluding settings)
Documentation Component settings
Slide 78
TAKEAWAY #6 Components that people reuse and documentation that people interpret are an opportunity to inspire quality
Slide 79
What design system marketing should do Avoid overpromising the accessibility impact Say “makes it easier to” instead of “will take care of”
ff
Emphasise the role of design system in a continuous e ort
Slide 80
NL Design System
Slide 81
Community of 500+ web professionals in all layers of Dutch government who work together. We collect the best components, guidelines, patterns and user research for digital services.
Slide 82
Collaboration through “Relay Model” with quality checks in each of four stages.
Slide 83
Lessons learned
Slide 84
Make it concrete
Slide 85
Make it concrete
Slide 86
Make it concrete
“Add error messages for forms into a live region” “Only use assertive live regions when information requires the user’s attention immediately”
Slide 87
Make it concrete: do’s and don’ts
Slide 88
Back guidance up with research
Slide 89
“Accessibility isn’t just about meeting standards, it’s about usability too” — Vasilis van Gemert (this morning)
Slide 90
User research as input for patterns
Slide 91
Accessibility audit reports as input for guidelines organisation X
organisation Y
organisation Z
Design Open Hour
Slide 92
Most reported issues as input for guidelines
FUT
URE
Slide 93
Make it open source More perspectives lead to better quality
•
Easier to report issues
•
Easier to steal
•
Most e ective against reinvention of wheels
•
Instigates collaboration ff
•
Slide 94
Work in the open
Slide 95
Threads in public channels so that people can peak (low-treshold)
Slide 96
Public bi-weekly meetings that are also publised afterwards
Slide 97
Test with people and share the results
Slide 98
Test with people and share the results Because accessibility is more than WCAG
Slide 99
Test with people and share the results Because not everyone will test, your results likely have some use for others
Slide 100
gebruikersonderzoeken.nl
Slide 101
Open design decisions up for automated scrutiny
Slide 102
Save
Slide 103
—nl-button-border-color: #2446AE
—nl-button-color: #2446AE
Save
—nl-button-background-color: #ffffff
Slide 104
—nl-button-border-color: #2446AE
—nl-button-color: #2446AE
Save
—nl-button-background-color: #ffffff
Slide 105
—nl-button-border-color: #2446AE
—nl-button-color: #cccccc
Save
—nl-button-background-color: #ffffff
Slide 106
—nl-button-border-color: #2446AE
—nl-button-color: #cccccc
Save
🚨
—nl-button-background-color: #ffffff
Slide 107
Verify with process
Slide 108
Verify with process: GOV.UK
Slide 109
Verify with process: NL Design System “Relay Model”
Slide 110
Do handover to consumers with test steps
Slide 111
Handover: USWDS
•
Explain which tests you’ve done
•
Explain what consumers of the components should test themselves
Slide 112
Make it concrete Back guidance up with research Make it open source Work in the open Test with users, share the tests Test design tokens Verify with process Handover with test steps
Slide 113
Wrapping up
Slide 114
Built-in accessibility: blessing and curse
Slide 115
Re: in defense of websites… 💡
•
Hard to ind good code examples
•
Conformance vs guidance
•
AT/browser support vs actual usability
•
WCAG often can’t tell you what to do (for reasons, but still) f
💡
💡
💡
💡
Slide 116
“Built-in” accessibility
It’s not trivial, not a oneoff, not a quick “fix”. It can be done. It’s worthwhile.
Slide 117
Tha n k you ! hidde.blog/slides @hdv in most places