Skip to content
easeweb
Search topics

Instructions that rely on colour, shape or position

A checkout tells people to press the green arrow on the right, but the button has no visible words, a screen reader never says its colour, shape or place, and on a phone it is no longer on the right.

WCAG 2.2
SC 1.3.3A
Required by
Section 508 · EN 301 549 (EU)
Broken <p>…press the green arrow on the right.</p>
The accessibility problem illustrated: No vision:Where is the button?
01

The problem

People who can't see the screen, or who see a different layout, can't tell which control an instruction means.

02

Try it

Read the instruction, then find the button it means. Turn on Phone width and read it again.

The panel under the page shows what a screen reader reads, in order. Which of those is the green arrow on the right?

Broken Can you fix this?

Step 2 of 3

Delivery

Choose a delivery slot, then press the green arrow on the right.

Delivery slot

Reading the step from the top, a screen reader says:

  1. Delivery, heading level 2
  2. Choose a delivery slot, then press the green arrow on the right.
  3. Delivery slot, group, Tuesday, 10:00 to 12:00, radio button, checked
  4. Back to basket, link
  5. Continue to payment, button

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Name the control in the instruction, by the words it shows or its accessible name, and keep any visual description true at every width.

  1. 1Every instruction names the control it means, by its visible text or its accessible name.
  2. 2Colour, shape, size, position and sound may help, but only beside that name.
  3. 3Drop position words that change with the layout, except above and below in reading order.
Before An instruction that points by colour, shape and position
<h2>Delivery</h2><p>Choose a delivery slot, then press the green arrow on the right.</p><fieldset>  <legend>Delivery slot</legend>  …</fieldset><div class="step-actions">  <a href="/basket">Back to basket</a>  <button type="submit" class="next" aria-label="Continue to payment">    <svg aria-hidden="true" focusable="false">…</svg>  </button></div>
After

Words on the button, quoted in the instruction

<h2>Delivery</h2><p>Choose a delivery slot, then press Continue to payment.</p><fieldset>  <legend>Delivery slot</legend>  …</fieldset><div class="step-actions">  <a href="/basket">Back to basket</a>  <button type="submit" class="next">    Continue to payment    <svg aria-hidden="true" focusable="false">…</svg>  </button></div>

Fixing this with an AI coding assistant? Get this guide as Markdown

04

Verify the fix

4 checks, no mouse.

Test with: Screen reader, Speech input, Zoom

0 of 4 checked

Record the OS, browser and assistive-technology versions, the build, the date, and the actual result of each step. Repeat after the copy, the layout or the button design changes.

Limits

This is a starting pattern, not a guarantee for every application. It covers instructions that point to controls and items. A button with no accessible name at all is a different failure, covered in icon-only buttons with no accessible name, and fields marked only by a colour are covered in required fields marked only by colour. Instructions in images, videos and PDFs need the same check. Test the complete journey with people who rely on it.

This is a recreated teaching example, not a finding about a named client. The code is a starting pattern: test it in your own product. No completed assistive-technology test is claimed here.

Keep this fixed as your code changes.

Turn guides like this into rules your coding agents and CI follow, then have the result retested with a keyboard and screen readers.

How retests work