skip to content

What must an accessibility line in a Definition of Done say to be able to fail?

level: middleimportance: nice to knowfreq 22%

answer

  1. The line has to be able to fail
  2. Name a check, a scope, a result
  3. Aspiration is not acceptance
  4. An unpassable line dies like an unfailable one
  5. Write the pre-existing-defect exception down

basics

~20 s

A line that can fail names a check, a scope and a failing result: the task completes with no pointing device, every new control has an accessible name, the build gate adds no violations. 'Accessible' names none of them.

solid answer

~50 s

Write acceptance the team is able to fail. A usable line names three things: the **check** somebody runs, the **scope** it applies to, and the **result** that counts as failing. "Accessible" names none of them, so it is signed every iteration and tested never. Turn it into entries like: the task this change touches completes end to end without a pointing device; every new or changed control announces a name that matches its visible label; the automated rule check in the build reports no new violations; every needs-review item has an owner and a recorded decision. Add the exception in writing — a pre-existing failure on an untouched screen is recorded, not fixed here — or the line becomes unpassable and gets quietly dropped. A line that can never fail and a line that always fails die the same death.

code

pseudocode · 11 lines
pseudocode
DONE when, for the screens this change touches:
  1. the task completes end to end with no pointing device
  2. every new or changed control announces a name that
     matches its visible label
  3. the automated rule check reports no new violations
     on the changed surface
  4. each needs-review item has an owner and a decision
  5. one assistive-technology pass over the changed task,
     findings logged against the step
  EXCEPTION: a pre-existing failure on an untouched screen
  is recorded with severity and owner, and does not block

go deeper

for a junior

Be ready to say why 'the feature is accessible' is not usable acceptance, and to offer one concrete replacement such as completing the task without a pointing device.

for a middle

Explain the anatomy of a line that can fail — a check, a scope and a result — and show how each aspirational phrase maps onto something a person actually performs.

for a senior

Show the operational side: the exception for pre-existing defects, ownership per entry, and how a line becomes decorative when it is either unpassable or unfailable.

for a principal

Own how acceptance stays honest at scale — how you audit the line itself, why counts as targets corrupt behaviour, and how you keep the automated entry from crowding out the human one.

## Why most accessibility acceptance lines are decorative Almost every team has a line in its Definition of Done that mentions accessibility, and almost none of those lines has ever blocked a story. The reason is structural, not cultural: the line is written as an **aspiration** rather than as a **check**. "The feature is accessible to all users" cannot fail, because nobody can say what evidence would falsify it. So it gets ticked, and the tick becomes the team's evidence. A line that can fail has three parts: 1. **A check** — something a named person actually performs, or a gate that actually runs. 2. **A scope** — what the check applies to, bounded to this change rather than the whole product. 3. **A result** — the observable outcome that counts as failing. Drop any one and the line reverts to decoration. Drop the scope in particular and you get the opposite failure: an unpassable line, because it demands the whole product conform before this story can close. ## Turning aspiration into acceptance | Aspirational line | Why it cannot fail | Checkable replacement | |---|---|---| | "The feature is accessible" | Names no check, no scope, no result | "The task this change touches completes end to end with no pointing device" | | "We considered accessibility" | Consideration leaves no artefact | "A manual pass over the changed task is recorded with its findings" | | "No accessibility violations" | Names no check that produces violations | "The automated rule check in the build reports no new violations on the changed surface" | | "Follows the standard" | The standard has dozens of applicable criteria | "Every new or changed control announces a name matching its visible label" | | "Works with assistive technology" | Friendliness is not observable | "One assistive-technology pass over the changed task, findings logged with the step" | Notice what the right-hand column has in common: each entry produces a **result somebody can point at** — a completed task, a recorded pass, a gate outcome, a logged finding. ## What to include, and what to leave out Include: - The **keyboard-only completion** of the task the change touches. It is the highest-yield single line, it needs no extra software, and it maps onto the criterion requiring functionality to be operable from a keyboard (2.1.1 Keyboard, level A). - The **accessible name** of every new or changed control, checked against its visible label. This is where the naming criterion (4.1.2 Name, Role, Value, level A) is actually enforced, one control at a time. - The **automated gate result**, scoped to the changed surface so unrelated pre-existing failures do not block the story. - A rule for **needs-review** output: an owner and a recorded decision, never a bulk close. - A **manual pass** whose findings are logged even when they are not fixed in this story. Leave out: - Any wording that asks a story to establish product-wide conformance. - Any criterion the team has no way to evaluate — a line you cannot run is worse than no line, because it teaches everyone that the list is theatre. - Counts as targets. "Fewer than 5 violations" rewards suppressing findings rather than fixing them. ## The exception clause, and why it is not a loophole The fastest way to kill an accessibility line is to make it unpassable. A maintenance console for farm machinery has a 6-step application form, and step 4 is a legacy screen nobody is willing to touch. If the Definition of Done says the whole task must pass keyboard-only, then every story in that area fails on somebody else's defect, and within two iterations the line is suspended "temporarily". So write the exception into the line itself: *a pre-existing failure on a screen this change does not touch is recorded against that screen with a severity and an owner, and does not block this story.* That keeps three properties at once — the story can close, the defect stays visible, and the team accumulates a real list rather than a suspended rule. ## How it holds up over time - **Review the line against real failures.** If it has never failed a story in 6 months, either the team is exceptional or the line is decorative. Find out which by testing a story you already know is defective. - **Keep it short.** Five entries somebody performs beat twenty nobody reads. - **Name the owner of each entry.** An entry with no owner is performed by nobody in the week the release is late. - **Do not let the automated entry crowd out the manual one.** A gate result is easy to point at, which is exactly why it drifts into being the only entry anyone checks — and it covers only the measurable criteria.

  • A team's accessibility line has never failed a story in six months. What do you conclude?
    Either the line is decorative or nothing is being checked. Test it deliberately: take a story you know has a defect — a control with no name, a step that needs a pointer — and see whether the line catches it. If it does not, the entry names no check, no scope or no result, and it needs rewriting rather than more encouragement.
  • Why is 'fewer than five violations' a bad acceptance entry?
    It sets a target on a count the team controls by suppression rather than by fixing. Rules get disabled, findings get reclassified, and the number goes down while the interface does not improve. Acceptance entries should name a check and a binary outcome; counts belong in trend reporting where nothing is gated on them.

An acceptance line you cannot fail is a smoke alarm with no battery: it is on the wall, it reassures everyone who looks up, and it has never once gone off.

saying these in an interview costs you the question

  • Writes an acceptance line no story could ever fail
  • Uses 'is accessible' as the acceptance wording
  • Names a target but no check that produces the result
  • Demands product-wide conformance before a story can close
  • Assumes signing the line is the same as running it