SlideShare a Scribd company logo
Accessibility in
pattern
libraries
Building an accessible
progress
loader
What is a
progress loader?
There are lots of different
types of progress loaders.
We’re going to look at a
progress loader that takes
over the entire page while the
process is taking place.
It informs users that a task is
currently underway, and how
long it should take to finish.
It’s used for tasks that are
critical within the overall
process.
And with this type of progress
loader, users have to wait for
the tasks to be completed.
Please wait…
Please wait…
Greyed-out page behind
Please wait…
Message
Please wait…
Progress bar
Please wait…
Progress indicator
Accessibility
problems
Problem 1:
These types of loaders are
often not announced to 

Assistive technology users.
This means that blind users
may not be aware that the
progress loader has been
fired.
Problem 2:
There is often a visual
indication of progress, but no
audio indication.
This means that blind users
may not know how long they
have to wait, and may assume
that an error has occurred.
Problem 3:
Keyboard activity is often
left unlocked while the loader
is in progress.
This means that keyboard-only
users may be able to navigate
around the page while the
loader is active.
Problem 4:
There is often insufficient
colour contrast between the
progress bar and the progress
indicator.
This means that some users
may not be able to determine
the current progress.
Markup
Let's look at one way to mark
up a progress loader. Then we
can add some accessibility
features.
I’m going to show some
markup onscreen, but I’ll
describe it as we go.
Step 1:
Add an overall container.
<div class="loader">
...
</div>
Step 2:
Add descriptive text for
sighted users.
<div class="loader">
<p>Please wait...</p>
</div>
Step 3:
Add the <progress>

element - used to represent
the progressive completion

of a task.
<div class="loader">
<p>Please wait...</p>
<progress>
</progress>
</div>
Step 4:
Add the max attribute, which
indicates how much of the
task needs to be done before
it’s complete.
<div class="loader">
<p>Please wait...</p>
<progress max="1">
</progress>
</div>
Step 5:
Add the value attribute, which
indicates the current status
of the progress bar.
<div class="loader">
<p>Please wait...</p>
<progress max="1" value="0.1">
</progress>
</div>
The value must be greater
than 0.0 and less than or
equal to the value of the max
attribute.
The value should be
dynamically updated using
JavaScript.
<div class="loader">
<p>Please wait...</p>
<progress max="1" value="0.7812345">
</progress>
</div>
This value can be styled with
CSS as needed.
Of course, this is just one
possible way to mark up a
progress loader…
We could use simple <div>
elements and ARIA to provide
meaning for assistive
technologies.
<div class="loader">
<p>Please wait...</p>
<div>
<div
style="width: 10%"
role="progressbar"
aria-valuemin="0"
aria-valuemax="100"

aria-valuenow=“10">
</div>
</div>
</div>
However, assuming we stick
with the <progress> element
solution, how do we make it
accessible?
Eight tips to do
to improve
accessibility
Tip 1:
Make sure there is enough
color contrast between the
progress bar and the indicator.
Tip 2:
When the progress loader is
fired, focus should be set on
the parent container.
Please wait…
Focus on parent
Tip 3:
Add role="alert" to the
parent container.
This means that any DOM
changes within the element
will be announced to assistive
technologies.
<div class="loader" role="alert">
<p>Please wait...</p>
<progress max="1" value="0.1">
</progress>
</div>
I've used an alert here as I
want users to be aware that
this is a significant event,
worthy of alert status.
This operates like the

aria-live assertive value,
interrupting all other
announcements.
Tip 4:
Add some dynamically
changing text that announces
the status for screen readers.
<div class="loader" role="alert">
<p>Please wait...</p>
<progress max="1" value="0.1">
<span>Currently loading: 10% complete</span>
</progress>
</div>
Try not to overwhelm the user
by presenting these dynamic
updates too often.
Also, reduce the amount of
information after the initial
announcement.
“Currently loading: 10%
complete”
“20% complete”
Tip 5:
Lock keyboard activity while
the loader is in progress.
Tip 6:
When the process is complete,
send focus back to the
relevant area of the page.
Tip 7:
Some types of users may
benefit from having the
percentage value displayed
on-screen.
Please wait…
Visual value
10%
Tip 8:
Always test your proposed
solution.
Test with different operating
systems, different browsers
and different assistive
technologies.
And, if possible,

test with real users.
We’re done!
(Thanks)
Russ Weakley
Max Design
Site: maxdesign.com.au
Twitter: twitter.com/russmaxdesign
Slideshare: slideshare.net/maxdesign
Linkedin: linkedin.com/in/russweakley

More Related Content

Similar to Building an accessible progressive loader (20)

PPTX
A Primer on Web Accessibility for Teams
Mikey Ilagan
 
PPTX
Accessibility and universal usability
Sarah Hudson
 
PDF
Building accessible web components without tears
Russ Weakley
 
PPTX
How you can start building accessible websites today (... and why!)
nrasul
 
PDF
P.S. I love you
Oleksandr Strikha
 
PPTX
Accessibility with OutSystems
Bruno Marcelino
 
PDF
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
GreeceJS
 
PDF
Inclusive Design for Web Development Teams
Shayne Rempel
 
PPTX
A Half Day Workshop on Building Accessible Websites For People With Disabilities
Aayush Shrestha
 
PPTX
Inclusive healthcare: Accessible website best practices
nrasul
 
PPTX
Understanding wcag 2.0
Srinivasu Chakravarthula
 
PDF
Early prevention of accessibility issues with mockup & wireframe reviews
Aidan Tierney
 
PPTX
Everyone Should Be Able to Use Your Software: Building an Inclusive Software...
VMware Tanzu
 
PPTX
SenchaCon 2016: Accessibility, Teamwork & Ext JS: A Customer Success Story - ...
Sencha
 
PDF
jQuery: Accessibility, Mobile und Responsive
Peter Rozek
 
PDF
Intro to Web Accessibility
Ashley Dzick
 
PPTX
Lessons Learned: Coding Accessible Apps with Frameworks 2017
Kate Walser
 
PPSX
A Developers Role in Web Accessibility
Lyn Sawyer
 
PPTX
Practical A11y testing for surveys
Institute For Community Inclusion/ UMB
 
PPTX
Web accessibility strategies for the new decade
Andrew Stevens
 
A Primer on Web Accessibility for Teams
Mikey Ilagan
 
Accessibility and universal usability
Sarah Hudson
 
Building accessible web components without tears
Russ Weakley
 
How you can start building accessible websites today (... and why!)
nrasul
 
P.S. I love you
Oleksandr Strikha
 
Accessibility with OutSystems
Bruno Marcelino
 
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
GreeceJS
 
Inclusive Design for Web Development Teams
Shayne Rempel
 
A Half Day Workshop on Building Accessible Websites For People With Disabilities
Aayush Shrestha
 
Inclusive healthcare: Accessible website best practices
nrasul
 
Understanding wcag 2.0
Srinivasu Chakravarthula
 
Early prevention of accessibility issues with mockup & wireframe reviews
Aidan Tierney
 
Everyone Should Be Able to Use Your Software: Building an Inclusive Software...
VMware Tanzu
 
SenchaCon 2016: Accessibility, Teamwork & Ext JS: A Customer Success Story - ...
Sencha
 
jQuery: Accessibility, Mobile und Responsive
Peter Rozek
 
Intro to Web Accessibility
Ashley Dzick
 
Lessons Learned: Coding Accessible Apps with Frameworks 2017
Kate Walser
 
A Developers Role in Web Accessibility
Lyn Sawyer
 
Practical A11y testing for surveys
Institute For Community Inclusion/ UMB
 
Web accessibility strategies for the new decade
Andrew Stevens
 

More from Russ Weakley (20)

PDF
Accessible chat windows
Russ Weakley
 
PDF
Accessible names & descriptions
Russ Weakley
 
PDF
A deep dive into accessible names
Russ Weakley
 
PDF
What are accessible names and why should you care?
Russ Weakley
 
PDF
How to build accessible UI components
Russ Weakley
 
PDF
What is WCAG 2 and why should we care?
Russ Weakley
 
PDF
Accessible states in Design Systems
Russ Weakley
 
PDF
Creating accessible modals and autocompletes
Russ Weakley
 
PDF
Accessibility in Design systems - the pain and glory
Russ Weakley
 
PDF
Accessible Inline errors messages
Russ Weakley
 
PDF
Accessible Form Hints and Errors
Russ Weakley
 
PDF
What is accessibility?
Russ Weakley
 
PDF
Accessibility in Pattern Libraries
Russ Weakley
 
PDF
Accessibility in pattern libraries
Russ Weakley
 
PDF
Building an accessible auto-complete - #ID24
Russ Weakley
 
PDF
Building an accessible auto-complete
Russ Weakley
 
PDF
Creating Acessible floating labels
Russ Weakley
 
PDF
Creating an Accessible button dropdown
Russ Weakley
 
PDF
Creating a Simple, Accessible On/Off Switch
Russ Weakley
 
PDF
Accessible custom radio buttons and checkboxes
Russ Weakley
 
Accessible chat windows
Russ Weakley
 
Accessible names & descriptions
Russ Weakley
 
A deep dive into accessible names
Russ Weakley
 
What are accessible names and why should you care?
Russ Weakley
 
How to build accessible UI components
Russ Weakley
 
What is WCAG 2 and why should we care?
Russ Weakley
 
Accessible states in Design Systems
Russ Weakley
 
Creating accessible modals and autocompletes
Russ Weakley
 
Accessibility in Design systems - the pain and glory
Russ Weakley
 
Accessible Inline errors messages
Russ Weakley
 
Accessible Form Hints and Errors
Russ Weakley
 
What is accessibility?
Russ Weakley
 
Accessibility in Pattern Libraries
Russ Weakley
 
Accessibility in pattern libraries
Russ Weakley
 
Building an accessible auto-complete - #ID24
Russ Weakley
 
Building an accessible auto-complete
Russ Weakley
 
Creating Acessible floating labels
Russ Weakley
 
Creating an Accessible button dropdown
Russ Weakley
 
Creating a Simple, Accessible On/Off Switch
Russ Weakley
 
Accessible custom radio buttons and checkboxes
Russ Weakley
 
Ad

Recently uploaded (20)

PDF
AI-Powered-Visual-Storytelling-for-Nonprofits.pdf
TechSoup
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PDF
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
PPTX
Nitrogen rule, ring rule, mc lafferty.pptx
nbisen2001
 
PPTX
EDUCATIONAL MEDIA/ TEACHING AUDIO VISUAL AIDS
Sonali Gupta
 
PPTX
infertility, types,causes, impact, and management
Ritu480198
 
PPTX
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
PPTX
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
PPTX
DAY 1_QUARTER1 ENGLISH 5 WEEK- PRESENTATION.pptx
BanyMacalintal
 
PDF
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PPTX
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
PPTX
DIGITAL CITIZENSHIP TOPIC TLE 8 MATATAG CURRICULUM
ROBERTAUGUSTINEFRANC
 
PPTX
Introduction to Biochemistry & Cellular Foundations.pptx
marvinnbustamante1
 
PDF
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
PDF
Week 2 - Irish Natural Heritage Powerpoint.pdf
swainealan
 
PPTX
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 
AI-Powered-Visual-Storytelling-for-Nonprofits.pdf
TechSoup
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
QNL June Edition hosted by Pragya the official Quiz Club of the University of...
Pragya - UEM Kolkata Quiz Club
 
Nitrogen rule, ring rule, mc lafferty.pptx
nbisen2001
 
EDUCATIONAL MEDIA/ TEACHING AUDIO VISUAL AIDS
Sonali Gupta
 
infertility, types,causes, impact, and management
Ritu480198
 
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
DAY 1_QUARTER1 ENGLISH 5 WEEK- PRESENTATION.pptx
BanyMacalintal
 
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
DIGITAL CITIZENSHIP TOPIC TLE 8 MATATAG CURRICULUM
ROBERTAUGUSTINEFRANC
 
Introduction to Biochemistry & Cellular Foundations.pptx
marvinnbustamante1
 
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
Week 2 - Irish Natural Heritage Powerpoint.pdf
swainealan
 
PPT-Q1-WEEK-3-SCIENCE-ERevised Matatag Grade 3.pptx
reijhongidayawan02
 
Ad

Building an accessible progressive loader