Accessibility
Content has to work without colour, layout, or visual position. These rules cost almost nothing and exclude almost no one.
Informed by WCAG 2.2.
Device-neutral language
Use verbs that work for any input method — mouse, touch, keyboard, voice, switch.
| ✅ Prefer | ❌ Avoid |
|---|---|
| Select Save changes. | Click the button on the right. |
| Open Notifications. | Tap the bell icon. |
| Choose an environment. | Hit Enter. |
Meaningful links
Link text should make sense out of context. Screen readers can list every link on a page; "click here" tells the reader nothing about where it goes.
| ✅ Prefer | ❌ Avoid |
|---|---|
| Read the OpenTelemetry installation guide. | Click here for the installation guide. |
| See AppSignal terminology for all key types. | See more information. |
No visual direction
Don't write "above", "below", "to the left", or "the button on the right". On a phone the left sidebar doesn't exist; to a screen reader "above" means nothing.
| ✅ Prefer | ❌ Avoid |
|---|---|
| In the previous step… | See above. |
| In the following section… | Use the option on the left. |
| Select Billing. | Click the button below. |
Alt text
Describe the purpose of the image, not every visual detail. Decorative images take empty alt text (alt="") so screen readers skip them.
| ✅ Prefer | ❌ Avoid |
|---|---|
| Namespace filter showing the web and API namespaces | Screenshot of AppSignal |
| Billing page with invoice download links | image001.png |
Don't rely on colour
A red border alone isn't enough to communicate an error — pair it with an icon and a sentence. A green check alone isn't enough to communicate success — say so in words.
This is also why button hierarchy uses shape as well as colour; see buttons.
Screen readers
- Don't use punctuation as decoration. It gets read aloud.
- Don't use ALL CAPS for emphasis. Some readers spell each letter.
- Don't use ASCII art or emoji as functional UI. Provide a text equivalent.
- Hide decorative icons with
aria-hidden="true".