We connect over millions of users globally. They interact with our user interfaces through language. It is important to consider different cultures, languages and user disabilities when we design our elements by making it accessible.
Having labels above input field accommodates lengthy text especially when it gets translated into other languages. It also reduces the risk of overlapping text and breaking layouts.
Don’t give other meaning to universally recognizable icons such as save, help and delete.
Always keep in mind to view your user interface in a different language, to get an understanding of how the layout might change.
Consider how currency values would look in different currencies (eg. larger numbers, or different decimal places).
Familiarity with
Run Lighthouse and make sure that new components or any updates to existing ones are passing. This can flag things like low-contrast text, form elements not having associated labels, etc. Do note that there are some areas which automated audits cannot test. We will cover those in the next sections below.
Interactive elements should be operable via keyboard only. It is important to make controls accessible for those who cannot or do not use a mouse.
Things to look out for when reviewing keyboard accessibility:
Your components and page as a whole should be accessible and presentable for assistive technologies such as screen readers. We use ChromeVox extension in Google Chrome to emulate a screen reader. In the absence of visual cues, it is important to add information like the role, status, relationship, sequence, etc.
Here are some general guidelines:
Writing semantic markup goes a long way. They are already tagged with proper roles and assistive technologies already know how to navigate and interpret them.
Images should have alt text. It is a way for screen readers to describe the content of an image. An exception to this rule is for when an image is used primarily for presentation, usually they have an adjacent text that sufficiently describes it. In such cases, add an empty alt="" string so they can be skipped by a screen reader.
Custom controls should be labeled appropriately, e.g add appropriate role, label, etc. For more details on how to provide semantics for custom controls, see