More Related Content Similar to Accessible states in Design Systems (20) More from Russ Weakley (20) Accessible states in Design Systems3. The W3C defined states as:
“dynamic properties that convey
the characteristics of a user
interface component”.
4. I don’t know about you, but I
always find the W3C’s technical
definitions challenging to
understand.
5. How about we start with a
simple example… like the visited
state, which is applied to visited
links.
6. The state of a component can
change in response to user
actions.
7. For example, users can change
the state of some components to
checked, hover, focus or active
states.
9. For example, a form control
could be set with an invalid state
via a script.
14. Along the way I’ll talk about
some problems I’ve observed
while conducting user testing
sessions.
24. The visited state is triggered
when a link has been visited
(and exists in the browser’s
history).
27. Issue:
Trying to follow a multi-step
process from a single page
source. Kept losing place in
process due to lack of visited link
states.
31. This state can be triggered via
user keyboard actions or some
sort of automated script.
32. This state should be applied to
any interactive element (e.g.
links, buttons, triggers, tabs,
inputs, selects, textareas).
35. Issue:
Trying to navigate a content-rich
news website. Lost track of
where focus was on the page due
to lack of focus states on some
components.
36. Solution 1:
Make sure all focusable items
have a visible focus state - either
the default focus style or a
customised focus style.
38. We’ll look into consistency in
more detail when we get to
“systematising states”.
40. The hover state is triggered
when a component is being
hovered over by a user's mouse
pointer.
41. This state can be applied to any
“clickable” element (links,
buttons, triggers).
48. Solution:
I have found it beneficial for
some types of users to add hover
states to inputs, selects and
textareas.
50. The active (or pressed) state is
triggered when a component is
currently being activated by the
user.
51. Like the hover state, this state
can be applied to any
“clickable” element (links,
buttons, triggers).
60. Issue:
Trying to fill in a form. Kept
trying to interact with a disabled
component that had a focus
state. This led to frustration and
confusion.
62. Solution 2:
If disabled components must be
presented, make sure that they
are visually identifiable as
“disabled”.
65. The invalid state means that the
form control contains content
that fails to validate.
68. Issue:
Filling in a form. Colour-alone
used to define invalid form field.
Was not able to identify the field
with the issue.
71. The checked (or selected) state
means that the component has
been checked or toggled to an
“on” state, either via the user, or
by default.
74. It is possible to have two
different states associated
with a component at the same
time - checked and focussed.
80. A radio can also be in a checked
(or selected) state only.
82. However, if a radio button is in
focus and the user presses the
SPACEBAR, this radio button will
now be checked and in focus.
84. This is also relevant for
checkboxes and segmented
controls.
87. Issue:
Unable to distinguish between
focus and checked state on a
segmented control. Assumed the
form control had been selected
when it was only in focus.
90. There are a range of interactive
UI components that are built
using non-native HTML - e.g.
using DIV and SPAN elements
only.
92. If these non-native widgets
include some sort of interaction,
they must have relevant states
defined.
93. For example, an open/shut
accordion should have focus,
hover, active and open states
defined.
98. Item 1
Item 2
Item 3
Content inside accordion
panel, visible when open.
Open state on accordion
100. Have you ever noticed a website
or application that has
inconsistent hover and focus
styles across different
components?
101. This can lead to a jarring
experience - especially for
keyboard-only users who
navigate via focus.
103. This makes it easier to:
- establish consistency
- maintain existing
components
- add new components
104. But how do you go about
systematising states?
105. I use a “states” table to track all
component states:
112. This allows you to compare all
the components in their
different states.
113. States may need to be styled
slightly differently in each
category, but there should be an
overall consistency across all
components.
122. For buttons, there is a column
for each of the button levels
(primary, secondary, link and
icon).
137. For selectable form controls,
there is a column for radios,
checkboxes and segmented
controls.
141. The visited states are not
relevant. In some systems I have
included an active state for
segmented controls, but it is up
to the team.
151. For in-page tabs, there is a
column for the closed and open
version of tab items.
157. Open tabs do not require a hover
or active state as they are
already “open and active”.
164. Take away 2:
It’s important to design for all of
these different states, especially
for non-native widgets.
167. Why?
It allows you to maintain a
visual consistency across your
websites and/or applications.
168. Russ Weakley
Max Design
Site: maxdesign.com.au
Twitter: twitter.com/russmaxdesign
Slideshare: slideshare.net/maxdesign
Linkedin: linkedin.com/in/russweakley