Using WCAG and ARIA for an accessible project
Do you think you know everything about your user?
NO
You have no control over the user
• Blindness • Low vision • Deafness • Hearing loss • Learning disabilities • Cognitive limitations • Limited movement • Speech disabilities • Photosensitivity… • and combinations of these
People with disabilities in the world 15%It means, more than 1.000.000.000 people Source: UN - 2011 http://www.who.int/disabilities/world_report/2011/en/
People with disabilities in Brazil 24% 45.623.910 people Source: Brazilian Census 2010 http://censo2010.ibge.gov.br/en/
Web Accessibility must be part of development routine
Web Content Accessibility Guidelines http://www.w3.org/TR/WCAG/ WCAG
Principle 1: Perceiveble Principle 2: Operable Principle 3: Understandable Principle 4: Robust WCAG Principles
ARIA e HTML5 WAI-ARIA (Accessible Rich Internet Applications) defines a way to make Web content and Web applications more accessible to people with disabilities. It especially helps with dynamic content and advanced user interface controls developed with Ajax, HTML, JavaScript, and related technologies. http://www.w3.org/WAI/intro/aria
ARIA e HTML5 progressbar radiogroup scrollbar slider spinbutton status Tab tabpanel textbox tooltip 73 ROLES alert Alertdialog button checkbox dialog menu menubar menuitem option ... http://www.w3.org/TR/wai-aria/roles#role_definitions
ARIA e HTML5 aria-activedescendant aria-atomic aria-autocomplete aria-busy (state) aria-checked (state) aria-controls aria-describedby aria-disabled (state) aria-dropeffect aria-expanded (state) aria-flowto aria-grabbed (state) 35 States and Properties aria-haspopup aria-hidden (state) aria-invalid (state) aria-label aria-labelledby aria-level aria-live aria-multiline aria-multiselectable aria-orientation aria-owns ... http://www.w3.org/TR/wai-aria/states_and_properties
Situation: An image galery
<img src=“starwars.jpg” alt=“Cover picture of the movie Star Wars - The Empire Strikes Back”>
<div class="foto" role="img" aria-label=“W3C Logo inside the CSS"></div> <img src="img-slides/w3clogo.png" alt=“W3C Logo inside the HTML">
Demo
Situation: Multiple languages
Demo
Situation: A web page full of headlines
<a href=“#contents”>Skip</a> <elemento id=“skip”>
<h1>...</h1> <h2>...</h2> <h3>...</h3> <h2>...<h2> <h3>...</h3> <h4>...</h4> <h2>...</h2> <h3>...</h3>
Situation: Menu and Submenus
CSS: a:hover a:focus JavaScript: onmouseover="#" onfocus="#" onmouseout="#" onblur="#"
Demo
Situation: Forms
<fieldset> <legend> Fill the form </legend> <label for="text"> Name</label> <input id="text" type="text" aria-describedby="comp"> <p id="comp"> Fill the form with your real name!</p> </fieldset>
<fieldset> <legend> Fill the form </legend> <label for="text"> Name</label> <input id="text" type="text" aria-describedby="comp"> <p id="comp"> Fill the form with your real name!</p> </fieldset>
<fieldset> <legend> Fill the form </legend> <label for="text"> Name</label> <input id="text" type="text" aria-describedby="comp"> <p id="comp"> Fill the form with your real name!</p> </fieldset>
Demo
Slider
html5accessibility.com
Demo
Situation: Use of colors
Demo
Situation: Dynamic elements
<button role=“button” aria-pressed=“false”> Edit mode </button> <button role=“button” aria-pressed=“true”> Edit mode </button>
Live Regions
Demo
the last but not the least • Validate Markup • Follow the W3C Recommendations (WCAG and ARIA) • Use automatic validation to help you check accessibility issues • Check the warnings and manually check results of automated tool • Test (keyboard navigation, color contrast tools, assistive tecnologies, etc)
Tks! @reinaldoferraz reinaldo@nic.br Web Accessibility must be part of development routine

Using WCAG and ARIA for an accessible project