Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Accessibility tips & tricks for CSS developers
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Marco Solazzi
March 25, 2016
Programming
590
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Accessibility tips & tricks for CSS developers
Marco Solazzi
March 25, 2016
More Decks by Marco Solazzi
See All by Marco Solazzi
Automation Strategies for Baseline Accessibility - Merpay Tech Talk 2021
dwightjack
0
430
Inclusive UI development tips & tricks
dwightjack
0
220
CSS Workflow for Grown-ups
dwightjack
1
580
Introducing AngularJS - Frontenders Verona
dwightjack
0
830
Other Decks in Programming
See All in Programming
AIエージェントの隔離技術の徹底比較
kawayu
0
470
AI時代のUIはどこへ行く?その2!
yusukebe
20
7k
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
180
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
200
New "Type" system on PicoRuby
pocke
1
810
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
120
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
5.2k
LLM Plugin for Node-REDの利用方法と開発について
404background
0
170
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.1k
Inside Stream API
skrb
1
680
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
280
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
210k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Code Review Best Practice
trishagee
74
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Documentation Writing (for coders)
carmenintech
77
5.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
210
Test your architecture with Archunit
thirion
1
2.3k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
420
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
WCS-LA-2024
lcolladotor
0
620
Transcript
Accessibility tips & tricks for CSS developers Marco Solazzi -
@dwightjack CSS Day 2016 - cssday.it
About me - Senior Front-end @ AQuest - Co-founder Frontenders
Verona
HTML semantics Progressive enhancement Mobile first Responsive UX
“ … enabling as many people as possible to use
Web sites, even when those people's abilities are limited in some way. ” Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility
“ … enabling as many people as possible to use
Web sites, even when those people's abilities are limited in some way. ” Accessibility - https://developer.mozilla.org/en-US/docs/Web/Accessibility
If you follow best practices you’re already providing some accessibility
- vision impairments - limited fine motor control - cognitive
disabilities - hearing impairments - older people (ourselves tomorrow) For whom?
Because we have to. Goverments are enforcing accessibility by legislation.
Why? - US: List of Web Accessibility-Related Litigation and Settlements (http://bit.ly/1n1JkQl) - IT: Legge Stanca (https://it.wikipedia.org/wiki/Legge_Stanca)
Because we should. Why?
“I’m going to do the website that way. If people
can’t use it they can go f**k themselves!” Everyday rant... - random world class designer / developer
“I’m going to put stairs here. If people can’t climb
them they can go f**k themselves!” What if... - random world class architect
Websites are like shops, restaurants and theatres: if you leave
me out you don’t deserve my money.
- unreadable beauty - table syndrome - outline dilemma -
out of sight... How?
Unreadable beauty
- blindness - low vision - color blindness Unreadable beauty
Unreadable beauty award-winning flash site, mid 2000
Unreadable beauty award-winning flash site, mid 2000
Unreadable beauty award-winning HTML site, mid 2010
Unreadable beauty award-winning HTML site, mid 2010
1. set html font-size to 100% 2. use rem fonts
and em media queries 3. high-contrast optional theme Unreadable beauty
1. set html font-size to 100% 2. use rem fonts
and em media queries 3. high-contrast optional theme Bonus: Use currentColor for flexible theming Unreadable beauty
Unreadable beauty
Unreadable beauty
Table syndrome
Every tag has its place in the world document.
Every tag has its place in the world document. …
even <ruby> - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby
<table>s are evil! Let’s use <div>s … and display: table
Table syndrome
<table>s are evil! Let’s use <div>s … and display: table
Problems: 1. not semantic 2. unannounced by screen-readers Table syndrome
<button>s are ugly! Let’s use <span>s and <a>s with JS
Table syndrome
<button>s are ugly! Let’s use <span>s and <a>s with JS
Problems: 1. missing focus 2. different/missing keyboard interactions Table syndrome
Table syndrome
Table syndrome
Outline dilemma
“ … provides visual feedback for links that have "focus"
when navigating a web document using the TAB key (or equivalent). ” Outline dilemma - http://www.outlinenone.com
“ … provides visual feedback for links that have "focus"
when navigating a web document using the TAB key (or equivalent). ” - http://www.outlinenone.com Outline dilemma
default outlines are ugly! - http://meyerweb.com/eric/tools/css/reset/reset200802.css Outline dilemma
default outlines are ugly! - http://meyerweb.com/eric/tools/css/reset/reset200802.css Outline dilemma
Outline dilemma
Outline dilemma
Outline dilemma
If you really can’t stand outline, remove it just for
mouse / touch interactions. Outline dilemma - https://github.com/lindsayevans/outline.js - https://www.paciellogroup.com/blog/2012/04/how-to-remove-css-outlines-in-an- accessible-manner/
Out of sight
How many ways to hide something? 1. opacity: 0 2.
visibility: hidden 3. display: none Out of sight
How many ways to hide something? 1. opacity: 0 2.
visibility: hidden 3. display: none ← accessibility friendly Out of sight
Options for element transitions: 1. display: none onComplete 2. tabindex=”-1”
for every link / button Out of sight
Don’t speak bonus:
Don’t speak
Don’t speak Warning: totally unreliable!
Don’t speak Always prefer SVGs (even for icons)
I want more! Resources - http://a11yproject.com/ - https://www.paciellogroup.com/ - http://webaim.org/
- http://a11yweekly.com/ People - https://twitter.com/LeonieWatson - https://twitter.com/stevefaulkner
Thanks