On Github hmig / acCeSSibility
Hi.
My name is Heather Migliorisi and I'm the Senior UI Developer for GiftCards.com.
I've been working on making our site accessible for the last year and a half.
We have a ways to go, but one release after next, we are getting there.
So, what do I mean when I say accessibility?
Accessibility means a digital world for everyone, regardless of where, when, why, and how you consume the content that is being communicated. It’s communication that’s non-discriminatory in every way. -from simplyaccessible.com
I like the definition provided by Simply Accessible that was the result of a survey they did asking folks what accessibility meant to them.
The definition that came out of that was:
Accessibility means a digital world for everyone,
regardless of where, when, why, and how the content that is being communicated is consumed.
It’s communication that’s non-discriminatory in every way.
Accessibility means a digital world for everyone.
Simply put:
It means a digital world for everyone, regardless.
Census Data Concludes: Nearly 1 in 5 People Have a Disability in the U.S.
*image from http://www.commerce.gov/blog/2012/07/25/census-report-nearly-1-5-people-have-disability-us-updateAccording to Census Data: Nearly 1 in 5 People Have a Disability in the U.S.
Opening your business up to 20% more of the population doesn't mean you'll make 20% more, but at least you won't be preventing it
Think about how low of a usage % before you are able to stop supporting a browser version ... such as IE8.
Businesses must comply with Section 508 when supplying Electronic and Information Technology goods and services to the federal government. - source webaim.org
Also - Businesses must comply with Section 508 when supplying Electronic and Information Technology goods and services to the federal government.
Title III of the ADA requires that public and private establishments provide reasonable accommodations to the disabled and the DOJ has stated that law applies online as well..
So - You can save money by preventing loss due to legal fees, settlement costs, and harm to brand
Because it's the right thing to do
How many people do you see using ramps and elevators that are not disabled?
All of these folks are able to benefit from the features added for people labeled with having disabilities.
I stumbled upon some some tweets by Una Kravets about using a screen reader.
And this one is a reminder that anyone could be using one.
You can retain information better if you read and hear it at the same time.
So - reading the transcript of a podcast while you listen to it
OR listening to the screen reader while you read an article
... doing can help you learn and retain the information
Frankly, some people just prefer one over the other.
By using proper markup and the latest standards, the content becomes more flexible and easier to use tools to extract and present the information to users in different modalities (gym equipment, refrigerator, ...).
Disability Classifications or Buckets
Achromatopsia
Deuteranopia
Protanopia
Tritanopia
There are 4 types of visual classifications, the first is color blindness or difficulty distinguishing between colors.
WEB content that simply relies on color to convey meaning may cause certain users to be lost
such as Alerts or error messages, so it's best to add icons or special styling with those
CanIUse.com offers Setting to make colors accessible
on the left, it's normal AND on the right are the accessible colors
The next type of visual classification is Low Vision
So - the majority of visually impaired are not completely blind...but have some sort vision impairment.
such as: blurry, cloudy, center field loss or, the opposite, tunnel vision
You can expect these users to zoom in on the page, so RWD can really help here.
The next type of visual classification is blindness.
!!!!!show video of blind man using iphone
The next classification is hearing
providing closed captioning and transcripts are very important for people with hearing loss
It can also benefit people who prefer to read content vs listen to it
Or someone who is in a crowded area without headphones.
Providing closed captioning and transcripts also help with SEO because it provides bots with searchable info that would otherwise be lost.
The next classification is Motor Disabilities
Motor Disabilities can be the result of either:
Traumatic Injuries which include things like
OR Diseases and Congenital Conditions such as:
The picture is of a child using a mouth stick.
Here's a video via YouTube of someone using one. -------- play video ----------
There are a lot of different types of Assistive Technologies to aid people with motor disabilities
Pictured are some handmade ones found via etsy
Others types include:
NOTE - Regardless, most assistive technologies either work through the keyboard or emulate the keyboard.
BUT - Keep in Mind - These folks have limited mobility ... Don't autoplay things page ... but if you do, provide controls to allow users to stop the elements.
Cognitive Disabilities Include (but are not limited to):
Things to consider for the web:
When it comes to content and features: KISS - Keep It Short and Simple
Clean designs
Easy to comprehend content
Avoid:
-content overload
-blinking animations (can induce seizures)
-things like carousels (that autoplay and cannot be stopped ARE the worst ... for everyone) and parallax can literally make people sick
Just because you don't fall into one of these classification today, doesn't mean you can't or won't in the future.
Not accounted for in the census data are things like...
Temporary disabilities, like a broken arm.
---NEXT SLIDE---
OR getting older
---NEXT SLIDE---
Trying to use a computer in a loud or bright area
---NEXT SLIDE---
WE (you and I) are addicted to the internet.
From the time we wake up until we go to bed.
We are on one device or another.
Socializing, emailing, working, repeat.
But - what if you couldn't access the internet today? Can you imagine being the only one not able to access it ... without help from someone else?
You want to buy the latest/greatest tech gadget and the page loads blank.
What if you tried going to your favorite site for your favorite online activity....
Annnd, you got a blank screen?
...the page is freaking out and filled unrecognizable errors
Or a ton of unrecognizable error messages...
that you couldn't close.
When do you give up?
What if ... every site you went to was like this?
What if ... you could no longer use the internet you helped develop?
What if you had to ask someone to click buttons for you....?
Sadly, this is what much of the web is like for people with disabilities.
The Internet We Have Today Is Broken
But, since HTML2, the it was accessible by default
html2 (1995) had text, links, images with alt text and simple forms
This is Yahoo from 1996. It is completely accessible.
So - 1995 - completely accessible internet
Here's yahoo today ... Yikes... I'm not picking on Yahoo, I wanted a site that I could compare with back in 1995-ish era
Today, We're
The internet is broken ...
How did we get to this point?
Regardless of project management method:
It doesn't matter what project management method you use...
What matters is that accessibility is part of the discussion
So, how did we get here?
---read list---
We realize or even worse, we're told ... we forgot about accessibility.
It's really uncomfortable when you launch a new site and list all of the awesome features it has...
Only to be told that it is completely inaccessible.
Or even worse... sued for it being inaccessible.
Don't let that be you.
changing our mindset
we did it before with rwd and mobile first
Let's ensure that people with disabilities can easily access the web.
We can do it again! Accessible Web Design (AWD) OR Accessibility First
Ramp up the stairs
These attributes communicate to assistive technologies a semantic:
ARIA - Accessible Rich Internet Applications -
defines methods to make Web content and Web applications more accessible to people using assistive technology
This standard allows developers to set roles, states and properties on html elements
Giving us accessible navigation landmarks, JavaScript widgets, form hints and error messages, live content updates, and so on.
If you can use a native HTML element or attribute, do it. - straight from the w3c
❮button role="button"❯ button text ❮/button❯
❮input type="text" required aria-required="true"❯
❮div hidden aria-hidden="true"❯
❮h1 role="heading" aria-level="1"❯heading text❮/h1❯
What this means is that, where implemented, the browser will expose the default implicit semantics of the element so you don’t have to.
❮header❯ maps to role="banner"
❮nav❯ maps to role="navigation"
❮main❯ maps to role="main"
❮section❯ maps to role="region"
❮article❯ maps to role="article"
❮aside❯ maps to role="complementary"
❮footer❯ maps to role="contentinfo"
BUT IE and Safari do not offer support for all of the role mappings. -Deque University
❮header role="banner"❯
❮nav role="navigation" ❯
❮main role="main" ❯
❮footer role="contentinfo" ❯
Read List
Now that we understand ARIA, let's start auditing!
Now that we know what ARIA is ... let's start auditing!
First things, first. Make the site robot readable. Screen readers are bots ...
We test using the w3c validator.
this one step will catch a multitude of sins
seeing info, errors and warnings
Info is obviously just general information
Warnings vs Errors
Errors - required to fix to validate
Warnings - are more of you may or may not need to fix -> more of a recommendation
When you validate your site via W3C, you'll catch embarrassing errors like unsemantic html
<a href="#" onmouseover="dropdownmenu()">Products</a>
<button onmouseover="dropdownmenu()" class="btn-primary">button</button>
Do NOT remove the default :focus { outline: none; outline: 0; }! Update the css if you do not like how it looks, but do not remove it! It is imperative for ppl that nav via keyboard to see what the focus is on.
DO NOT add a tabIndex that is greater than 0.
Go through the main nav every time?
Add a skip nav (and make sure it works!) -- add tabindex=-1 to elements you want to be focusable, but not in the normal tab order
Or do you provide a skip nav?
Add a skip nav (and make sure it works!) -- add tabindex=-1 to elements you want to be focusable, but not in the normal tab order
Or skip different sections of content?
Add other skips or simply set a negative tabindex for elements that are redundant
The difference in color and light between parts of an image. -wikipedia
Image from: howdesign.comBad: Error Messaging Relies on Color
Better: Message Conveyed With Icons
Using the Chrome Plugin, NoCoffee, you can easily change settings to see the page in different hues.
Simple. Do it.
Using the Chrome Plugin, Alt text viewer, with a single click, you can see what screen readers will hear.
<figure> <img src="images/cat-cactus.jpg" alt="Cat trying to take a bite out of a cactus plant."> <figcaption>Be careful when choosing houseplants if you have pets. They may be poisonous to the animal.</figcaption> </figure>
When appropriate, you can use newish html5 elements figure and figcaption.
HTML
CSS
//hiding text elements from the view, but keeping them available to the screen reader .sr-only { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: polygon(0px 0px, 0px 0px, 0px 0px, 0px 0px); //for clip being deprecated }
<svg version="1.1" width="300" height="100" aria-labelledby="title desc" role="img"> <title id="title">Green rectangle</title> <desc id="desc">A light green rectangle with rounded corners and a dark green border.</desc> <rect width="200" height="100" rx="20" ry="20" fill="#90ee90" stroke="#228b22" stroke-fill="1"></rect> <text x="100" y="60" font-size="1em" text-anchor="middle" fill="#000000">Website</text> </svg>Example from: Tips for Creating Accessible SVG by Leonie Watson
text
<canvas>text</canvas> <canvas><p> text </p></canvas>
When using canvas you must provide content that conveys the same function/purpose as the bitmap canvas.
It can be as simple as providing text in the canvas. The text is not visually seen, but is read via the screen reader.
Use the nocoffee plugin to test the blur and other filters
Use the hemingway app to test the site's written content
Use the nocoffee plugin to test the blur and other filters
Moving content can also be a annoying and distracting for some people.
For people with ADD, it makes it difficult for them to concentrate on other parts of the Web page.
But - for others it can trigger dizziness, nausea, migraines AND even seizures (epilepsy)
If you want to use these types of features, provide a way for users to turn them off easily.
<label for="form_login_email" class="required hidden">Email Address</label> <input id="form_login_email" type="email" required="required" class="form-control" placeholder="Email" autocorrect="off">Don't forget to label things that have hidden labels (search box). Use .sr-only class that is used for the icon fonts.
<label class="sr-only" for="search_terms">Search for Gift Cards</label> <input type="text" id="search_terms" name="search_terms" placeholder="Search for Gift Cards" value="" autocomplete="on"> <button id="search-btn" type="submit" class="search-btn"> <span class="gc-icon-search gray" aria-hidden="true"></span> <span class="sr-only">Submit Search</span> </button>Put the label/input group in a li tag and put all of these groupings in a list. Too much to cover now.
---play video-----
------Next slide--------
Some companies are even providing developers with Accessibility Labs - Yahoo, Comcast, Facebook & Google
So - developers can try out the devices and methods and figure out how to create better experiences.
------Next slide--------
BUT - you can never replace seeing the real user experience.
It's always eye-opening to conduct user testing.
You never think somethings really "that bad" ... pause ...
Until you realize someone has to have someone else to click a button for them because they cannot access it.
You will see a different internet.
Make note of pages you audit:
Document best practices and provide:
Document best practices and provide:
So many ways:
pa11y
The four main guiding principles of accessibility are:
Perceivable - provide content alternatives (images, audio, video)
Operable (without a mouse)
Understandable - clear and simple (writing and functionality)
Robust - works across many devices
A11y Slackers: http://web-a11y.herokuapp.com/ or #a11y on twitter