Accessibility in pattern libraries
- 3. In the past, many people approached
complex websites and web
applications as a series of “pages”.
- 5. More recently, in complex websites
and applications, the focus has
shifted from full page layouts to
re-usable components.
- 6. A re-usable component could be a
layout grid structure, a button, an
input, a drop-down, a menu, a
heading, a table, or even a pullquote.
- 8. Pattern libraries are a collection of
user interface components that can
be used multiple times across a
website or web application.
- 9. On large websites and complex
applications, pattern libraries have a
range of benefits.
- 11. If done well, they provide a shared
vocabulary across all teams.
- 15. This means that they start with
individual “lego building blocks”
and then use these block to build
larger and more complex
components.
- 20. They are the basic lego building
blocks of the pattern library.
- 21. Most of these elements are rarely
used on their own - they are used to
make modules and components.
- 24. For example, an input module could
include a label, an input, a hint text, a
possible error message and then all of
the possible states including focus,
hover, and disabled.
- 25. Static Input
Disabled Input
This field cannot be filled in
Error Message
Additional Information
Additional Information
Invalid Input
Focussed Input
Invalid user data
Value
Additional Information
Inputs
Placeholder
Static Input
Additional Information
Value
Disabled Input This field cannot be filled in
Error Message
Additional Information
Invalid Input
Focussed Input
Invalid user data
Additional Information
Inputs - Side-By-Side
Placeholder
Input module
- 28. An example might be a signup form
that includes various form control
modules, a button module and a
potential success/error module.
- 33. Screens are where modules and
components are combined into the
final concepts that are presented to
the user.
- 34. An example might be a login screen,
which not only has the login form
component, but also the navigation
component, header component and
footer component.
- 35. A screen may also have different
states depending on a number of
different factors, such as the type of
user, where they are in the current
process etc.
- 36. Generally, screens are not part of a
pattern library. The pattern library is
used to help create these screens.
- 39. There are three distinctly different
types of pattern library:
UX/UI pattern libraries
Design style guides
Front end pattern libraries
- 43. 2. Define the various states for all
elements, modules, components (i.e.
hover, focus, active states, logged-in
or logged out etc).
- 44. 3. Define key dynamic behaviours
(i.e. animations, transitions, fly-outs,
drop-downs etc).
- 45. 4. Define feedback and notification
mechanisms (i.e. success messages,
error messages etc).
- 47. These pattern libraries normally take
the form of detailed wireframes and/
or prototypes along with additional
documentation.
- 48. They help to communicate to internal
teams and stakeholders how a
website or app should be built.
- 50. During the design phase, the
emphasis is less about defining re-
usable modules and more about
defining a consistent “look and feel”
across every aspect of the website or
application.
- 51. For this reason, they are more often
style guides rather than pattern
libraries.
- 53. 1. How core branding will be
implemented across the website or
app.
- 60. These elements and modules can
then be used as needed to rapidly
build complex components and the
final screens.
- 62. One danger with front-end pattern
libraries is where modules and
components are presented as
examples that have to be copied and
pasted by developers.
- 64. Pattern libraries should be built so
that modules and components are
referenced directly from the pattern
library in some way.
- 65. This means that they can be updated
automatically without leaving legacy
versions across an application.
- 68. There is a wide range of pre-existing
UX and front-end pattern libraries
available today.
- 69. Some of these pattern libraries have a
simple purpose - such as predefined
sets of UI modules in wireframe form,
or front-end grid systems.
- 70. Others, especially in the front-end, are
full “frameworks” that offer a wide
range of fully functional elements,
modules and components.
- 73. They are also often useful for rapid
prototyping during the UX/UI phase.
- 75. The pre-build modules and
components may not suit your
project which means they have to be
heavily modified.
- 76. They often produce a generic look,
mainly because people are not
experienced enough to know how to
customise them.
- 79. Do you want to rely on others to make
sure all of your modules and
components are accessible?
- 83. UX/UI pattern libraries should
describe solutions to some aspects
of accessibility such as states,
behaviours, proximity, notifications,
error messages etc.
- 84. Good UX/UI pattern libraries even
help to describe how keystrokes
should allow users to “travel”
through complex components.
- 86. Design style guides should address a
range of design-related
accessibility concerns such as:
colour contrast, use of proximity, use
of iconography and font-size.
- 88. So, the UX/UI and design phases
provide recommendations and
requirements.
- 91. In the old days, accessibility reviews
were often tacked on at the end of
major site or application builds.
Often just before launch.
- 92. Full site build with accessibility review
just before launch
UX Design Build Launch
Review
- 93. Even worse, in some circumstances,
reviews were carried out after launch
- only when someone made a
complaint.
- 94. Full site build with accessibility review
after launch
UX Design Build Launch
Review
- 99. A feature is a stand-alone section of
a web application. A new feature
may require anything from a single
screen to multiple screens.
- 100. For example, in a banking web
application, a new feature could allow
customers to add additional bank
accounts to the system.
- 101. Because features are released
individually, accessibility reviews can
be conducted on an individual
feature rather than an entire
application or site.
- 102. A single feature build process with
accessibility review before launch
UX Test Build Test Launch
Review
- 103. And, if accessibility is considered
during all phases of feature
development, the accessibility review
should be even less painful.
- 104. A single feature build process with accessibility
integrated throughout all phases
A A Review
UX Test Build Test Launch
- 105. However, with the use of pattern
libraries, accessibility can be “baked
in” even earlier in the process.
- 106. In many cases, an initial pattern library
is built before any features are
ready.
- 108. Accessibility should be “baked into”
each of these modules. And, they
need to be carefully reviewed before
proceeding.
- 109. What does this mean?
Well, it means following basic
accessibility guidelines…
- 112. Making sure for and id attributes are
used correctly for labels and inputs.
- 115. If modules are built correctly, they
provides a solid foundation for all
future components.
- 116. The process is often similar to a
feature release, except the outcome
is the initial pattern library rather than
a feature.
- 117. Pattern library build with accessibility integrated
throughout all phases
A A Review
UX Design Build Ready
- 118. As new features move into
production, new components are built
and added into the pattern library.
- 119. Some people make the mistake of
assuming that these components will
automatically be accessible
because they use the tested modules
as a base.
- 121. For this reason, new components
should also be tested and reviewed
before launch, as part of the feature
release.
- 122. A single feature build process with accessibility
integrated throughout all phases
A A Review
UX Test Build Test Launch
- 126. For front-end pattern libraries, make
sure to bake accessibility into all
core modules and test carefully.
- 127. Make sure to test all components
and screens as they are released
with features.
- 128. And, avoid building pattern libraries
that rely on developers having to
copy/paste code samples.
- 130. Russ Weakley
Max Design
Site: maxdesign.com.au
Twitter: twitter.com/russmaxdesign
Slideshare: slideshare.net/maxdesign
Linkedin: linkedin.com/in/russweakley