SlideShare a Scribd company logo
1 of 181
Download to read offline
Accessible

Autocomplete
Creating
What is
Autocomplete?
“Autocomplete” is a software
function that provides relevant
suggestions based on input by the
user.
For this presentation, we’re going to
focus on accessible autocomplete
associated with search.
Diagram showing autosuggest search component
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
The aim is to provide some
information to consider if you’re
thinking about building an
accessible autocomplete search.
User Experience
Before diving into accessibility, 

we’ll look at some common UX
patterns associated with
autocomplete search.
1. There should be clear wording or
visual indicators to describe the
purpose of the search.
Are users searching across the site,
an aspect of the site, a specific
function?
Search towns in Australia
Diagram showing highlighted label “Search towns in Australia”
2. If additional instructions are
required, they should be located in
close proximity to the field.
Diagram showing information under the input “You can filter by Town or by State”
Search towns in Australia
You can filter by Town or by State
3. The placeholder attribute
should not be used for complex
instructions.
This attribute it is often displayed in
a faint colour and is wiped as soon
as the user begins typing.
Search
Search Towns in Australia
Diagram showing placeholder “Search towns in Australia” with red cross beside placeholder
4. The list of autocomplete
suggestions could highlight the
string typed by the user…
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest options highlighting the user string
Or, the list could the highlight
everything apart from the string
typed by the user.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest options highlighting the non-user string
5. It should quickly become clear to
users what type of strings will
trigger the autocomplete?
Does the search work based on the
initial characters of suggestions…
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest options highlighting the user string at the start of each item
Or any characters within the
suggestion?
Search towns in Australia
ara
Araluen, NSW
Bargara, QLD
Bingara, NSW
Coonabarabran, NSW
Diagram showing autosuggest options highlighting the user string within each item
6. Any autocomplete suggestions
should be accurate.
Don't display suggestions if there is
no match - unless you are trying to
force users to choose from a
specific set of options.
Search towns in Australia
Banana
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing autosuggest options that do not match the user string
?
7. Users should be able to easily
clear the search form of previously
typed strings.
Search towns in Australia
Adaminaby, NSW
Diagram showing highlighted clear component
8. Ideally, there should be some
clearly defined submit action
associated with the search.
Diagram showing highlighted submit component
Search towns in Australia
Adaminaby, NSW
Keyboard-only
Focus
Any web page or web app should
have clear visual indicators to help
keyboard-only users determine
which element is currently in focus.
This could just be the default
browser focus ring…
Search towns in Australia
Diagram showing input in focus - indicated with blue focus ring
Or by specifying your own
consistent focus state
methodology.
Search towns in Australia
Diagram showing input in focus - indicated with black dotted lines
However, you should never make it
hard or impossible for keyboard-
only users to see what is in focus.
/* Bad practice */
input:focus {
outline: none;
}
Keystrokes
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 highlighted input
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 highlighted clear button
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.
Diagram showing selected submit button
Search towns in Australia
Adaminaby, NSW
ENTER
Note: When the submit button has
been triggered, focus should shift
to the search result area below the
autocomplete search widget.
Diagram showing focus move from submit button to search results
Search towns in Australia
Search Results
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
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
↓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
↓ARROW
↑ARROW
Note: The autosuggest item in focus
should always be in view if there is
a scrolling mechanism in place.
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
↓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
↓ARROW
10. However, users should be able
to UP ARROW from the first
suggestion back into the search
input field.
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SA
Diagram showing focus move from autosuggest dropdown to search input
↑ARROW
11. Use the ENTER keystrokes to
select an autocomplete
suggestion.
Diagram showing selected suggest option
Search towns in Australia
ar
Arltunga, NT
Armadale, WA
Armidale, NSW
Arno Bay, SAENTER
Note: When the ENTER keystroke
has been triggered, focus should
shift back to the search input
field.
Diagram showing focus move from selected suggestion to search input field
Search towns in Australia
Armadale, WA
12. 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
Markup for screen
readers
Here are some markup
suggestions to make the search 

widget accessible to screen readers.
Overall
The widget should be wrapped
inside a <form> element.
<form action="#">
</form>
The <label> and <input>
elements are the core of the search
button.
<form action="#">
<label></label>
<input>
</form>
One <button> elements will be
used to “clear” user input.
<form action="#">
<label></label>
<input>
<button></button>
</form>
A second <button> elements will be
used to submit the form.
<form action="#">
<label></label>
<input>
<button></button>
<button></button>
</form>
The <ul> allows us to display the
list of suggestions when
appropriate.
<form action="#">
<label></label>
<input>
<button></button>
<button></button>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</form>
The <div> element allows us to
provide hidden instructions for
screen reader users.
<form action="#">
<label></label>
<input>
<button></button>
<button></button>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<div></div>
</form>
The details
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
type="text"
id="search"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="false"
>
The <input> element’s type
attribute could be set to a value of
"text" or "search".
<label for="search">Search towns in Australia</label>
<input
type="text"
id="search"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="false"
>
<label for="search">Search towns in Australia</label>
<input
type="search"
id="search"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="false"
>
However, it is important to consider
how the “clear” button will
operate.
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.
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, if you want to use a robust and
accessible “clear” button, it is
better to use a separate <button>
element.
Using CSS, you can make the clear
button look like it sits inside the
<input> element.
Search towns in Australia
Input Button Button
Diagram showing three different elements - the input, the clear and the submit button
Then make sure to set the type to
"text" rather than "search".
<label for="search">Search towns in Australia</label>
<input
type="text"
id="search"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="false"
>
The aria-describedby attribute
allows us to describe the purpose
of the current element. It points the
current element to a new element
with a matching ID value.
<label for="search">Search towns in Australia</label>
<input
type="text"
id="search"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="false"
>
<div id="instructions" aria-live="assertive"
style="display: none;">
...
</div>
This allows us to provide basic
instructions on the use of the
widget for assistive technologies.
<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>
The aria-owns attribute allows us
to define “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
type="text"
id="search"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="false"
>
<ul id="results">
...
</ul>
The aria-expanded attribute allows
us to inform assistive technologies
when the autocomplete dropdown
is present. It is initially set to
"false".
<label for="search">Search towns in Australia</label>
<input
type="text"
id="search"
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
type="text"
id="search"
aria-describedby="instructions"
aria-owns="results"
aria-expanded="true"
>
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>
After the two button elements, we
need to add the <ul> element which
will be used to display the
autocomplete suggestions.
<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>
As mentioned before, the ID
attribute’s value of "results"
allows us to determine that this
element is “owned” by the parent
<input> element.
<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>
The role attribute can be set with a
value of "listbox", which 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"
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>
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;"
>
<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 something like
"display:block" as soon as the
autocomplete options are triggered.
<ul
id="results"
role="listbox"
tabindex="0"
style="display: block;"
>
<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>
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"
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 "0" as soon as the
autocomplete suggestions are
present.
<ul
id="results"
role="listbox"
tabindex="0"
style="display: block;"
>
<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>
Each of the <li> elements can be
given a role attribute with a value
of "option" with 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" aria-selected="false">apple</li>
<li role="option" aria-selected="false">banana</li>
<li role="option" aria-selected="false">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>
After the <ul> element, we have the
<div> element, which has the
instructions for assistive
technologies.
<div
id="instructions"
aria-live="assertive"
class="off-left"
>
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"
aria-live="assertive"
class="off-left"
>
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"
aria-live="assertive"
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"
aria-live="assertive"
class="off-left"
>
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"
aria-live="assertive"
class="off-left"
>
When autocomplete results are available use up and down
arrows to review and enter to select.
</div>
<div
id="instructions"
aria-live="assertive"
class="off-left"
>
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"
aria-live="assertive"
class="off-left"
>
3 options available. Use up and down arrows to review and
enter to select.
</div>
Good examples
One of my favourite accessible
autocomplete search widgets is the
haltersweb version:

https://haltersweb.github.io/Accessibility/
autocomplete.html
However, there are a wide range of
different solutions available, such as:

http://www.visionaustralia.org/digital-access-autocomplete
https://a11y.nicolas-hoffmann.net/autocomplete-list/
https://alphagov.github.io/accessible-autocomplete/examples/
http://oaa-accessibility.org/examplep/combobox2/
Giveaways
I’m now going to ask you all three
“prize winnable” questions.
The first person to correctly
answer each of these questions
will win a SitePoint Premium Annual
Membership, with access to over
$20,000 worth of SitePoint books
and courses!
I’ll be asking the A11yBytes folks to
help make sure the process is as
fair as possible, but there are no
guarantees!
Let's start with the first “prize-
winnable” question...
Question 1
When should you use a link
element, and when should you use
a button element?
Answer to question 1
A link allows users to go
somewhere. It should send the user
to a new location.

A button allows people to trigger
some type of action such as
submitting a form.
Question 2
What is the easiest and most
effective way to identify common
accessibility problems in your site/
app?
Answer to question 2
Unplug the mouse. The easiest and
most effective way to check your
site is using keyboard-only.
Question 3
What is the purpose of the aria-
live attribute?
Answer to question 3
The aria-live attribute allows us
to notify screen readers when
content is dynamically updated in
specific areas of a page.
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

Small Tasks Make Big Changes - Shmulik Dorinbaum.pptx
Small Tasks Make Big Changes - Shmulik Dorinbaum.pptxSmall Tasks Make Big Changes - Shmulik Dorinbaum.pptx
Small Tasks Make Big Changes - Shmulik Dorinbaum.pptxShmulik Dorinbaum
 
Mad Science Experiments in SEO & Social Media
Mad Science Experiments in SEO & Social MediaMad Science Experiments in SEO & Social Media
Mad Science Experiments in SEO & Social MediaRand Fishkin
 
The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020
The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020
The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020Kristina Azarenko
 
BrightonSEO Oct 2022 Similar_ai.pdf
BrightonSEO Oct 2022 Similar_ai.pdfBrightonSEO Oct 2022 Similar_ai.pdf
BrightonSEO Oct 2022 Similar_ai.pdfDylan Fuler
 
Mobile web site testing report
Mobile web site testing reportMobile web site testing report
Mobile web site testing reportQA Madness
 
Amazon product launch
Amazon product launchAmazon product launch
Amazon product launchHamzaAli367
 
Product Research Workflow Presentation
Product Research Workflow PresentationProduct Research Workflow Presentation
Product Research Workflow PresentationIlanaMaeAsaldo
 
[BrightonSEO 2019] Restructuring Websites to Improve Indexability
[BrightonSEO 2019] Restructuring Websites to Improve Indexability[BrightonSEO 2019] Restructuring Websites to Improve Indexability
[BrightonSEO 2019] Restructuring Websites to Improve IndexabilityAreej AbuAli
 
International SEO for E-Commerce Websites #SEJLive #SEJeSummit
International SEO for E-Commerce Websites #SEJLive #SEJeSummitInternational SEO for E-Commerce Websites #SEJLive #SEJeSummit
International SEO for E-Commerce Websites #SEJLive #SEJeSummitAleyda Solís
 
SEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEO
SEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEOSEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEO
SEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEOAleyda Solís
 
How To EAT Links.pptx
How To EAT Links.pptxHow To EAT Links.pptx
How To EAT Links.pptxDixon Jones
 
How to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performanceHow to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performanceSimon Lesser
 
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOConAleyda Solís
 
Analysis of Algorithm (Bubblesort and Quicksort)
Analysis of Algorithm (Bubblesort and Quicksort)Analysis of Algorithm (Bubblesort and Quicksort)
Analysis of Algorithm (Bubblesort and Quicksort)Flynce Miguel
 
Actionable and Impactful SEO Audits #SearchNorwich
Actionable and Impactful SEO Audits  #SearchNorwichActionable and Impactful SEO Audits  #SearchNorwich
Actionable and Impactful SEO Audits #SearchNorwichAleyda Solís
 
What is in a link?
What is in a link?What is in a link?
What is in a link?Dixon Jones
 
Shining a light on the dark funnel
Shining a light on the dark funnelShining a light on the dark funnel
Shining a light on the dark funnelRiaz Kanani
 
Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...
Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...
Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...MargoHowie
 

What's hot (20)

Small Tasks Make Big Changes - Shmulik Dorinbaum.pptx
Small Tasks Make Big Changes - Shmulik Dorinbaum.pptxSmall Tasks Make Big Changes - Shmulik Dorinbaum.pptx
Small Tasks Make Big Changes - Shmulik Dorinbaum.pptx
 
Mad Science Experiments in SEO & Social Media
Mad Science Experiments in SEO & Social MediaMad Science Experiments in SEO & Social Media
Mad Science Experiments in SEO & Social Media
 
The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020
The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020
The 8-Step eCommerce Framework to Elevate Your SEO Game at #WTSFest 2020
 
BrightonSEO Oct 2022 Similar_ai.pdf
BrightonSEO Oct 2022 Similar_ai.pdfBrightonSEO Oct 2022 Similar_ai.pdf
BrightonSEO Oct 2022 Similar_ai.pdf
 
Mobile web site testing report
Mobile web site testing reportMobile web site testing report
Mobile web site testing report
 
Amazon product launch
Amazon product launchAmazon product launch
Amazon product launch
 
Product Research Workflow Presentation
Product Research Workflow PresentationProduct Research Workflow Presentation
Product Research Workflow Presentation
 
[BrightonSEO 2019] Restructuring Websites to Improve Indexability
[BrightonSEO 2019] Restructuring Websites to Improve Indexability[BrightonSEO 2019] Restructuring Websites to Improve Indexability
[BrightonSEO 2019] Restructuring Websites to Improve Indexability
 
International SEO for E-Commerce Websites #SEJLive #SEJeSummit
International SEO for E-Commerce Websites #SEJLive #SEJeSummitInternational SEO for E-Commerce Websites #SEJLive #SEJeSummit
International SEO for E-Commerce Websites #SEJLive #SEJeSummit
 
Product research presentation
Product research presentationProduct research presentation
Product research presentation
 
How to control googlebot
How to control googlebotHow to control googlebot
How to control googlebot
 
SEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEO
SEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEOSEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEO
SEO Internacional: Acciones a Priorizar y Errores a Evitar #3HorasDeSEO
 
How To EAT Links.pptx
How To EAT Links.pptxHow To EAT Links.pptx
How To EAT Links.pptx
 
How to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performanceHow to leverage indexation tracking to monitor issues and improve performance
How to leverage indexation tracking to monitor issues and improve performance
 
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
 
Analysis of Algorithm (Bubblesort and Quicksort)
Analysis of Algorithm (Bubblesort and Quicksort)Analysis of Algorithm (Bubblesort and Quicksort)
Analysis of Algorithm (Bubblesort and Quicksort)
 
Actionable and Impactful SEO Audits #SearchNorwich
Actionable and Impactful SEO Audits  #SearchNorwichActionable and Impactful SEO Audits  #SearchNorwich
Actionable and Impactful SEO Audits #SearchNorwich
 
What is in a link?
What is in a link?What is in a link?
What is in a link?
 
Shining a light on the dark funnel
Shining a light on the dark funnelShining a light on the dark funnel
Shining a light on the dark funnel
 
Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...
Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...
Commerce Platforms PDP Content Strategy: Amazon and Beyond - BrightonSEO Oct ...
 

Similar to Accessible Autocomplete Search Guide

Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24Russ Weakley
 
Alv report-tutorial-www.sapexpert.co .uk-
Alv report-tutorial-www.sapexpert.co .uk-Alv report-tutorial-www.sapexpert.co .uk-
Alv report-tutorial-www.sapexpert.co .uk-Faina Fridman
 
Style Scope Mobile App Documentation
Style Scope Mobile App DocumentationStyle Scope Mobile App Documentation
Style Scope Mobile App DocumentationArleneWatson
 
Integrated Assignment User Guide
Integrated Assignment User GuideIntegrated Assignment User Guide
Integrated Assignment User GuideTimothy Adrian Lam
 
© The Pennsylvania State University Excel Homework 6 Tutor.docx
© The Pennsylvania State University Excel Homework 6 Tutor.docx© The Pennsylvania State University Excel Homework 6 Tutor.docx
© The Pennsylvania State University Excel Homework 6 Tutor.docxgerardkortney
 
Intelligent design tableau 3
Intelligent design tableau 3Intelligent design tableau 3
Intelligent design tableau 3alok khobragade
 
In Section 1 on the Data page, complete each column of the spreads.docx
In Section 1 on the Data page, complete each column of the spreads.docxIn Section 1 on the Data page, complete each column of the spreads.docx
In Section 1 on the Data page, complete each column of the spreads.docxsleeperharwell
 

Similar to Accessible Autocomplete Search Guide (8)

Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24Building an accessible auto-complete - #ID24
Building an accessible auto-complete - #ID24
 
Alv report-tutorial-www.sapexpert.co .uk-
Alv report-tutorial-www.sapexpert.co .uk-Alv report-tutorial-www.sapexpert.co .uk-
Alv report-tutorial-www.sapexpert.co .uk-
 
Style Scope Mobile App Documentation
Style Scope Mobile App DocumentationStyle Scope Mobile App Documentation
Style Scope Mobile App Documentation
 
Integrated Assignment User Guide
Integrated Assignment User GuideIntegrated Assignment User Guide
Integrated Assignment User Guide
 
© The Pennsylvania State University Excel Homework 6 Tutor.docx
© The Pennsylvania State University Excel Homework 6 Tutor.docx© The Pennsylvania State University Excel Homework 6 Tutor.docx
© The Pennsylvania State University Excel Homework 6 Tutor.docx
 
Intelligent design tableau 3
Intelligent design tableau 3Intelligent design tableau 3
Intelligent design tableau 3
 
Bench mark research
Bench mark research Bench mark research
Bench mark research
 
In Section 1 on the Data page, complete each column of the spreads.docx
In Section 1 on the Data page, complete each column of the spreads.docxIn Section 1 on the Data page, complete each column of the spreads.docx
In Section 1 on the Data page, complete each column of the spreads.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 are accessible names and why should you care?
What are accessible names and why should you care?What are accessible names and why should you care?
What are accessible names and why should you care?Russ Weakley
 
How to build accessible UI components
How to build accessible UI componentsHow to build accessible UI components
How to build accessible UI componentsRuss 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
 
Accessible states in Design Systems
Accessible states in Design SystemsAccessible states in Design Systems
Accessible states in Design SystemsRuss Weakley
 
Creating accessible modals and autocompletes
Creating accessible modals and autocompletesCreating accessible modals and autocompletes
Creating accessible modals and autocompletesRuss Weakley
 
Building an accessible progressive loader
Building an accessible progressive loaderBuilding an accessible progressive loader
Building an accessible progressive loaderRuss Weakley
 
Accessibility in Design systems - the pain and glory
Accessibility in Design systems - the pain and gloryAccessibility in Design systems - the pain and glory
Accessibility in Design systems - the pain and gloryRuss Weakley
 
Accessible Inline errors messages
Accessible Inline errors messagesAccessible Inline errors messages
Accessible Inline errors messagesRuss 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
 
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
 
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
 
Accessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxesAccessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxesRuss Weakley
 
Deep Dive into Line-Height
Deep Dive into Line-HeightDeep Dive into Line-Height
Deep Dive into Line-HeightRuss Weakley
 
Building Accessible Web Components
Building Accessible Web ComponentsBuilding Accessible Web Components
Building Accessible Web ComponentsRuss Weakley
 

More from Russ Weakley (20)

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 are accessible names and why should you care?
What are accessible names and why should you care?What are accessible names and why should you care?
What are accessible names and why should you care?
 
How to build accessible UI components
How to build accessible UI componentsHow to build accessible UI components
How to build accessible UI components
 
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?
 
Accessible states in Design Systems
Accessible states in Design SystemsAccessible states in Design Systems
Accessible states in Design Systems
 
Creating accessible modals and autocompletes
Creating accessible modals and autocompletesCreating accessible modals and autocompletes
Creating accessible modals and autocompletes
 
Building an accessible progressive loader
Building an accessible progressive loaderBuilding an accessible progressive loader
Building an accessible progressive loader
 
Accessibility in Design systems - the pain and glory
Accessibility in Design systems - the pain and gloryAccessibility in Design systems - the pain and glory
Accessibility in Design systems - the pain and glory
 
Accessible Inline errors messages
Accessible Inline errors messagesAccessible Inline errors messages
Accessible Inline errors messages
 
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
 
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
 
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
 
Accessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxesAccessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxes
 
Deep Dive into Line-Height
Deep Dive into Line-HeightDeep Dive into Line-Height
Deep Dive into Line-Height
 
Building Accessible Web Components
Building Accessible Web ComponentsBuilding Accessible Web Components
Building Accessible Web Components
 

Recently uploaded

GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 

Recently uploaded (20)

GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 

Accessible Autocomplete Search Guide