Patterns
Accessibility
We aim to make our software accessible to the widest audience possible. Empowering all people to easily and successfully use our products requires taking an inclusive, Accessible by Design, approach to both Product Design and Engineering.
Accessibility compliance goals
For all of Sprout's web applications, we strive to achieve the Web Content Accessibility Guidelines 2.1 AA level of compliance. This ensures:
- our products exhibit our core company values
- we are using internationally recognized standards for benchmarking accessibility compliance
- we are building our software using industry best practices
Accessible by design
Accessibility is for everyone. Accessibility is about ensuring equitable access to our applications for all people. This includes people with disabilities, and also has many other beneficial aspects such as accommodating a user's personal preference or temporary limitations, power users, SEO and more.
We practice Inclusive Design to make our applications accessible to, and easily used by, the widest possible audience, without the need for special adaptation or specialized design. We follow web accessibility best practices such as semantic HTML and the proper use of ARIA to ensure robust support for Assistive Technologies.
An Accessible by Design approach means we consistently focus on these aspects of Product Design and Development:
-
Semantic markup with robust support for Assistive Technologies (ATs)
- Always use HTML5 tags semantically
- Use ARIA (Accessible Rich Internet Applications) roles and
aria-attributes to provide Assistive Technology support, but only when necessary - Use components from Seeds to ensure maintainability across the entire application
- The focus order of elements within a page should be logical and intuitive
- Any important non-text content should be accompanied by a text alternative (alt-text)
-
Simple and intuitive design
- An intuitive and logical design lends itself well to being developed semantically—consider the "outline" version of a page
- Experiences should not overwhelm users or behave in unexpected ways
- The experience should be functional using only a keyboard
-
Considerate usage of color
- Color is never used alone to indicate meaning, such as validation errors or prompting user action
- Text and User Interface (UI) elements should have sufficient color contrast with their backgrounds
-
Clear and concise copy
- The Sprout Social web app is currently accessible to speakers of English, French, Spanish, Italian and Portuguese. In order to best accommodate these audiences, keep copy short and to the point. Translations are more likely to increase in size (character count) and lose clarity from a verbose English source.
- Acronyms - must always be defined out upon first-use
-
The Guiding Questions
- Equitable - Is the design is fair and impartial?
- Flexible - Does the feature allow for multiple input/output methods to accommodate user needs/preferences?
- Perceivable - Can the information be easily consumed? Either visually, through audio, or through other Assistive Technologies?
- Understandable - Is the information and experience easy to understand?
- Low Physical Effort - Is it physically easy to use?
-
DO: Use our custom focus ring mixin on focused elements.
-
DO: Consider Accessibility practices as a continuous responsibility for all team members
-
DON'T: Allow Accessibility features to be an after-thought
-
DO: Understand expected keyboard navigation before beginning development.
-
DO: Understand what parts of the feature/product need to be read aloud for screen readers and which parts are decorations that need no explanation.
Keyboard navigation
We aspire to meet the WCAG 2.0 AA standards.
Expected Keyboard Navigation Interactions
| Interaction | Keystrokes | Notes |
|---|---|---|
| Navigate to most elements |
|
|
| Links |
| |
| Buttons |
| Ensure elements with ARIA role="button" can be activated with both key commands. |
| Checkboxes |
| |
| Radios |
| Radio selection should update automatically on keyup |
| Select (Dropdown) Menu |
|
|
| Autocomplete |
| Upon selection of an auto-complete option, focus should go back to the autocomplete text field |
| Dialog / Modal / Takeover |
| This will usually just close the modal unless a confirmation/warning modal is required to fully dismiss |
| Sliders |
| |
| Range Sliders |
|
|
| Tab Panel (Tab Group) |
|
|
| Tree |
| |
| Scrolling |
| Always minimize or eliminate horizontal scrolling within our supported viewport sizes. |
Accessible design checklist
Visuals
Account for all visual impairments in your use of color and imagery.
Color
Related Seeds pages
- Theme
- Adhering to our themes should ensure that all your colors are accessible.
Tools
- Figma - Contrast
- Online - WebAIM Contrast Checker
Images and icons
Related Seeds pages
Content
Create a logical flow of information to guide users no matter how they view your interfaces.
Responsive design
Structure
Tools
Copy
Tools
- Figma - Hemingway (unofficial plugin)
- Online
Controls
Help users reach destinations and perform actions.
Interaction
Navigation
Links
Related Seeds pages
Forms
Seeds form components are accessible, but there are a few best practices to keep in mind.
Related Seeds pages
Tables
Structure data tables following accessibility best practices.
Related Seeds pages
Timed events
Ensure experiences aren't relying on timed events.
Multimedia
Multimedia provided as a text alternative, like a video tutorial, should have proper transcripts and controls. Content that is solely audio or moving, such as background music or animation, should also have proper controls and not auto-play unless it's for a few seconds.
Multimedia as a text alternative
Audio or moving content
Related Seeds pages
Resources
- Our expected keyboard navigation primarily follows the Keyboard Testing table from WebAim.
- For a detailed look, check out the Web Content Accessibility Guidelines 2.1 AA/AAA Standards from W3C.