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

  • 375