Hidde de Vries, a11yTO, 3 October, Toronto “Built-in” accessibility: blessing or curse?

25 years ago…

“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

Websites with sticky elements that cover everything when zoomed aren’t accessible codepen.io/hidde/pen/PovjPYV

Websites with FAQs that aren’t reachable by just a keyboard aren’t accessible codepen.io/hidde/pen/ExzXVmb

Websites with important election results in an image with no alternatives aren’t accessible

We need better websites…

(lack of) Accessibility is a website problem, not a user problem

WAI-ARIA TECHNIQUES UNDERSTANDING COGA ACT-RULES WCAG 2.1 LEVEL A/A/AAA ATAG AXE LOW VISION ASSISTIVE TECH ACCESSIBLE VR XAUR UAAG ACT MATURITY MODEL WEBVTT AGWG LAWS & POLICIES SEMANTICS CONFORMANCE EVALUATION EARL AUTHORING PRACTICES WCAG-EM ACCESSIBILITY STATEMENTS

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 •

Many of us “Are there opportunities to change the system to improve accessibility across the board?”

Managers “Can we integrate accessibility into our practices?”

Browsers “Can we display websites better?”

CMSes “Can we help content editors edit more accessible content?”

Standards bodies “Can we make standards that take accessibility into account”?

Built-in accessibility: blessing or curse?

Built-in accessibility: blessing and curse

Building accessibility into systems

Building accessibility into systems (1) Web Platform features

Building accessibility into systems (1) Web Platform features // features that make a11y possible, // e.g. support for alt text <img src=”” alt=”” />

Building accessibility into systems (1) Web Platform features // features that make a11y possible, // e.g. support for captions <video> <track>…</track> </video>

Building accessibility into systems (1) Web Platform features // features that do accessibility // semantics for you, like headings <h1>Top news</h1>

// 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>

// 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>

// 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>

‘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/

‘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/

‘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/

‘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/

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/

“Horizontal review” in standards processes See: FAST w3c.github.io/apa/fast/

Self-review in TAG z Self-Review Questionnaire: Accessibility github.com/w3ctag/accessibility-questionnaire/blob/main/accessibility-questionnaire.md

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

See: HTML, the inaccessible parts daverupert.com/2020/02/html-the-inaccessible-parts/

Chromium Blog, Updates to form controls and focus blog.chromium.org/2020/03/updates-to-form-controls-and-focus.html

Chromium Blog, Updates to form controls and focus blog.chromium.org/2020/03/updates-to-form-controls-and-focus.html

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/

TAKEAWAY #1 We need web platform / HTML features that are accessible and/or include accessibility and it’s not trivial

Building accessibility into systems (2) CMSes

Checks in Jooa11y, for Joomla (based on Sa11y)

Checks in Editoria11y v2, for Drupal (Based on Sa11y)

Contrast warnings in Gutenberg, for WordPress Checks in Editoria11y v2, for Drupal (Based on Sa11y)

Porta11y, accessible checks for Portable Text github.com/hidde/porta11y github.com/hidde/porta11y Checks in Editoria11y v2, for Drupal (Based on Sa11y)

TAKEAWAY #2 CMSes can be accessibility assistants and it’s (usually) not trivial

Building accessibility into systems (3) Browsers

f f “Could browsers ix more accessibility problems automatically?” talks.hiddedevries.nl/KKW74X/could-browsers- ix-more-accessibility-problems-automatically

Untruncate text Force focus indication Force colour contrast Suppress autoplay of gifs and videos

TAKEAWAY #3 Browsers could intervene when the web content they serve is inaccessible and it’s (usually) not trivial

Building accessibility into systems (4) Design systems

Design systems can make your patterns repeatable

“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

Design systems can make good patterns repeatable

Design systems can good make good patterns d ba repeatable or

Design systems can make patterns repeatable so we’d better ensure they’re good

Design systems can teach the nuance between the components

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

“Built-in” accessibility It can be done. It’s worthwhile. It’s not trivial.

What are the or: questions constraints? you can ask

What could (possibly) go wrong?

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?

What decides the accessibility of a component?

Save

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

Who impacts the accessibility of a UI?

developer QA tester designer Who impacts the accessibility of a UI? researcher content editor

(it’s the whole team)

browser that renders it What impacts the accessibility of a UI? assistive technology CMS that is involved with managing it

A design system can impact through components and docs

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)

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

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

“Educate, don’t berate” — Meryl Evans (in “Progress over perfection“)

Used as-is Interpreted Components (excluding settings) Documentation Component settings

TAKEAWAY #6 Components that people reuse and documentation that people interpret are an opportunity to inspire quality

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

NL Design System

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.

Collaboration through “Relay Model” with quality checks in each of four stages.

Lessons learned

Make it concrete

Make it concrete

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”

Make it concrete: do’s and don’ts

Back guidance up with research

“Accessibility isn’t just about meeting standards, it’s about usability too” — Vasilis van Gemert (this morning)

User research as input for patterns

Accessibility audit reports as input for guidelines organisation X organisation Y organisation Z Design Open Hour

Most reported issues as input for guidelines FUT URE

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 •

Work in the open

Threads in public channels so that people can peak (low-treshold)

Public bi-weekly meetings that are also publised afterwards

Test with people and share the results

Test with people and share the results Because accessibility is more than WCAG

Test with people and share the results Because not everyone will test, your results likely have some use for others

gebruikersonderzoeken.nl

Open design decisions up for automated scrutiny

Save

—nl-button-border-color: #2446AE —nl-button-color: #2446AE Save —nl-button-background-color: #ffffff

—nl-button-border-color: #2446AE —nl-button-color: #2446AE Save —nl-button-background-color: #ffffff

—nl-button-border-color: #2446AE —nl-button-color: #cccccc Save —nl-button-background-color: #ffffff

—nl-button-border-color: #2446AE —nl-button-color: #cccccc Save 🚨 —nl-button-background-color: #ffffff

Verify with process

Verify with process: GOV.UK

Verify with process: NL Design System “Relay Model”

Do handover to consumers with test steps

Handover: USWDS • Explain which tests you’ve done • Explain what consumers of the components should test themselves

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

Wrapping up

Built-in accessibility: blessing and curse

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 💡 💡 💡 💡

“Built-in” accessibility It’s not trivial, not a oneoff, not a quick “fix”. It can be done. It’s worthwhile.

Tha n k you ! hidde.blog/slides @hdv in most places

Thank you! hidde.blog @hdv@front-end.social Slides: talks.hiddedevries.nl