This document discusses a meetup about accessibility and web technologies. The meetup will cover:
- What accessibility is and why it's important to care about it. Accessibility allows people of all abilities to have equal access to information and functionality.
- Different types of disabilities and needs that accessibility aims to support, including visual, auditory, mobility and cognitive needs.
- Standards and guidelines for accessibility, including the Web Content Accessibility Guidelines (WCAG 2.0) and the Accessibility for Ontarians with Disabilities Act (AODA).
- Practical tips for implementing accessibility, such as using semantic HTML, keyboard support, forms, visual design, progressive enhancement, and testing techniques.
Nell’iperspazio con Rocket: il Framework Web di Rust!
Accessibility and Web Technologies @HTML5_Toronto
1. HTML5 Toronto Web Developers Meetup
Accessibility & Web Technologies
@georgezamfir
a11y@georgezamfir.com
#a11y = accessibility
2. HTML5 Toronto Web Developers Meetup
The power of the Web is in its universality
Access by everyone regardless of disability is an essential aspect
- Tim Berners-Lee
W3C Director
Inventor of the World Wide Web
@georgezamfir
a11y@georgezamfir.com
#a11y = accessibility
5. Accessibility is about disabilities…
It’s making things accessible for people with disabilities, riiiiight?
What is accessibility ?
6. "We are only as (dis)abled
as the environment around us!"
What is accessibility ?
7. "We are only as (dis)abled
as the environment around us!"
- Oscar Pistorius
What is accessibility ?
8. "We are only as (dis)abled
as the environment around us!"
Gillian Lynne – “She’s not sick, she’s a dancer!”
What is accessibility ?
9. 4 Basic Types of Needs
Visual low vision, colorblindness, blindness
Screen magnifiers, text-to-speech, refreshable braille, good mark-up
Auditory hearing loss, deafness
Captions & transcripts, haptic feedback, good mark-up
Mobility dexterity, strength, loss of limb
Speech-to-text, alternative input hardware, good mark-up
Cognitive & Speech dyslexia, ADD, lack of skills
Word prediction, augmentative devices (hear & see), good mark-up
What is accessibility ?
10. Accessibility is not just about disabilities!
Disabilities
Aging population
Non-native language speakers
Low (computer?) literacy
What is accessibility ?
11. It’s not about them, it’s about all of us!
What is accessibility ?
24. WCAG 2
So, how in the world do I know how to build for
all these types of needs?
It would be nice to have one standard that
addresses all needs / disabilities / ATs, right?
Web Content Accessibility Guidelines (WCAG 2) - w3.org/TR/WCAG
25. WCAG 2
W3C set of 12 guidelines
Technology agnostic – not just for HTML
Covers a wide range of needs / disabilities
Developed by W3C & numerous experts
Widely adopted as THE standard for compliance
3 levels of compliance: A, AA, AAA
Web Content Accessibility Guidelines (WCAG 2) - w3.org/TR/WCAG
26. How to Use WCAG 2 ?
Set of 12 Guidelines divided into 4 Principles
Perceivable Information and UI can’t be invisible to all senses
Operable Users must be able to operate UI & navigation
Understandable Info & operation of UI must be understandable
Robust Content must be interpreted reliably by all user agents
Web Content Accessibility Guidelines (WCAG 2) - w3.org/TR/WCAG
27. Web Standards & WCAG 2
Use web standards for greater interoperability &
functionality to people using AT, alternative
browsers, mobile devices
Doesn’t necessarily provide an engaging UX but
using standards at least people can have an
experience in the first place.
Web Content Accessibility Guidelines (WCAG 2) - w3.org/TR/WCAG
28. Accessibility for Ontarians with
Disabilities Act (AODA)
• ON legislation for accessible products & services
• Information & Communication standard (IC) – 1/5
• IC standard – requirement to conform with WCAG 2
• For businesses in both the private & public sectors
Accessibility for Ontarians with Disabilities Act – AODA 2005
29. Information & Communication Standard
Timelines
ON Government Level AA - 2012
All public & private > 50 Level A – 2014, AA – 2021
It’s your responsibility
to deliver accessible products & services to your clients
who may not necessarily be the users.
Information & Communication (IC) Standard – AODA
36. This website is best viewed at 1024x768
and only works with a mouse
Practical #A11Y – Keyboard Access
37. 2 BIG concepts:
Everything is functional by keyboard
(including highly interactive UI elements)
Visual focus indicator
(be the :focus to my :hover)
Practical #A11Y – Keyboard Access
39. Forms Fields & More
Associate <label> with form <input> using for / id
Use <fieldset> & <legend> for logical groups of fields
(then hide off-screen what you don’t / can’t style appropriately)
Deal with input errors & error messages
(beware of browsers’ support for required=)
How to do accessible tooltips / hover effects
Practical #A11Y – Forms Fields & More
40. Associate <label> with form <input> using for / id
Use <fieldset> & <legend> for logical groups of fields
(then hide off-screen what you don’t / can’t style appropriately)
<h3 class="section">Are you applying with a co-applicant?</h3>
<fieldset>
<legend>Are you applying with a co-applicant?</legend>
<label for="COAPP“>
Yes, I am applying with a co-applicant
</label>
<input id="COAPP" type="radio" value="Yes“ title="Yes, I am
applying with a co-applicant" required="required“>
<label for="COAPPNO“ >
No, I am not applying with a co-applicant
</label>
<input id="COAPPNO" type="radio" value="No“ title="No, I am
not applying with a co-applicant" required="required">
</fieldset>
Practical #A11Y – Forms Fields & More
41. Deal with input errors & error messages
(be aware of browsers’ support for required=)
• Visual & non-visual indicator that there’s an error on the field
• Keyboard / visual focus moves to errors area
• A way to move back from the error to the field
Practical #A11Y – Forms Fields & More
42. How to do accessible tooltips / hover effects
• Not just :hover anymore (look at mobile)
• Open / close by keyboard
• Manage focus
• Enhance with ARIA
Practical #A11Y – Forms Fields & More
47. UI Visual Design & Code Order
Most often the design flow should match the
source code order
Markup content in the order it should be read
NOT in the order it should be displayed
It makes it much worse for AT users (try tabbing
through every amazon.com page just to get to your product specs)
Practical #A11Y – UI Visual Design & Code Order
48. Progressive Enhancement & ARIA
Text Content & prose
HTML Semantic & some behaviour
CSS Presentation
JavaScript Advanced behaviour
ARIA Extend semantics
(insight into roles & states)
Practical #A11Y – Progressive Enhancement & ARIA
49. ARIA integrated into HTML5 but predates it
Set of attributes that specify meaning - role, properties, state
Really good for widgets that we don’t have in HTML / HTML5
ARIA-specific mark-up doesn’t affect functionality
Doesn’t mean we can get away with <div> <div> <div> <div> <div>
Practical #A11Y – ARIA - dev.w3.org/html5/markup/aria/Overview.html
50. It’s a plane… It’s a bird… It’s a…
…slider? Wait a minute, there’s no such thing in HTML!
<a href="#" aria-valuemin="0" aria-valuemax="10"
role="slider" aria-labelledby="question-transactions"
title="Transactions per week?" aria-valuenow="5" aria-
valuetext="5 transactions">5</a>
Practical #A11Y – ARIA - dev.w3.org/html5/markup/aria/Overview.html
51. Practical Accessibility Testing
Design stage: Colour contrast & general layout
Prototype stage: Keyboard & automated testing
Semantic content
Some AT testing
Development stage: Functional & AT testing
Usability testing with real people
Practical #A11Y Testing
52. Testing Techniques & Tools
Keyboard: Test for keyboard functionality & visual focus
Automated Testing: Deque FireEyes
Webaim Wave
Tools & Plugins: Firebug, Web Developer, Color Checker (FF)
AIS Web Toolbar (IE)
Your Brain: No tools can replace it!
Practical #A11Y Testing
53. A Few Thing to Remember
Write semantic content & markup, presentation matters not
Accessibility is not a feature, it’s a subset of usability
Remember: not everyone is using a mouse
Start small, do 1 thing but do it well
ASK FOR HELP!
Practical #A11Y Testing