Accessibility Notes
We'll share some tips on how to design your UI with users in mind. You won't become a UX designer overnight, but we also understand that often engineers or developers are responsible for UI and UX design.
A well designed UI will allow the broadest range of people to use your product and ensures a high standard for users regardless of computing experience, age, or physical capability.
Why should I care about accessibility?
In our experience, accessibility problems fall into two categories of use; users operating outside the intended mode of operation, and users who try use your application as intended but encounter difficulty. These issues might occur due to varied computer hardware, personal preferences, or physical or mental effects outside of the user's direct control.
For some perspective, any random user might hit a combination of:
- Lacking confidence using computer systems,
- Not using their native language due to poor or non-existent translation support,
- Younger users may struggle with complex phrasing or instructions,
- Some computers still have low resolution displays due to age or budget hardware,
- A projector or external display might be used with poor lighting,
- They might be using a touchscreen computer or handheld device with desktop-oriented software,
- Some users may have to use your application for extended periods of time (all day),
- Environmental conditions can complicate usage patterns (harsh industrial sites, remote field work, cluttered lab desks, using it while lying in bed, etc).
Normally, discussing 'accessibility considerations' brings a particular subset of people to mind, but they may represent a larger group than you'd expect:
- 1/12 men (8%) and 1/200 women (0.5%) have some form of colour vision deficiency (CVD),
- As of 2010, WHO's global vision impairment report estimates there are 285 million people with vision impairments, 39 million of which are blind,
- A large percentage of users are likely literacy-challenged, and apparently up to a quarter of people in the US have issues 'making inferences from written text' due to reasons such as ESL, weak education, or other causes.
- Physical disabilities may restrict interaction methods or require support of external assistive devices,
- Mental or learning deficiencies may cause some people to struggle to use or learn some parts of your program.
General Guidelines
These aren't hard and fast rules, but generally speaking you should aim to:
- Maintain strong contrast,
- Use larger and simplistic UI components where possible,
- Clearly label components and provide visual cues (icons),
- Group like-components and actions together to simplify navigation,
- Use a consistent design language and layout to reduce confusion,
- Distinguish with more than just colour or text, add texture/labels/icons/animations,
- Reduce the complexity of common tasks where possible
External resources cover specifics in more detail. Quick links such as this interaction-design.org article and these usabilityfirst.com accessibility pages provide more points of consideration, and there are likely region specific groups devoted to accessibility advocacy, education, and any legislation which might affect your product.
Input Methods
Keyboard Shortcuts
Heavy users of your software will eventually become power users, power users love shortcuts to save time (and feel cool), and they allow assistive hardware devices to provide a better experience with bound macros.
We have a recipe for adding keyboard shortcuts to UI actions here.
- When adding shortcuts, try to follow existing conventions and avoid system level modifier combos.
- Make sure the keyboard shortcuts are discoverable. The best spot is in the top action bar, noted alongside content, and in a manual/help guide.
Controllers and Pen Input
In some situations, other hardware might provide a alternative input method which is superior to a normal keyboard and mouse experience.
Convertible laptops and tablets running windows are increasingly common and offer stylus input as a higher-precision option to touch based input.
- Use buttons, sliders and action based components which work well with touch and drag concepts,
- Avoid text input fields where possible,
- Use large hit targets for finger use,
- Avoid hover-style interactions.
Controller input can vastly simplify the operation of robotics and systems with continuous inputs.
Assistive Devices
Physically-impaired users often have assistive hardware devices. These commonly provide generic interfaces to emulate keyboards, mice, or joystick inputs. By supporting richer input schemes (adding keyboard shortcuts, joystick controls) opportunities open up for these users.
If you are designing an interface for a specific input device, we recommend reading our spacemouse blog post.
Visual Accessibility Tips
WCAG suggests the contrast ratio between text and the background should be at least 4.5:1. Smaller fonts have a recommended 3:1 contrast ratio.
Our default user interfaces support a user-configurable day/night visual style. Make sure both work well with your content.
The application supports OS scaling, hi-dpi, and other modes, but consider adding zoom buttons to your application if your audience often rescale their UI.
You can add audible feedback to your UI to distinguish important events. We have a recipe here.
Literacy Considerations
- Use simple language,
- Provide good translations for international users,
- Don't force a poorly translated application on users, allow them to select it. They might prefer English to your translation,
- Avoid cultural or local slang,
- Provide icons, graphics and animations to provide alternative instructions,
- Use colour, contrast and other visual hints to describe visual state,