SlideShare a Scribd company logo
1 of 276
Download to read offline
Part 1:
Accessible

modals
Non-native widgets
Before we look at modals, a
quick overview of the term
“non-native widgets”.
Let’s start with the term
“widgets”.
The W3C defines “Widgets” as:
“user-interface objects that
enable users to perform a
function”.
How about a
simpler explanation?
Widgets can be simple objects
such as a check box.
They can also be complex
objects such as drop-downs,
date pickers or even grids.
Basically, any self-contained
UI component.
What about the term “non-
native”?
“Non-native” means that the
widget has not been built using
native HTML elements.
(Elements that were designed for that purpose).
Let’s use an example of a
simple drop-down menu.
Choose an option
Favourite fruit
Label associated with dropdown
Choose an option
Favourite fruit
Dropdown
A native method would be to
use the <select> and <option>
elements.
<label for="fruit">Favourite fruit</label>
<select id="fruit">
<option>Choose an option</option>
<option>Apple</option>
<option>Apricot</option>
<option>Avocado</option>
</select>
The <select> and <option>
elements have semantic
meaning.
The W3C defines the <select>
element as an “option
selector”.
The <option> element is
defined as a “selectable
choice”.
These elements are understood
by all of the different
accessibility APIs associated
with browsers.
For example, the <select>
element has a role of
“combobox”.
There are also a range of 

pre-defined keystrokes that 

can be used to interact with
these elements.
However, <option> elements
are impossible to style with
CSS.
So, developers often choose
non-native alternatives 

for drop-downs, to provide
them with more control.
One common method is to use
the <button> and <ul>
elements.
Favourite fruit
Button
Favourite fruit
Apple

Apricot

Avocado
List
<button>Favourite fruit</button>
<ul>
<li>Apple</li>
<li>Apricot</li>
<li>Avocado</li>
<li>Banana</li>
</ul>
This is an example of a non-
native widget, as elements are
being used in a different way
to their defined purpose.
How is “non-
native”relevant here?
Well, this “non-native” concept
is relevant for modals and
autocompletes.
While it is possible to build
modals and autocompletes
using native HTML elements,
most developers don’t.
So, these widgets often end up
being non-native.
For example, there is a
<dialog> element designed for
modal dialogs.
https://www.w3.org/TR/html52/interactive-
elements.html#the-dialog-element
<dialog open>
<p>Hello world</p>
</dialog>
However, this element is
reasonably new and has
limited support across devices
and Assistive Technologies.
There is also a <datalist>
element designed for simple
autosuggests.
https://www.w3.org/TR/html52/sec-forms.html#the-
datalist-element
<label for="choice">Choose a flavor:</label>
<input list="flavors" id="choice">
<datalist id="flavors">
<option value="Chocolate">
<option value="Coconut">
<option value="Mint">
<option value="Strawberry">
<option value="Vanilla">
</datalist>
But this element has limited
functionality and doesn’t suit
the needs of most autosuggest
widgets.
So, it’s often easier and more
practical for developers to
choose the dark side.
On top of this, a lot of
developers these days don’t
know about basic semantic
markup.
So, they don’t even choose the
dark side. They start there!
But is non-native evil?
In many cases, non-native
widgets need a lot of work in
order to be accessible.
1. Non-native widgets must be
given a role so that their
function is understood.
2. Users must be notified of
dynamic changes to the
widget (i.e. has it changed
state?).
3. In some cases, additional
instructions may be needed so
that users can learn how to use
the widget.
4. All functionality must be
accessible via keystrokes
only.
5. Keystrokes should be
intuitive, and follow keystroke
methodologies used on native
elements.
So… that is the end of my

“non-native widgets” rant…
Let’s dive into
accessible modals.
What is a modal?
A modal is a function that
requires the user to perform
some sort of action before
proceeding.
Generally, modals are separate
“windows” that sit over the
top of the parent page.
Account name:
Choose an account
Account number:
Submit
xGreyed out background (in some cases)
Account name:
Choose an account
Account number:
Submit
xModal window
Account name:
Choose an account
Account number:
Submit
xClose button
Account name:
Choose an account
Account number:
Submit
x
Main heading inside modal
Account name:
Choose an account
Account number:
Submit
x
2 x Inputs and their labels
Account name:
Choose an account
Account number:
Submit
x
Submit button
Common problems
with modals
The following are a short list of
common modal accessibility
problems.
In reality, we could spend the
rest of this presentation just
listing known problems…
but let’s not.
1. The modal is not accessible
via keyboard-only.
This means that keyboard-only
users may not be able to
access, interact with or close
the modal.
2. Keyboard-only users are able
to use TAB outside of the
modal window while the
modal is still active.
This means that keyboard-only
users can get trapped outside
the modal.
And screen reader users
assume that the modal has
been dismissed - even though
it still sits on top of the page.
3. The modal is available to
screen readers even when it is
not triggered.
This means that the modal
information is announced to
screen reader users at
inappropriate times.
4. When the modal is triggered,
screen reader users are not
informed of its role or
purpose.
This means that screen reader
users may have no idea where
they are or what task they are
supposed to perform.
5. Focus is often sent to the top
of the parent page after a
modal window has been closed.
This means that keyboard-only
users have to navigate back to
the relevant area themselves.
So, how can we build an
accessible modal?
1. Set initial focus
When a modal is triggered,
some developers set the initial
focus on the first focusable
element inside the modal.
For example, focus may be
placed on the first form
control.
Account name:
Choose an account
Account number:
Submit
x
Focus on first form control
This means that Assistive
Technology users may not be
able to determine the overall
purpose of the modal.
Instead, I prefer to set focus on
the modal window itself. At
least for modals where the
purpose is not immediately
clear.
Account name:
Choose an account
Account number:
Submit
xFocus on modal window
Then additional context can be
provided via a label.
(Described in step 3)
2. Add a role
A role should be provided on
the parent container.
<div
role="dialog">
…
</div>
This role is announced to
Assistive Technology users,
informing them about the
widget’s function.
Avoid using a role with a value
of alertdialog unless the
modal has a critical purpose.
<div
role="alertdialog">
…
</div>
The alertdialog value should
only be used to notify the user
of urgent information that
demands the user's
immediate attention.
3. Add a label
A label should be used to
inform Assistive Technology
users of the modal window’s
purpose.
One way to achieve this is to
point an aria-labelledby
attribute at the main heading
inside the modal.
<div
role="dialog"
aria-labelledby="modal-label">
<h1 id="modal-label">Choose account</h1>
</div>
4. Add a
description
(optional)
A description can also be added
to provide a more detailed
description of the modal’s
purpose.
This can be achieved by
pointing an aria-describedby
attribute at the first
paragraph of text inside the
modal.
<div
role="dialog"
aria-labelledby="modal-label"
aria-describedby="modal-description">
<h1 id="modal-label">Choose account</h1>
<p id="modal-description">Description here</p>
</div>
If there is no headings or
paragraphs within the modal,
hidden information can be
used instead.
5. Defining
keystrokes
When inside the modal…
Users should be able to use TAB
and SHIFT + TAB to move
forwards and backwards
through focusable elements.
Users should not be able to use
TAB to move focus outside the
modal.
Focus should cycle through
focusable elements within the
modal only.
Users should be able to use
standard keystrokes on any
form elements inside the
modal.
(Radios, checkboxes, selects and buttons).
Users should be able to use ESC
to close the modal and return
to the parent page.
6. Add meaning
(optional)
For some important actions,
screen reader users may need
to be given additional
information to let them know
what will happen.
Account name:
Choose an account
Account number:
Submit
x
Submit button
“Submit. Your data will be
added to the bank balance
table”
<button aria-label="Submit. Your data will be added to
the bank balance table">
Submit
</button>
Account name:
Choose an account
Account number:
Submit
xClose button
“Close and return to bank
information”
<button aria-label="Close and return to bank
information">
X
</button>
7. Send focus
When the modal window has
been closed (via, ESC, close or
submit function):
Focus should be set on the
relevant component of the
parent page.
The user should not be sent to
the top of the parent page
unless there is a good reason!
For simpler modals, especially
on close, focus can be sent
back to the trigger function.
If the modal causes
information to be dynamically
added to the parent page
below, focus should be sent to
this newly added
information.
Ideally, this newly added
information should be
announced to Assistive
Technologies.
“$1200.34 added to your bank
balance”
8. Test
Regardless of whether you use
some or all of these
suggestions, you should
always conduct your own
tests.
And remember:

context is everything.
Online examples?
The Incredible Accessible
Modal Window, Version 4
http://gdkraus.github.io/accessible-modal-dialog/
Bootstrap V4 modal
https://getbootstrap.com/docs/4.3/components/
modal/
Van11y modal
https://van11y.net/downloads/modal/demo/
index.html
Part 2:
Accessible

Autocompletes
What
are they?
“Autocomplete” is a software
function that provides
relevant suggestions based on
input by the user.
For this presentation, we’re
going to focus on an example
autocomplete associated with
searching for towns in
Australia.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest search component
Label
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest search component
Input
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest search component
Clear mechanism
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest search component
Submit button
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest search component
Drop-down suggestions list
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest search component
Scroll bar (if needed)
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest search component
Results area below
How do we make an
autocomplete widget
accessible?
Some of this is going to sound
awfully familiar…
Keyboard
only?
Keyboard-only users should be
able to perform any of the
following actions…
1. Use the TAB keystroke to
move focus into the search
input field from a previous
element with focus.
Search towns in Australia
Diagram showing input in focus
TAB
2. Use the TAB keystroke to
move focus from the search
input to the “clear” button.
Search towns in Australia
Adaminaby, NSW
Diagram showing clear button in focus
TAB
3. Use the ENTER keystroke to
trigger the “clear” button.
Search towns in Australia
Adaminaby, NSW
Diagram showing selected clear button
ENTER
Note: When the “clear” button
has been triggered, the search
input field should be cleared
and focus should shift to this
field again.
Search towns in Australia
Diagram showing focus move for clear button back to search input
4. Use the TAB keystroke to
move focus from the clear
button to the submit button.
Adaminaby, NSW
Search towns in Australia
Diagram showing focus move form the clear button to the submit button
TAB
5. Use the ENTER keystroke to
trigger the submit button.
Search towns in Australia
Adaminaby, NSW
Diagram showing selected submit button
ENTER
Note: When the submit button
has been triggered, focus
should shift to the first search
result below the autocomplete
search widget.
Search towns in Australia
Bell, NSW
Bell is a small rural and residential village in the
Blue Mountains region of New South Wales.
Bells Beach, VIC
Bells Beach is a coastal locality of Victoria,
Australia iand a renowned surf beach.
Bell
Diagram showing focus move from submit button to first search result
6. Use the DOWN ARROW
keystroke to move focus from
the search input field to the
first item in list of
autocomplete suggestions.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing focus move from input to first suggestion
DOWN ARROW
7. Use the UP ARROW and DOWN
ARROW keystrokes to navigate
backwards and forwards
through suggestions.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing second selection in focus and arrows to indicate focus can move backwards or forwards
DOWN ARROW
UP ARROW
8: Users should not be able to
DOWN ARROW past the last
suggestion option.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing last selection in focus and red cross to indicate focus cannot go forward
DOWN ARROW
9. Some developers allow DOWN
ARROW keystrokes to loop from
the last suggestion directly
back to the initial input box.
However, I have found that
some users find this
confusing. They may not be
aware that they have returning
to the input field.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing last selection in focus and red cross to indicate focus cannot jump to search input
DOWN ARROW
I prefer to follow the default
<select> behaviour where
focus loops through all
options only.
From last back to first etc.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing last selection in focus and focus jumping to the first option
DOWN ARROW
10. Use the ENTER keystrokes to
select an autocomplete
suggestion.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing selected suggest option
ENTER
Note: When the ENTER
keystroke has been triggered,
focus should shift back to the
search input field.
Search towns in Australia
Armadale, WA
Diagram showing focus move from selected suggestion to search input field
11. Use the ESC keystroke to
close the suggestion list and
return focus to the initial input
(i.e. if none of the suggestions
are relevant).
Search towns in Australia
ar
Diagram showing focus returning to input
ESC
Accessible
Markup?
There are a wide range of
different ways to mark up an
accessible auto-suggest widget.
Here are some suggestions.
A quick overview
The <label> and <input>
elements are the core of the
search button.
<label></label>
<input>
In our example, one <button>
element will be used to “clear”
user input.
<label></label>
<input>
<button></button>
And a second <button>
element will be used to submit
the form.
<label></label>
<input>
<button></button>
<button></button>
The <ul> allows us to display
the list of suggestions when
appropriate.
<label></label>
<input>
<button></button>
<button></button>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
The <div> element allows us to
provide hidden instructions
for screen reader users.
<label></label>
<input>
<button></button>
<button></button>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<div></div>
FOR and ID attributes
In order to explicitly associate
the <label> element with the
<input> element, we should
use for and id attributes.
<label for="search">Search towns in Australia</label>
<input
id="search"
>
TYPE attribute
The <input> element’s type
attribute could be set to a value
of "text" and not "search".
<label for="search">Search towns in Australia</label>
<input
id="search"
type="text"
>
Some browsers, like Chrome
and Safari will display an
<input> type of "search" with
a native “clear” button at the
right side of the input.
Other browses like Firefox, do
not show this function at all.
Chrome
Firefox
Safari
Diagram showing Chrome and Safari’s clear button. Firefox has no clear button.
More importantly, this native
“clear” button often cannot be
accessed via the TAB
keystroke, so it is inaccessible
for many Assistive Technology
users.
So, it is better to use a separate
<button> element for clearing
the field.
ARIA-DESCRIBEDBY
The aria-describedby attribute
can be used to provide basic
instructions on the use of the
widget for Assistive
Technologies.
This points to a matching ID
value inside the hidden <div>
element below.
<label for="search">Search towns in Australia</label>
<input
id="search"
type="text"
aria-describedby="instructions"
>
<div id="instructions" aria-live="assertive"
style="display: none;">
When autocomplete options are available, use up and
down arrows to review and enter to select.
</div>
ARIA-OWNS
The aria-owns attribute
defines a “parent/child
contextual relationship to
assistive technologies that is
otherwise impossible to infer
from the DOM”.
In other words, we can define
the <input> element as the
parent, and the <ul> element
as the child element.
<label for="search">Search towns in Australia</label>
<input
id="search"
type="text"
aria-describedby="instructions"
aria-owns="results"
>
<ul id="results">
...
</ul>
ARIA-EXPANDED
The aria-expanded attribute
allows us to inform assistive
technologies when the
autocomplete dropdown

is present (expanded).
The aria-expanded attribute
should be initially set to
"false".
<label for="search">Search towns in Australia</label>
<input
id="search"
type="text"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="false"
>
This value needs to
dynamically change to "true"
as soon as the autocomplete
suggestions are present.
<label for="search">Search towns in Australia</label>
<input
id="search"
type="text"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="true"
>
Buttons
Directly after the input, we
need two <button> elements.
The first <button> should be a
type of "button" and allow
users to clear the input.
<button type="button" aria-label="Clear"></button>
<button type="submit" aria-label="Search"></button>
The second <button> should be
a type of "submit" and allow
users to submit the form.
<button type="button" aria-label="Clear"></button>
<button type="submit" aria-label="Search"></button>
You may want to use icons
instead of text for one or both
of the buttons. In this case we
are using “clear” and “search”
icons.
Search towns in Australia
Diagram showing clear and search icons
However, if you user icons
instead of text, you will need to
provide additional context for
Assistive Technologies.
In this case, we can use aria-
label attributes to provide
hidden labels for both
buttons.
<button type="button" aria-label="Clear"></button>
<button type="submit" aria-label="Search"></button>
Unordered list
After the two button elements,
we need to add the <ul>
element which will be used to
display the autocomplete
suggestions.
<ul
id="results"
>
</ul>
The role attribute can be set
with "listbox".
This informs assistive
technologies that the element
is a widget that allows the
user to select one or more
items from a list of choices.
<ul
id="results"
role="listbox"
>
</ul>
To make sure the element
cannot be brought into focus
before it is triggered, we can
set the tabindex attribute to
"-1".
<ul
id="results"
role="listbox"
tabindex="-1"
>
</ul>
This value needs to
dynamically change to "0" as
soon as the autocomplete
suggestions are present.
<ul
id="results"
role="listbox"
tabindex="0"
>
</ul>
To make sure the element is
initially hidden we can set the
style attribute to
"display:none".
<ul
id="results"
role="listbox"
tabindex="-1"
style="display: none;"
>
</ul>
This value needs to
dynamically change to
something like
"display:block" as soon as the
autocomplete options are
triggered.
<ul
id="results"
role="listbox"
tabindex=“-1"
style="display: block;"
>
</ul>
List items
Each of the <li> elements can
be given a role attribute with
a value of "option".
This informs assistive
technologies that they are
selectable items in a
select list.
<ul
id="results"
role="listbox"
tabindex="-1"
style="display: none;"
>
<li role="option">apple</li>
<li role="option">banana</li>
<li role="option">pear</li>
</ul>
Each of the <li> elements
needs to have an aria-
selected attribute initially set
to "false".
<ul
id="results"
role="listbox"
tabindex="-1"
style="display: none;"
>
<li role="option" aria-selected="false">apple</li>
<li role="option" aria-selected="false">banana</li>
<li role="option" aria-selected="false">pear</li>
</ul>
This value needs to
dynamically change to "true"
if the individual option is
selected.
<ul
id="results"
role="listbox"
tabindex="-1"
style="display: none;"
>
<li role="option" aria-selected="true">apple</li>
<li role="option" aria-selected="false">banana</li>
<li role="option" aria-selected="false">pear</li>
</ul>
The hidden DIV
After the <ul> element, we
have the <div> element, which
has the instructions for
assistive technologies.
<div>
When autocomplete options are available, use up and
down arrows to review and enter to select.
</div>
As mentioned before, the ID
value allows us to point the
<input> element to this <div>
element via the aria-
describedby attribute.
<div
id="instructions"
>
When autocomplete options are available, use up and
down arrows to review and enter to select.
</div>
The <div> element needs to be
visually hidden, but still
available to screen readers.
This can be achieved by setting
it “off-left” using CSS. So, we
can give it a pretend “off-left”
class here.
<div
id="instructions"
class="off-left"
>
When autocomplete options are available, use up and
down arrows to review and enter to select.
</div>
The aria-live attribute is set
to "assertive". This informs
assistive technologies as soon
as anything inside this element
is dynamically changed.
<div
id="instructions"
class="off-left"
aria-live="assertive"
>
When autocomplete options are available, use up and
down arrows to review and enter to select.
</div>
We need this because the
instructions will dynamically
change as soon as the
autocomplete options are
triggered.
<div
id="instructions"
class="off-left"
aria-live="assertive"
>
When autocomplete results are available use up and
down arrows to review and enter to select.
</div>
<div
id="instructions"
class="off-left"
aria-live="assertive"
>
6 options available. Use up and down arrows to review
and enter to select.
</div>
The instructions should also
immediately change as users
type if the number of
suggestions changes.
<div
id="instructions"
class="off-left"
aria-live="assertive"
>
3 options available. Use up and down arrows to review
and enter to select.
</div>
The ideal method?
As mentioned before, this is
just one method that could be
used.
Before deciding, make sure you
check out different methods
and test them - with real
users, and across different
assistive technologies.
Good
examples?
Haltersweb Accessible
Autocomplete
https://haltersweb.github.io/Accessibility/
autocomplete.html
Vision Australia Autocomplete
http://www.visionaustralia.org/digital-access-autocomplete
jQuery accessible autocomplete list
(with some ARIA)
https://a11y.nicolas-hoffmann.net/autocomplete-list/
Alphagov Accessible Autocomplete
examples
https://alphagov.github.io/accessible-autocomplete/examples/
OpenAjax Combobox with aria-
autocomplete="inline"
http://oaa-accessibility.org/examplep/combobox2/
Final note
Anyone who is designing or
building web apps has to deal
with non-native widgets.
Modals, autocompletes,
dropdowns, date pickers,
sortable tables… the list is
endless.
The key message here is that
non-native widgets can
present a range of barriers.
However, these barriers can
always be resolved. It just takes
a bit more time and effort.
Russ Weakley
Max Design

Site: maxdesign.com.au

Twitter: twitter.com/russmaxdesign

Slideshare: slideshare.net/maxdesign

Linkedin: linkedin.com/in/russweakley

More Related Content

What's hot

Accessible modal windows
Accessible modal windowsAccessible modal windows
Accessible modal windowsRuss Weakley
 
Building accessible web components without tears
Building accessible web components without tearsBuilding accessible web components without tears
Building accessible web components without tearsRuss Weakley
 
aria-live: the good, the bad and the ugly
aria-live: the good, the bad and the uglyaria-live: the good, the bad and the ugly
aria-live: the good, the bad and the uglyRuss Weakley
 
Creating Acessible floating labels
Creating Acessible floating labelsCreating Acessible floating labels
Creating Acessible floating labelsRuss Weakley
 
Creating an Accessible button dropdown
Creating an Accessible button dropdownCreating an Accessible button dropdown
Creating an Accessible button dropdownRuss Weakley
 
android layouts
android layoutsandroid layouts
android layoutsDeepa Rani
 
Html Xhtml And Xml 3e Tutorial 6
Html Xhtml And Xml 3e Tutorial 6Html Xhtml And Xml 3e Tutorial 6
Html Xhtml And Xml 3e Tutorial 6larsonsb
 
Android ui layout
Android ui layoutAndroid ui layout
Android ui layoutKrazy Koder
 
Creating a quiz using visual basic 6
Creating a quiz using visual basic 6Creating a quiz using visual basic 6
Creating a quiz using visual basic 6Ella Marie Wico
 
Uml Interview Questions
Uml Interview QuestionsUml Interview Questions
Uml Interview QuestionsRaj Chanchal
 
Building and styling forms
Building and styling formsBuilding and styling forms
Building and styling formsanna-anna
 
View groups containers
View groups containersView groups containers
View groups containersMani Selvaraj
 

What's hot (20)

Accessible modal windows
Accessible modal windowsAccessible modal windows
Accessible modal windows
 
Building accessible web components without tears
Building accessible web components without tearsBuilding accessible web components without tears
Building accessible web components without tears
 
aria-live: the good, the bad and the ugly
aria-live: the good, the bad and the uglyaria-live: the good, the bad and the ugly
aria-live: the good, the bad and the ugly
 
Creating Acessible floating labels
Creating Acessible floating labelsCreating Acessible floating labels
Creating Acessible floating labels
 
Creating an Accessible button dropdown
Creating an Accessible button dropdownCreating an Accessible button dropdown
Creating an Accessible button dropdown
 
android layouts
android layoutsandroid layouts
android layouts
 
Android development session 3 - layout
Android development   session 3 - layoutAndroid development   session 3 - layout
Android development session 3 - layout
 
Android UI Patterns
Android UI PatternsAndroid UI Patterns
Android UI Patterns
 
Html Xhtml And Xml 3e Tutorial 6
Html Xhtml And Xml 3e Tutorial 6Html Xhtml And Xml 3e Tutorial 6
Html Xhtml And Xml 3e Tutorial 6
 
Android ui layout
Android ui layoutAndroid ui layout
Android ui layout
 
Creating a quiz using visual basic 6
Creating a quiz using visual basic 6Creating a quiz using visual basic 6
Creating a quiz using visual basic 6
 
Html form
Html formHtml form
Html form
 
Tugas testing
Tugas testingTugas testing
Tugas testing
 
Uml Interview Questions
Uml Interview QuestionsUml Interview Questions
Uml Interview Questions
 
Building and styling forms
Building and styling formsBuilding and styling forms
Building and styling forms
 
Unit 2
Unit 2 Unit 2
Unit 2
 
Form
FormForm
Form
 
Unit 2
Unit 2 Unit 2
Unit 2
 
V2vdata
V2vdataV2vdata
V2vdata
 
View groups containers
View groups containersView groups containers
View groups containers
 

Similar to Creating accessible modals and autocompletes

Front End Frameworks - are they accessible
Front End Frameworks - are they accessibleFront End Frameworks - are they accessible
Front End Frameworks - are they accessibleRuss Weakley
 
Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)iFour Technolab Pvt. Ltd.
 
CIS 3100 - Database Design and ImplementationProducts on Sale Da.docx
CIS 3100 - Database Design and ImplementationProducts on Sale Da.docxCIS 3100 - Database Design and ImplementationProducts on Sale Da.docx
CIS 3100 - Database Design and ImplementationProducts on Sale Da.docxmccormicknadine86
 
- Database Design and ImplementationProducts on Sale Database fo.docx
- Database Design and ImplementationProducts on Sale Database fo.docx- Database Design and ImplementationProducts on Sale Database fo.docx
- Database Design and ImplementationProducts on Sale Database fo.docxgertrudebellgrove
 
Create a basic performance point dashboard epc
Create a basic performance point dashboard   epcCreate a basic performance point dashboard   epc
Create a basic performance point dashboard epcEPC Group
 
Chapter A Guide to Using Microsoft Project 2013 Exploring Pro.docx
Chapter A Guide to Using Microsoft Project 2013 Exploring Pro.docxChapter A Guide to Using Microsoft Project 2013 Exploring Pro.docx
Chapter A Guide to Using Microsoft Project 2013 Exploring Pro.docxmccormicknadine86
 
MicroStrategy Basic Reporting.pptx
MicroStrategy Basic Reporting.pptxMicroStrategy Basic Reporting.pptx
MicroStrategy Basic Reporting.pptxVijay80411
 
06 win forms
06 win forms06 win forms
06 win formsmrjw
 
Disable administrative tools in windows 8
Disable administrative tools in windows 8Disable administrative tools in windows 8
Disable administrative tools in windows 8Microsoft Online Store
 
Grasping The LightSwitch Paradigm
Grasping The LightSwitch ParadigmGrasping The LightSwitch Paradigm
Grasping The LightSwitch ParadigmAndrew Brust
 
Product Supplier59,58,8,2.50CIS 3100 - Database Desig.docx
Product Supplier59,58,8,2.50CIS 3100 - Database Desig.docxProduct Supplier59,58,8,2.50CIS 3100 - Database Desig.docx
Product Supplier59,58,8,2.50CIS 3100 - Database Desig.docxstilliegeorgiana
 
Dynamics CRM 2013: Create or customize dashboards
Dynamics CRM 2013: Create or customize dashboardsDynamics CRM 2013: Create or customize dashboards
Dynamics CRM 2013: Create or customize dashboardsVinh Nguyen
 
Lotusphere 2012: BP102 'UserBlast'
Lotusphere 2012: BP102 'UserBlast'Lotusphere 2012: BP102 'UserBlast'
Lotusphere 2012: BP102 'UserBlast'Mat Newman
 
TechSupportCh 21 project.doc1Projects.doc Project 21-.docx
TechSupportCh 21 project.doc1Projects.doc Project 21-.docxTechSupportCh 21 project.doc1Projects.doc Project 21-.docx
TechSupportCh 21 project.doc1Projects.doc Project 21-.docxmattinsonjanel
 

Similar to Creating accessible modals and autocompletes (20)

Front End Frameworks - are they accessible
Front End Frameworks - are they accessibleFront End Frameworks - are they accessible
Front End Frameworks - are they accessible
 
Access5
Access5Access5
Access5
 
Spreadsheet Auditing
Spreadsheet  AuditingSpreadsheet  Auditing
Spreadsheet Auditing
 
Watson Analytic
Watson AnalyticWatson Analytic
Watson Analytic
 
Mca 504 dotnet_unit5
Mca 504 dotnet_unit5Mca 504 dotnet_unit5
Mca 504 dotnet_unit5
 
Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)Controls Use in Windows Presentation Foundation (WPF)
Controls Use in Windows Presentation Foundation (WPF)
 
CIS 3100 - Database Design and ImplementationProducts on Sale Da.docx
CIS 3100 - Database Design and ImplementationProducts on Sale Da.docxCIS 3100 - Database Design and ImplementationProducts on Sale Da.docx
CIS 3100 - Database Design and ImplementationProducts on Sale Da.docx
 
- Database Design and ImplementationProducts on Sale Database fo.docx
- Database Design and ImplementationProducts on Sale Database fo.docx- Database Design and ImplementationProducts on Sale Database fo.docx
- Database Design and ImplementationProducts on Sale Database fo.docx
 
Android-dialogs in android-chapter14
Android-dialogs in android-chapter14Android-dialogs in android-chapter14
Android-dialogs in android-chapter14
 
Create a basic performance point dashboard epc
Create a basic performance point dashboard   epcCreate a basic performance point dashboard   epc
Create a basic performance point dashboard epc
 
Chapter A Guide to Using Microsoft Project 2013 Exploring Pro.docx
Chapter A Guide to Using Microsoft Project 2013 Exploring Pro.docxChapter A Guide to Using Microsoft Project 2013 Exploring Pro.docx
Chapter A Guide to Using Microsoft Project 2013 Exploring Pro.docx
 
MicroStrategy Basic Reporting.pptx
MicroStrategy Basic Reporting.pptxMicroStrategy Basic Reporting.pptx
MicroStrategy Basic Reporting.pptx
 
06 win forms
06 win forms06 win forms
06 win forms
 
Intake 38 9
Intake 38 9Intake 38 9
Intake 38 9
 
Disable administrative tools in windows 8
Disable administrative tools in windows 8Disable administrative tools in windows 8
Disable administrative tools in windows 8
 
Grasping The LightSwitch Paradigm
Grasping The LightSwitch ParadigmGrasping The LightSwitch Paradigm
Grasping The LightSwitch Paradigm
 
Product Supplier59,58,8,2.50CIS 3100 - Database Desig.docx
Product Supplier59,58,8,2.50CIS 3100 - Database Desig.docxProduct Supplier59,58,8,2.50CIS 3100 - Database Desig.docx
Product Supplier59,58,8,2.50CIS 3100 - Database Desig.docx
 
Dynamics CRM 2013: Create or customize dashboards
Dynamics CRM 2013: Create or customize dashboardsDynamics CRM 2013: Create or customize dashboards
Dynamics CRM 2013: Create or customize dashboards
 
Lotusphere 2012: BP102 'UserBlast'
Lotusphere 2012: BP102 'UserBlast'Lotusphere 2012: BP102 'UserBlast'
Lotusphere 2012: BP102 'UserBlast'
 
TechSupportCh 21 project.doc1Projects.doc Project 21-.docx
TechSupportCh 21 project.doc1Projects.doc Project 21-.docxTechSupportCh 21 project.doc1Projects.doc Project 21-.docx
TechSupportCh 21 project.doc1Projects.doc Project 21-.docx
 

More from Russ Weakley

Accessible chat windows
Accessible chat windowsAccessible chat windows
Accessible chat windowsRuss Weakley
 
Accessible names & descriptions
Accessible names & descriptionsAccessible names & descriptions
Accessible names & descriptionsRuss Weakley
 
A deep dive into accessible names
A deep dive into accessible namesA deep dive into accessible names
A deep dive into accessible namesRuss Weakley
 
What is WCAG 2 and why should we care?
What is WCAG 2 and why should we care?What is WCAG 2 and why should we care?
What is WCAG 2 and why should we care?Russ Weakley
 
Building an accessible progressive loader
Building an accessible progressive loaderBuilding an accessible progressive loader
Building an accessible progressive loaderRuss Weakley
 
What is accessibility?
What is accessibility?What is accessibility?
What is accessibility?Russ Weakley
 
Accessibility in Pattern Libraries
Accessibility in Pattern LibrariesAccessibility in Pattern Libraries
Accessibility in Pattern LibrariesRuss Weakley
 
Accessibility in pattern libraries
Accessibility in pattern librariesAccessibility in pattern libraries
Accessibility in pattern librariesRuss Weakley
 
Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24Russ Weakley
 
Building an accessible auto-complete
Building an accessible auto-completeBuilding an accessible auto-complete
Building an accessible auto-completeRuss Weakley
 
Creating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off SwitchCreating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off SwitchRuss Weakley
 
Deep Dive into Line-Height
Deep Dive into Line-HeightDeep Dive into Line-Height
Deep Dive into Line-HeightRuss Weakley
 
Understanding the mysteries of the CSS property value syntax
Understanding the mysteries of the CSS property value syntaxUnderstanding the mysteries of the CSS property value syntax
Understanding the mysteries of the CSS property value syntaxRuss Weakley
 
Specialise or cross-skill
Specialise or cross-skillSpecialise or cross-skill
Specialise or cross-skillRuss Weakley
 
CSS pattern libraries
CSS pattern librariesCSS pattern libraries
CSS pattern librariesRuss Weakley
 
Responsive Web Design - more than just a buzzword
Responsive Web Design - more than just a buzzwordResponsive Web Design - more than just a buzzword
Responsive Web Design - more than just a buzzwordRuss Weakley
 

More from Russ Weakley (16)

Accessible chat windows
Accessible chat windowsAccessible chat windows
Accessible chat windows
 
Accessible names & descriptions
Accessible names & descriptionsAccessible names & descriptions
Accessible names & descriptions
 
A deep dive into accessible names
A deep dive into accessible namesA deep dive into accessible names
A deep dive into accessible names
 
What is WCAG 2 and why should we care?
What is WCAG 2 and why should we care?What is WCAG 2 and why should we care?
What is WCAG 2 and why should we care?
 
Building an accessible progressive loader
Building an accessible progressive loaderBuilding an accessible progressive loader
Building an accessible progressive loader
 
What is accessibility?
What is accessibility?What is accessibility?
What is accessibility?
 
Accessibility in Pattern Libraries
Accessibility in Pattern LibrariesAccessibility in Pattern Libraries
Accessibility in Pattern Libraries
 
Accessibility in pattern libraries
Accessibility in pattern librariesAccessibility in pattern libraries
Accessibility in pattern libraries
 
Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24
 
Building an accessible auto-complete
Building an accessible auto-completeBuilding an accessible auto-complete
Building an accessible auto-complete
 
Creating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off SwitchCreating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off Switch
 
Deep Dive into Line-Height
Deep Dive into Line-HeightDeep Dive into Line-Height
Deep Dive into Line-Height
 
Understanding the mysteries of the CSS property value syntax
Understanding the mysteries of the CSS property value syntaxUnderstanding the mysteries of the CSS property value syntax
Understanding the mysteries of the CSS property value syntax
 
Specialise or cross-skill
Specialise or cross-skillSpecialise or cross-skill
Specialise or cross-skill
 
CSS pattern libraries
CSS pattern librariesCSS pattern libraries
CSS pattern libraries
 
Responsive Web Design - more than just a buzzword
Responsive Web Design - more than just a buzzwordResponsive Web Design - more than just a buzzword
Responsive Web Design - more than just a buzzword
 

Recently uploaded

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 

Recently uploaded (20)

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 

Creating accessible modals and autocompletes