Inclusive User Stories
Write user stories where accessibility is part of the acceptance
criteria from the start — not added later as a separate ticket.
The Problem
Most user stories are written as:
"As a user, I want to filter search results so I can find what I need."
This assumes a user who can see the filters, click small targets,
read the labels, and process the results visually. It silently
excludes anyone who interacts differently.
The Fix
Don't write separate "accessibility stories." Build inclusion into
every story's acceptance criteria.
Story Structure
The Story
Keep the standard format:
"As a [user], I want to [action] so that [outcome]."
But be specific about the user when it matters:
- "As a keyboard-only user, I want to filter results using arrow
keys and Enter so that I can narrow my search without a mouse."
- "As a screen reader user, I want filter changes to be announced
so that I know the results have updated."
Inclusive Acceptance Criteria
For every user story, add these checks to the acceptance criteria:
Keyboard:
Screen reader:
Visual:
Motor:
Cognitive:
Patterns for Common Stories
"As a user, I want to complete a form"
Add:
- Labels are visible and associated with fields
- Required fields are indicated visually and programmatically
- Errors appear inline next to the field, not just in a banner
- Form can be completed with keyboard, touch, or voice
"As a user, I want to view a dashboard"
Add:
- Data is not conveyed by colour alone (patterns, labels, values)
- Charts have text summaries
- Dashboard is navigable by keyboard with logical tab order
- Key metrics are announced to screen readers
"As a user, I want to receive a notification"
Add:
- Notification is visual AND programmatically announced
- User can control notification preferences
- Notification does not disappear before it can be read
- Notification does not block other interactions
How to Audit Existing Stories
- Read each story and ask: who does this exclude?
- Check acceptance criteria for keyboard, screen reader, visual,
motor, and cognitive requirements
- Flag any story that assumes a single input method or sense
- Add missing criteria — don't create separate stories
Assessment Questions
- Do acceptance criteria include keyboard, screen reader, and
cognitive requirements?
- Are accessibility criteria part of the definition of done?
- Has each story been checked for assumptions about ability?
- Are there any stories that only work for one input method?
1---2name: inclusive-user-stories3description: Write user stories that account for disability and diverse abilities from the start. Use when writing user stories, acceptance criteria, jobs to be done, or requirements. Triggers on: user story, user stories, acceptance criteria, jobs to be done, JTBD, requirements, as a user I want, definition of done, story writing.4---56# Inclusive User Stories78Write user stories where accessibility is part of the acceptance9criteria from the start — not added later as a separate ticket.1011## The Problem1213Most user stories are written as:14"As a user, I want to filter search results so I can find what I need."1516This assumes a user who can see the filters, click small targets,17read the labels, and process the results visually. It silently18excludes anyone who interacts differently.1920## The Fix2122Don't write separate "accessibility stories." Build inclusion into23every story's acceptance criteria.2425## Story Structure2627### The Story28Keep the standard format:29"As a [user], I want to [action] so that [outcome]."3031But be specific about the user when it matters:32- "As a keyboard-only user, I want to filter results using arrow33 keys and Enter so that I can narrow my search without a mouse."34- "As a screen reader user, I want filter changes to be announced35 so that I know the results have updated."3637### Inclusive Acceptance Criteria3839For every user story, add these checks to the acceptance criteria:4041**Keyboard:**42- [ ] Feature is fully operable with keyboard alone43- [ ] Focus order is logical44- [ ] Focus is visible on every interactive element4546**Screen reader:**47- [ ] All controls have accessible names48- [ ] State changes are announced49- [ ] Dynamic content updates use aria-live5051**Visual:**52- [ ] Information is not conveyed by colour alone53- [ ] Text meets minimum contrast (4.5:1 for normal, 3:1 for large)54- [ ] Content is readable at 200% zoom5556**Motor:**57- [ ] Touch targets are at least 44×44px58- [ ] No time-dependent interactions without alternatives59- [ ] No precision-dependent interactions without alternatives6061**Cognitive:**62- [ ] Instructions are in plain language63- [ ] Error messages explain what to do, not just what went wrong64- [ ] User can undo or recover from mistakes6566## Patterns for Common Stories6768### "As a user, I want to complete a form"69Add:70- Labels are visible and associated with fields71- Required fields are indicated visually and programmatically72- Errors appear inline next to the field, not just in a banner73- Form can be completed with keyboard, touch, or voice7475### "As a user, I want to view a dashboard"76Add:77- Data is not conveyed by colour alone (patterns, labels, values)78- Charts have text summaries79- Dashboard is navigable by keyboard with logical tab order80- Key metrics are announced to screen readers8182### "As a user, I want to receive a notification"83Add:84- Notification is visual AND programmatically announced85- User can control notification preferences86- Notification does not disappear before it can be read87- Notification does not block other interactions8889## How to Audit Existing Stories90911. Read each story and ask: who does this exclude?922. Check acceptance criteria for keyboard, screen reader, visual,93 motor, and cognitive requirements943. Flag any story that assumes a single input method or sense954. Add missing criteria — don't create separate stories9697## Assessment Questions98991. Do acceptance criteria include keyboard, screen reader, and100 cognitive requirements?1012. Are accessibility criteria part of the definition of done?1023. Has each story been checked for assumptions about ability?1034. Are there any stories that only work for one input method?