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
- USA: Section 508, ADA (now)
- EU: European Accessibility Act (2025)
- Canada: AODA (2021)
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


