Welcome to our XR Design and Accessibility Guide!
If you’re here, you might be interested in design considerations to make when creating in VR or how to best incorporate accessibility in your project.
This guide is an exercise in considering accessibility during the design and planning process. As developers in emerging tech, it can often feel easier to think about accessibility at a later stage in the development process. Realistically though, considering accessibility after the fact can be a daunting task, especially when your main concern is to make your feature or application functional.
Under certain conditions, accessibility can be the difference between a user having an experience and a user being excluded from one. Sometimes these disabilities can be permanent, but they can also be situational or temporary. For example, a person without an arm (a permanent disability), a person with a cast (a temporary disability) and a person holding a child (a situational disability) might benefit from the opportunity to choose their preference of using one VR controller rather than two without feeling limited by the experience.
Although we often consider the ideal user, most people do not strictly fall into these categories. Allowing people to choose how they experience their experiences does not only benefit people with disabilities, it benefits everyone. While there may be the inclination to make your experience a literal extended version of reality, we also have the opportunity to create an extended reality that adapts to the needs of the people living in it. People will need different options based on their needs. The ability to adjust preset options allows the user to experience your application in a manner that is comfortable to them.
This is not a clear cut guide of the do’s and don’ts when designing user experiences in VR, but a compilation of our research and resources on the subject. With everything, test and see if it works for you and your needs.
|Light-colored font with an outline
|Backgrounds are more likely to be dark than light, so light colors contrast best against dark backgrounds. Test different colored fonts according to your needs.
|What does the text convey and what location will best affect the user’s experience?
|Set the default size to medium and allow the user to adjust font size (either by creating preset options or scale) to their comfort level. This should start at 10% of the screen’s height and adjust as needed.
|Sans serif and monospaced fonts are often easier to read. Allowing a user to choose a preferred font based on their needs means that their experience is less likely to be diminished by something that we (the devs) can easily adjust.
|Due to the nature of the 360 degree experience, we often lack control over what the user is seeing. If there is text that needs to be read, cue the user with visual indicators if they’re looking in the wrong direction.
|Left-aligned and no justification
|Left-aligned text with no justification is easier to read for those with dyslexia.
While most of the recommendations for subtitles will fall under the text category, consider any audio and the cues that might be missed for a person with a hearing disability or low volume settings. Is your experience the same without audio entirely? Would it benefit from captioning?
|What to Consider
|Is color being used to indicate important behavior, like red for “stop” or green for “go”? Consider supplementing these behaviors with patterns, symbols or shapes to enforce differences.
|Brightness presets can assist people with low vision.
|Contrast presets can assist people with low vision. Verify if a change in contrast still offers the same amount of depth.
|Consider allowing functionality to bring objects closer. This can help people with low vision or limited mobility.
|Size presets can include changing the size of fonts, objects, buttons, etc. Some people would benefit from interacting with a bigger hitbox.
Input alternatives can greatly affect those with limited mobility, whether it is situational, temporary or permanent.
|Directional input (moving the joystick left or right)
|Hover over object to interact with raycast