---
title: "Give instructions that work without seeing · Agent Wranglers"
url: https://agentwranglers.se/playbook/website/accessibility/sensory-characteristics
updated: 2026-10-21
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Give instructions that work without seeing the page

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Accessibility](https://agentwranglers.se/playbook/website/accessibility.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

- Level: Required
- Chapter: [Accessibility](https://agentwranglers.se/playbook/website/accessibility)
- Rule: Never write instructions that rely only on shape, colour, size, position or sound. "Press the round button on the right" fails. This is WCAG criterion 1.3.3 (A).
- Risk: A law broken
- How: Name each control by its visible label, and add position or shape only as extra help. Write "Press Next", or "Press Next, below the form". A screen reader user cannot see "the right", and a phone layout moves things. Left and right also swap in right-to-left languages, as [Support right-to-left text](https://agentwranglers.se/playbook/website/languages-and-regions/rtl-support) explains.
- Check: A test searches the page text for "on the left", "on the right", "above", "below", "round", "square", "green", "red" and "the icon". Every sentence with a hit also names a visible label in quotes or bold.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### HTML example

```html
<!-- Not this -->
<p>When you are done, press the green button on the right.</p>

<!-- This -->
<p>When you are done, press <strong>Send booking</strong>, at the end of the form.</p>
```

### JavaScript example

```js
const SENSORY_WORDS = /\b(on the (left|right)|above|below|round|square|green|red|the icon)\b/i;
const NAMES_A_LABEL = /<strong>|"[^"]+"/;
const failing = sentences.filter(s => SENSORY_WORDS.test(s) && !NAMES_A_LABEL.test(s));
```

### Python example

```python
SENSORY_WORDS = re.compile(r"\b(on the (left|right)|above|below|round|square|green|red|the icon)\b", re.I)
NAMES_A_LABEL = re.compile(r'<strong>|"[^"]+"')
failing = [s for s in sentences if SENSORY_WORDS.search(s) and not NAMES_A_LABEL.search(s)]
```

## Sources

- [WCAG 2.2 – 1.3.3 Sensory Characteristics](https://www.w3.org/TR/WCAG22/#sensory-characteristics)

## Related rules

- [Support right-to-left text](https://agentwranglers.se/playbook/website/languages-and-regions/rtl-support) in Website

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/website/accessibility/sensory-characteristics">Agent Wranglers website playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Never play sound by itself](https://agentwranglers.se/playbook/website/accessibility/audio-control)
- [Accessibility](https://agentwranglers.se/playbook/website/accessibility)
