The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.
Tim Berners-Lee,
W3C Director and inventor of the World Wide Web
Accessibility ( a11y ) is the practice of making your websites usable by as many people as possible.
We traditionally think of this as being about people with disabilities, but the practice of making sites accessible also benefits other groups such as those using mobile devices, or those with slow network connections.
People aged 60 years or over *:
• 962 million – 2017
• 2.1 billion – 2050
• 3.1 billion – 2100
Designing products that are easier for older people to use is similar to designing for people with disabilities.
SWAG
WCAG 2.1 is organized in layers
1.1 Text Alternatives: Provide text alternatives for any non-text content
1.2 Time-based Media: Provide alternatives for time-base
1.3 Adaptable: Create content that can be presented in different ways (e.g., simpler layout) without losing information or structure
1.4 Distinguishable: Make it easier for users to see and hear content including separating foreground from background
2.1 Keyboard Accessible: Make all functionality available from a keyboard
2.2 Enough Time: Provide users enough time to read and use content
2.3 Seizures: Do not design content in a way that is known to cause seizures or physical reactions
2.4 Navigable: Provide ways to help users navigate, find content, and determine where they are
2.5 Input Modalities: Make it easier for users to operate functionality through various inputs beyond keyboard
3.1 Readable: Make text content readable and understandable
3.2 Predictable: Make Web pages appear and operate in predictable ways
3.3 Input Assistance: Help users avoid and correct mistakes
4.1 Compatible: Maximize compatibility with current and future user agents, including assistive technologies
can block some people with disabilities from getting information or accomplishing a task, and/or are relatively easy for developers to implement or are common in the existing user agents.
can cause difficulty for some people with disabilities in getting information or accomplishing a task (including tasks causing excessive fatigue), and/or can be more difficult for developers to implement
improve accessibility or reduces fatigue for some people with disabilities, and/or can be very difficult for developers to implement
Accessible Rich Internet Applications (ARIA) is a
set of attributes that define ways to make Web content and Web applications more accessible to people with disabilities.
WAI-ARIA is a W3C protocol for enhancing and supporting accessibility of scripted and dynamic content. ARIA enhances accessibility of interactive controls, provides content roles for identifying page structure, areas that can be dynamically updated, better support for keyboard accessibility and interactivity,
labels or names
roles
states of dynamic/interactive components
properties of items
relationships between items
live updates
Note that using ARIA does not automatically implement the standard widget behavior – you will still need to:
Screen readers and other assistive technologies need to know the role of each element on the web page to be able to interact with it intelligently.
When a screen reader comes to an <img> element, for example, the screen reader knows it is an image — so the screen reader will tell the user that it is an image (most screen readers say "graphic") and then it will read the alt text for the image.
Every HTML element has a role, meaning a set of features, properties, and methods of conveying information to and/or from the user. Essentially the role defines what the element is.
<h3 id="rg1_label">Lunch Options</h3>
<ul class="radiogroup" id="rg1" role="radiogroup" aria-labelledby="rg1_label">
<li id="r1" tabindex="-1" role="radio" aria-checked="false">
<img role="presentation" src="radio-unchecked.gif"/> Thai
</li>
<li id="r2" tabindex="-1" role="radio" aria-checked="false">
<img role="presentation" src="radio-unchecked.gif" /> Subway
</li>
<li id="r3" tabindex="0" role="radio" aria-checked="true">
<img role="presentation" src="radio-checked.gif" /> Radio Maria
</li>
</ul>
<form>
<div>
<label for="name">* Name:</label>
<input type="text" value="name" id="name" aria-required="true"/>
</div>
<div>
<label for="phone">Phone:</label>
<input type="text" value="phone" id="phone" aria-required="false"/>
</div>
<div>
<label for="email">* E-mail:</label>
<input type="text" value="email" id="email" aria-required="true"/>
</div>
</form>
The tabindex global attribute indicates if its element can be focused, and if/where it participates in sequential keyboard navigation (usually with the Tab key, hence the name).
tabindex="0" means that the element should be focusable in sequential keyboard navigation, but its order is defined by the document's source order.
A positive value means the element should be focusable in sequential keyboard navigation, with its order defined by the value of the number
The maximum value for tabindex is 32767. If not specified, it takes the default value 0
links