There is always a way

to fix Accessibility

@GlafiraZhur for the EpicHey! Conference

November 2023

Glafira Zhur

Twitter: @glafirazhur

Accessibility Lead

 

         GDE for Web

 

Accessibility Club Minsk

Accessibility Unity

PC Member

Name

(label)

Role

(semantics)

Value

(properties and states)

dialog

label

modality

aria

1

2

3

4

5

6

People With Disabilities

15% of population​

1,211,238,211

Earth population

8,074,921,408

15%

Temporary disabilities and external conditions are NOT INCLUDED

Legislation

Statistics (US)

Think about a11y closely if you are...

🤔

🤔

🤔

🤔

🤔

🤔

🤔

🤔

... a Frontend Developer

😸 who is a Junior

😸 who've never heard of A11Y

Do not remove the aria-attributes

from the UI components

ARIA-attributes

do not change

visual appearance (CSS)

or behavior (JS)

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

⚠️

There is no AREA attributes, only ARIA

Do not use properties which do not exist

... a Full Stack Developer

😸 who don't mind HTML

😸 who uses ready-to-use libraries

😸 who creates custom components

<input placeholder="Birth surname">

👽 In a <form>, button triggers a submit.

<button type="button">EpicHey!</button>

👽 the disabled attribute disables tabbing and cannot be enabled

<button disabled>EpicHey!</button>

👽 It contains default styling that is up to the browser

button.epic {
	all: unset;
}
<header>
	<nav> 
      <!-- List of links -->      
  	</nav>
</header>

<article class="product-card">
  <button>Add to cart</button>
</article>

Use proper semantics

✅1st rule of ARIA:

Don’t use ARIA

(if you can use HTML instead)

Do not override the native semantics

✅2nd rule of ARIA:

Don’t change the native semantics

And it doesn't matter who you are...

🦑

👾

👻

🦄

😸

🦝

🤖

👽

Name: " "

Do not forget to give an accessible name

for interactive elements

✅5th rule of ARIA:

All interactive elements

must have an accessible name

Where are the 3rd and the 4th rules of ARIA?

🤔

🤔

🤔

🤔

🤔

🤔

🤔

🤔

✅3rd rule of ARIA:

Don’t use role=“presentation”
or aria-hidden=“true”
on visible focusable elements

aria-hidden=“true”

✅4th rule of ARIA:

All interactive ARIA roles need to be operable by keyboard

Check the keyboard navigation

✅

Check the accessible name for the interactive elements

✅

Use semantics but don't overdo it

✅

✅

Read the WAI-ARIA spec 😅

There is always a way!

More reading 😅😌

WCAG (Web Content Accessibility Guidelines) - a single shared standard for web content accessibility that meets the needs of individuals, organizations, and governments internationally.

WCAG

How to Meet WCAG

Accessible Components, Design Systems, Guidelines

Glafira Zhur

Twitter: @glafirazhur

Thank you!

Learn accessibility!

There is always a way to fix Accessibility

By Glafira Zhur

There is always a way to fix Accessibility

  • 497