SlideShare a Scribd company logo
Building a better,
accessible web
About Me
Matt Stow
@stowball
Senior UX Engineer at TOTVS Labs
“We should be able to access the web
… regardless of the software we use,
the computer we have, the language
we speak … and regardless of our
sensory or interaction modes”
w3.org/standards/
Statistics
Around 40% (6.8 million) of Australians aged 18+
have a disability or long-term health condition
 
53% of people aged 65+ report to having some
form of disability
Australian Human Rights Commission
“‘People with disability’ is the only minority
group that anyone can join at any time”
Australian Network on Disability
#PlotTwist
Equal Access is Required by Law
“…websites whose development commences after July 1 2010
should comply with WCAG 2.0 to a minimum of AA-Level…”
Section 2.2 of the Disability Discrimination Act
Section 4.2 of the Disability Discrimination Act
Types of disabilities
Hearing impairments
 
Cognitive & learning disabilities
 
Mobility & physical impairments
 
Vision disabilities
Hearing impairments
Who’s affected?
People with full or partial hearing loss
Quick wins
Provide captions and/or transcripts for audio and video
Non-native speakers also benefit
Cognitive & learning disabilities
Who’s affected?
People with ADD, autism, dementia, dyslexia and more
Quick wins
Avoid justified text and ALL CAPS; use sans-serif fonts
Simplify the language used and reduce the amount of text
Reduce the complexity of the UI’s appearance and functions
Use Invisible Animation
Mobility & physical impairments
Who’s affected?
People with limited dexterity or upper limb disabilities
Quick wins
Mouse hover actions
Ensure a sensible tabbing order
Visible focus states for all interactive elements
need to be forgiving
Vision disabilities
Who’s affected?
Quick wins
People with colour blindness
People with low or no vision
Ensure text alternatives for images & visually absent text
Ensure your palette has a suitable colour contrast ratio
(for low or no vision)
Colour blindness
Deuteranopia (red-green)
Protanopia (another red-green)
Tritanopia (blue-yellow)
Up to 10% of the population may be affected
You can’t rely on colour alone
to convey information
(red-green)
(another red-green)
(blue-yellow)
The State of Front-End Tooling 2016 - Results
Simulating Deuteranopia
Simulating Protanopia
Trello Labels have a color blind friendly mode!
Simulating colour blindness
Photoshop’s Proof Setup
 cross-platform app
Chrome extension
Sass mixin
Color Oracle
NoCoffee Vision Simulator
AcceCSS
All have slightly different features and results,
and are useful at different times in the process
Colour contrast ratio
Text ratio needs to be 3 – 4.5:1 depending on size
But don't make the ratio too high!
Test with aremycolorsaccessible.com
Tools used by the vision impaired
Screen magnifiers and browser zoom
1. Windows
2. Mac and iOS
3. Chrome on desktop
4. Android
Screen readers such as JAWS , NVDA , VoiceOver ,
Windows-Eyes , ChromeVox and TalkBack
1 1 2
1 3 4
Screen reader statistics
85% of users primarily use Windows
49% of those use screen readers with IE
69% use screen readers on mobile
70% of those use iOS as their mobile platform
WebAim Screen Reader User Survey #6 Results
Screen reader features
Quick access to landmarks, headings, lists and links
Shortcuts for navigating to, and using form controls
Connect to Braille displays
and a lot more…
I highly recommend doing the VoiceOver Training
course that's built in to macOS to learn more
How to build for #a11y
1. Follow the Web Content Accessibility Guidelines (WCAG)
 
2. Use semantic HTML (and understand the impact of CSS)
 
3. Implement WAI-ARIA (often with JavaScript)
#
Mattstow’s hierarchy of #a11y*
* Terrible pun
What is WCAG 2.0?
A W3C standard which recommends how to make web
content more accessible to people with disabilities
It's generic, so doesn‘t dictate technology choices
Divided in to 12 major guidelines across 4 core principles
Each sub-guideline has a conformance rating from A–AAA
WCAG at a glance
Principle 1: Perceivable
Provide text alternatives for non-text content
Provide captions/alternatives for multimedia
w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle1
Create content that can be presented in different ways
without losing meaning
Make it easier for users to see and hear content
WCAG at a glance
Principle 2: Operable
Make all functionality available from a keyboard
Give users enough time to read and use content
Do not use content that causes seizures
Help users navigate and find content
w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle2
WCAG at a glance
Principle 3: Understandable
Make text readable and understandable
Make content appear and operate in predictable ways
Help users avoid and correct mistakes
w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle3
WCAG at a glance
Principle 4: Robust
Maximise compatibility with current and future user agents
w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle4
Use semantic HTML
Add a valid `lang` attribute to <html>
Don‘t disable zooming
Use appropriate HTML5 elements
Don‘t skip heading levels
Use native browser controls where possible
Only <a> and <button> should be “clickable”
All form elements must be labelled
Placeholders aren‘t labels
Understand the impact of CSS
Test without CSS to ensure a logical source order
Minimum of 14px font size for body content
Pseudo content is read out, so it has to be meaningful
OK to use a utility class to hide content
Don‘t remove `:focus` outlines – or provide alternatives
`visibility: hidden` hides from ATs but is animatable!
.visually-hidden
Smart :focus styles
github.com/stowball/keyboard-focus
function keyboardFocus (e) {
if (e.keyCode !== 9) {
return;
}
document.documentElement.classList.add('keyboard-focus');
document.removeEventListener('keydown', keyboardFocus, false);
}
document.addEventListener('keydown', keyboardFocus, false);
:focus {
box-shadow: none;
outline: none;
}
.no-js :focus, .keyboard-focus .element-with-custom:focus {
box-shadow: 0 0 2px 1px #00cdcb;
}
Animating visibility: hidden
.chip.is-hidden {
max-width: 0;
opacity: 0;
transition: opacity ease 0.25s,
transform ease 0.25s,
margin ease 0.45s 0.15s,
max-width ease 0.45s 0.15s,
visibility 0s 0.6s;
transform: scale(0);
visibility: hidden;
}
What is WAI-ARIA?
A spec on how to increase the accessibility of
Rich Internet Applications
Uses role attributes to describe the type of element
Uses property attributes to describe relationships,
functions and UI states
Common ARIA roles
banner
complementary
contentinfo
main
navigation
search
w3.org/TR/wai-aria-1.1/#widget_roles
Landmarks
alert
dialog
tab
tablist
tabpanel
tooltip
Widgets
Common ARIA properties
aria-current (state)
aria-expanded (state)
aria-haspopup
aria-hidden (state)
aria-invalid (state)
aria-label
aria-pressed (state)
aria-selected (state)
w3.org/TR/wai-aria-1.1/#global_states
Widgets
aria-atomic
aria-controls
aria-labelledby
aria-live
aria-owns
Others
Useful examples!
Hamburger menu
<nav role="navigation" aria-label="Main">
<button aria-label="Navigation" aria-controls="menu"
aria-haspopup="true" aria-expanded="false" aria-pressed="false"
> </button>
<ul id="menu">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
</ul>
</nav>
var $button = $('button');
var isMenuOpen = false;
$
$button.on('click', function () {
isMenuOpen = !isMenuOpen;
$button.attr('aria-expanded', isMenuOpen);
$button.attr('aria-pressed', isMenuOpen);
});
button[aria-pressed="true"] {
/* change caret indicator */
}
button[aria-expanded="true"] + #menu {
/* show menu */
}
var $button = $('button');
var isMenuOpen = false;
Accessible hamburger menu
Add to cart
<div class="product">
<!-- This should be in a form with a server-side fallback -->
<h3>Super Mario T-shirt</h3>
<button class="btn btn-default">
Add <span class="u-visually-hidden">Super Mario T-shirt</span> to cart
</button>
</div>
<div id="toaster" role="alert" aria-atomic="true" aria-live="assertive"></div>
var $button = $('button');
var $toaster = $('#toaster');
$button.on('click', function () {
$toaster
.html('<span class="u-visually-hidden">Super Mario T-shirt has been </span>' +
'Added to your cart').addClass('is-visible');
setTimeout(function () {
$toaster.removeClass('is-visible');
}, 1500);
});
.u-visually-hidden {
/* https://gist.github.com/stowball/2704364c1ceefb1d7eaf570b903463b3 */
}
Accessible add to cart
Implementation resources
WAI-ARIA Authoring Practices 1.1
Heydon Pickering's Practical ARIA Examples
Deque University's Examples
OpenAjax Accessibility Examples
My Accessible Widgets CodePen collection
Inclusive design
benefits everyone
Practice makes perfect
Thank you!
@stowball
 
 
slides.com/stowball/accessible-web

More Related Content

Viewers also liked

孫越的甦醒
孫越的甦醒孫越的甦醒
孫越的甦醒
Jaing Lai
 
Question Six - What have you learned about technologies from the process of c...
Question Six - What have you learned about technologies from the process of c...Question Six - What have you learned about technologies from the process of c...
Question Six - What have you learned about technologies from the process of c...
kategarner123
 
Sistem informasi akuntansi
Sistem informasi akuntansiSistem informasi akuntansi
Sistem informasi akuntansi
Domi DomDom
 
Open Source
Open SourceOpen Source
Indiana Science Indicator 5.2.6
Indiana Science Indicator 5.2.6Indiana Science Indicator 5.2.6
Indiana Science Indicator 5.2.6
JMHead2
 
TUGAS 3
TUGAS 3TUGAS 3
Railway postcards
Railway postcardsRailway postcards
Railway postcards
Marc Bostyn
 
Landon's Biography
Landon's BiographyLandon's Biography
Landon's Biography
guestb21bef8
 
In what ways does your media product use, develop or challenge forms and conv...
In what ways does your media product use, develop or challenge forms and conv...In what ways does your media product use, develop or challenge forms and conv...
In what ways does your media product use, develop or challenge forms and conv...
seconds101
 
5060a 01 Demonstration Steps
5060a 01 Demonstration Steps5060a 01 Demonstration Steps
5060a 01 Demonstration Steps
LiquidHub
 
LCAA-Strategic-Plan-2011-13-V3-spreads[1]
LCAA-Strategic-Plan-2011-13-V3-spreads[1]LCAA-Strategic-Plan-2011-13-V3-spreads[1]
LCAA-Strategic-Plan-2011-13-V3-spreads[1]
Dr. Alvin B. Jackson, Jr.
 

Viewers also liked (11)

孫越的甦醒
孫越的甦醒孫越的甦醒
孫越的甦醒
 
Question Six - What have you learned about technologies from the process of c...
Question Six - What have you learned about technologies from the process of c...Question Six - What have you learned about technologies from the process of c...
Question Six - What have you learned about technologies from the process of c...
 
Sistem informasi akuntansi
Sistem informasi akuntansiSistem informasi akuntansi
Sistem informasi akuntansi
 
Open Source
Open SourceOpen Source
Open Source
 
Indiana Science Indicator 5.2.6
Indiana Science Indicator 5.2.6Indiana Science Indicator 5.2.6
Indiana Science Indicator 5.2.6
 
TUGAS 3
TUGAS 3TUGAS 3
TUGAS 3
 
Railway postcards
Railway postcardsRailway postcards
Railway postcards
 
Landon's Biography
Landon's BiographyLandon's Biography
Landon's Biography
 
In what ways does your media product use, develop or challenge forms and conv...
In what ways does your media product use, develop or challenge forms and conv...In what ways does your media product use, develop or challenge forms and conv...
In what ways does your media product use, develop or challenge forms and conv...
 
5060a 01 Demonstration Steps
5060a 01 Demonstration Steps5060a 01 Demonstration Steps
5060a 01 Demonstration Steps
 
LCAA-Strategic-Plan-2011-13-V3-spreads[1]
LCAA-Strategic-Plan-2011-13-V3-spreads[1]LCAA-Strategic-Plan-2011-13-V3-spreads[1]
LCAA-Strategic-Plan-2011-13-V3-spreads[1]
 

Similar to Building a better, accessible web

Plan For Accessibility - TODCon 2008
Plan For Accessibility - TODCon 2008Plan For Accessibility - TODCon 2008
Plan For Accessibility - TODCon 2008
Denise Jacobs
 
Accessibility for beginners
Accessibility for beginnersAccessibility for beginners
Accessibility for beginners
Elizabeth Fiennes
 
Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010
Kailash More
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
Amal Abduallah
 
Accessibility for beginners
Accessibility for beginnersAccessibility for beginners
Accessibility for beginners
Elizabeth Fiennes
 
Testing flash and flex for accessibility indic threads-q11
Testing flash and flex for accessibility indic threads-q11Testing flash and flex for accessibility indic threads-q11
Testing flash and flex for accessibility indic threads-q11
IndicThreads
 
Accessibility and Web Technologies @HTML5_Toronto
Accessibility and Web Technologies @HTML5_TorontoAccessibility and Web Technologies @HTML5_Toronto
Accessibility and Web Technologies @HTML5_Toronto
George Zamfir
 
doumi94
doumi94doumi94
doumi94
doumi94
 
Universal design for e learning final
Universal design for e learning finalUniversal design for e learning final
Universal design for e learning final
Jozenia (Zeni) Colorado
 
Assistive technologiesslides
Assistive technologiesslidesAssistive technologiesslides
Assistive technologiesslides
Yamna Shaban
 
Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009
Emagination ®
 
Designing, Developing & Testing for Accessibility
Designing, Developing & Testing for AccessibilityDesigning, Developing & Testing for Accessibility
Designing, Developing & Testing for Accessibility
Eric Malcolm
 
EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...
EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...
EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...
Evolve The Adobe Digital Marketing Community
 
EVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEM
EVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEMEVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEM
EVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEM
Evolve The Adobe Digital Marketing Community
 
Improving Your Website's Accessibility
Improving Your Website's AccessibilityImproving Your Website's Accessibility
Is accessibility the new black?
Is accessibility the new black?Is accessibility the new black?
Is accessibility the new black?
George Otoiu
 
Web Accessibility Workshop
Web Accessibility WorkshopWeb Accessibility Workshop
Web Accessibility Workshop
josodo
 
WCA
WCAWCA
Accessibility Workshop
Accessibility WorkshopAccessibility Workshop
Accessibility Workshop
Lar Veale
 
Corporate Web Accessibility Implementation Strategies
Corporate Web Accessibility Implementation StrategiesCorporate Web Accessibility Implementation Strategies
Corporate Web Accessibility Implementation Strategies
UA WEB, A.C.
 

Similar to Building a better, accessible web (20)

Plan For Accessibility - TODCon 2008
Plan For Accessibility - TODCon 2008Plan For Accessibility - TODCon 2008
Plan For Accessibility - TODCon 2008
 
Accessibility for beginners
Accessibility for beginnersAccessibility for beginners
Accessibility for beginners
 
Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Accessibility for beginners
Accessibility for beginnersAccessibility for beginners
Accessibility for beginners
 
Testing flash and flex for accessibility indic threads-q11
Testing flash and flex for accessibility indic threads-q11Testing flash and flex for accessibility indic threads-q11
Testing flash and flex for accessibility indic threads-q11
 
Accessibility and Web Technologies @HTML5_Toronto
Accessibility and Web Technologies @HTML5_TorontoAccessibility and Web Technologies @HTML5_Toronto
Accessibility and Web Technologies @HTML5_Toronto
 
doumi94
doumi94doumi94
doumi94
 
Universal design for e learning final
Universal design for e learning finalUniversal design for e learning final
Universal design for e learning final
 
Assistive technologiesslides
Assistive technologiesslidesAssistive technologiesslides
Assistive technologiesslides
 
Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009
 
Designing, Developing & Testing for Accessibility
Designing, Developing & Testing for AccessibilityDesigning, Developing & Testing for Accessibility
Designing, Developing & Testing for Accessibility
 
EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...
EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...
EVOLVE'16 | Maximize | Gina Petruccelli & Libby Schaper | Web Accessibility &...
 
EVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEM
EVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEMEVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEM
EVOLVE'16 | Maximize | Libby Schaper & Gina Petrucceli | Web Accessibility & AEM
 
Improving Your Website's Accessibility
Improving Your Website's AccessibilityImproving Your Website's Accessibility
Improving Your Website's Accessibility
 
Is accessibility the new black?
Is accessibility the new black?Is accessibility the new black?
Is accessibility the new black?
 
Web Accessibility Workshop
Web Accessibility WorkshopWeb Accessibility Workshop
Web Accessibility Workshop
 
WCA
WCAWCA
WCA
 
Accessibility Workshop
Accessibility WorkshopAccessibility Workshop
Accessibility Workshop
 
Corporate Web Accessibility Implementation Strategies
Corporate Web Accessibility Implementation StrategiesCorporate Web Accessibility Implementation Strategies
Corporate Web Accessibility Implementation Strategies
 

Recently uploaded

留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
bseovas
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
cuobya
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
Trending Blogers
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
SEO Article Boost
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
CIOWomenMagazine
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 

Recently uploaded (20)

留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 

Building a better, accessible web

  • 2. About Me Matt Stow @stowball Senior UX Engineer at TOTVS Labs
  • 3. “We should be able to access the web … regardless of the software we use, the computer we have, the language we speak … and regardless of our sensory or interaction modes” w3.org/standards/
  • 4.
  • 5.
  • 6.
  • 7. Statistics Around 40% (6.8 million) of Australians aged 18+ have a disability or long-term health condition   53% of people aged 65+ report to having some form of disability Australian Human Rights Commission
  • 8. “‘People with disability’ is the only minority group that anyone can join at any time” Australian Network on Disability
  • 9. #PlotTwist Equal Access is Required by Law “…websites whose development commences after July 1 2010 should comply with WCAG 2.0 to a minimum of AA-Level…” Section 2.2 of the Disability Discrimination Act Section 4.2 of the Disability Discrimination Act
  • 10. Types of disabilities Hearing impairments   Cognitive & learning disabilities   Mobility & physical impairments   Vision disabilities
  • 11. Hearing impairments Who’s affected? People with full or partial hearing loss Quick wins Provide captions and/or transcripts for audio and video Non-native speakers also benefit
  • 12. Cognitive & learning disabilities Who’s affected? People with ADD, autism, dementia, dyslexia and more Quick wins Avoid justified text and ALL CAPS; use sans-serif fonts Simplify the language used and reduce the amount of text Reduce the complexity of the UI’s appearance and functions Use Invisible Animation
  • 13. Mobility & physical impairments Who’s affected? People with limited dexterity or upper limb disabilities Quick wins Mouse hover actions Ensure a sensible tabbing order Visible focus states for all interactive elements need to be forgiving
  • 14. Vision disabilities Who’s affected? Quick wins People with colour blindness People with low or no vision Ensure text alternatives for images & visually absent text Ensure your palette has a suitable colour contrast ratio (for low or no vision)
  • 15. Colour blindness Deuteranopia (red-green) Protanopia (another red-green) Tritanopia (blue-yellow) Up to 10% of the population may be affected You can’t rely on colour alone to convey information (red-green) (another red-green) (blue-yellow)
  • 16. The State of Front-End Tooling 2016 - Results
  • 19. Trello Labels have a color blind friendly mode!
  • 20. Simulating colour blindness Photoshop’s Proof Setup  cross-platform app Chrome extension Sass mixin Color Oracle NoCoffee Vision Simulator AcceCSS All have slightly different features and results, and are useful at different times in the process
  • 21. Colour contrast ratio Text ratio needs to be 3 – 4.5:1 depending on size But don't make the ratio too high! Test with aremycolorsaccessible.com
  • 22.
  • 23. Tools used by the vision impaired Screen magnifiers and browser zoom 1. Windows 2. Mac and iOS 3. Chrome on desktop 4. Android Screen readers such as JAWS , NVDA , VoiceOver , Windows-Eyes , ChromeVox and TalkBack 1 1 2 1 3 4
  • 24. Screen reader statistics 85% of users primarily use Windows 49% of those use screen readers with IE 69% use screen readers on mobile 70% of those use iOS as their mobile platform WebAim Screen Reader User Survey #6 Results
  • 25. Screen reader features Quick access to landmarks, headings, lists and links Shortcuts for navigating to, and using form controls Connect to Braille displays and a lot more… I highly recommend doing the VoiceOver Training course that's built in to macOS to learn more
  • 26. How to build for #a11y 1. Follow the Web Content Accessibility Guidelines (WCAG)   2. Use semantic HTML (and understand the impact of CSS)   3. Implement WAI-ARIA (often with JavaScript) #
  • 27. Mattstow’s hierarchy of #a11y* * Terrible pun
  • 28. What is WCAG 2.0? A W3C standard which recommends how to make web content more accessible to people with disabilities It's generic, so doesn‘t dictate technology choices Divided in to 12 major guidelines across 4 core principles Each sub-guideline has a conformance rating from A–AAA
  • 29. WCAG at a glance Principle 1: Perceivable Provide text alternatives for non-text content Provide captions/alternatives for multimedia w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle1 Create content that can be presented in different ways without losing meaning Make it easier for users to see and hear content
  • 30. WCAG at a glance Principle 2: Operable Make all functionality available from a keyboard Give users enough time to read and use content Do not use content that causes seizures Help users navigate and find content w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle2
  • 31. WCAG at a glance Principle 3: Understandable Make text readable and understandable Make content appear and operate in predictable ways Help users avoid and correct mistakes w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle3
  • 32. WCAG at a glance Principle 4: Robust Maximise compatibility with current and future user agents w3.org/WAI/WCAG20/quickref/?showtechniques=311,313#principle4
  • 33. Use semantic HTML Add a valid `lang` attribute to <html> Don‘t disable zooming Use appropriate HTML5 elements Don‘t skip heading levels Use native browser controls where possible Only <a> and <button> should be “clickable” All form elements must be labelled Placeholders aren‘t labels
  • 34. Understand the impact of CSS Test without CSS to ensure a logical source order Minimum of 14px font size for body content Pseudo content is read out, so it has to be meaningful OK to use a utility class to hide content Don‘t remove `:focus` outlines – or provide alternatives `visibility: hidden` hides from ATs but is animatable! .visually-hidden
  • 35. Smart :focus styles github.com/stowball/keyboard-focus function keyboardFocus (e) { if (e.keyCode !== 9) { return; } document.documentElement.classList.add('keyboard-focus'); document.removeEventListener('keydown', keyboardFocus, false); } document.addEventListener('keydown', keyboardFocus, false); :focus { box-shadow: none; outline: none; } .no-js :focus, .keyboard-focus .element-with-custom:focus { box-shadow: 0 0 2px 1px #00cdcb; }
  • 36. Animating visibility: hidden .chip.is-hidden { max-width: 0; opacity: 0; transition: opacity ease 0.25s, transform ease 0.25s, margin ease 0.45s 0.15s, max-width ease 0.45s 0.15s, visibility 0s 0.6s; transform: scale(0); visibility: hidden; }
  • 37. What is WAI-ARIA? A spec on how to increase the accessibility of Rich Internet Applications Uses role attributes to describe the type of element Uses property attributes to describe relationships, functions and UI states
  • 39. Common ARIA properties aria-current (state) aria-expanded (state) aria-haspopup aria-hidden (state) aria-invalid (state) aria-label aria-pressed (state) aria-selected (state) w3.org/TR/wai-aria-1.1/#global_states Widgets aria-atomic aria-controls aria-labelledby aria-live aria-owns Others
  • 42. <nav role="navigation" aria-label="Main"> <button aria-label="Navigation" aria-controls="menu" aria-haspopup="true" aria-expanded="false" aria-pressed="false" > </button> <ul id="menu"> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> </ul> </nav> var $button = $('button'); var isMenuOpen = false; $ $button.on('click', function () { isMenuOpen = !isMenuOpen; $button.attr('aria-expanded', isMenuOpen); $button.attr('aria-pressed', isMenuOpen); }); button[aria-pressed="true"] { /* change caret indicator */ } button[aria-expanded="true"] + #menu { /* show menu */ } var $button = $('button'); var isMenuOpen = false;
  • 45. <div class="product"> <!-- This should be in a form with a server-side fallback --> <h3>Super Mario T-shirt</h3> <button class="btn btn-default"> Add <span class="u-visually-hidden">Super Mario T-shirt</span> to cart </button> </div> <div id="toaster" role="alert" aria-atomic="true" aria-live="assertive"></div> var $button = $('button'); var $toaster = $('#toaster'); $button.on('click', function () { $toaster .html('<span class="u-visually-hidden">Super Mario T-shirt has been </span>' + 'Added to your cart').addClass('is-visible'); setTimeout(function () { $toaster.removeClass('is-visible'); }, 1500); }); .u-visually-hidden { /* https://gist.github.com/stowball/2704364c1ceefb1d7eaf570b903463b3 */ }
  • 47. Implementation resources WAI-ARIA Authoring Practices 1.1 Heydon Pickering's Practical ARIA Examples Deque University's Examples OpenAjax Accessibility Examples My Accessible Widgets CodePen collection