Skip to main content

Content & Writing / UI text

Action labels

A button label is a promise. It tells the person what will happen when they press it. Write labels that make that promise clearly and specifically.

The pattern: verb + object

Action labels should follow a verb + object structure. The verb says what happens; the object says what it happens to. Together they remove ambiguity and tell the person exactly what they’re about to do.

  • Sentence case. “Save draft”, not “Save Draft” or “SAVE DRAFT”. Title case in buttons is a common UI pattern — avoid it. It makes labels harder to scan.
  • 1–3 words is the target. 4–5 is acceptable when clarity genuinely requires it. More than 5 words is a sentence, not a label — rethink the UI.
  • Specific over generic. “Save draft” tells someone more than “Save”. “Send invitation” tells someone more than “Submit”.
  • Present tense, active voice. “Export report”, not “Report will be exported”.
  • No periods. Button labels aren’t sentences.

Do

Save draft

Don’t

Save

Do

Publish consultation

Don’t

Go live

Do

Export responses

Don’t

Click here to export

Do

Add stakeholder

Don’t

New

Destructive actions

Don’t soften destructive labels. Euphemistic language on a destructive action is how someone deletes three months of consultation data they didn’t mean to. The label should name the consequence.

If the action is irreversible, the confirmation dialog should state that clearly — but the label itself still needs to be direct. “Remove” and “Archive” are not synonyms for “Delete” when what you mean is delete. If data is permanently destroyed, the label says “Delete”.

  • ”Delete consultation” — not “Remove” or “Clear” when the action is permanent deletion
  • ”Remove stakeholder” — correct when removing from a list without deleting the record
  • ”Archive project” — correct when the project is being archived, not deleted
  • ”Revoke access” — correct; names the consequence precisely

Do

Delete consultation

Used in a confirmation dialog where the action permanently deletes the consultation and all its submissions.

Don’t

Yes, remove it

Vague. Doesn’t name what’s being removed or that it’s permanent.

Do

Revoke access

Don’t

Deactivate

Do

Delete project

The confirmation copy explains what “Delete” means in this context. The label doesn’t need to carry all that weight, but it does need to be the right word.

Don’t

OK / Confirm / Proceed

Confirmation dialog buttons should name the action, not just affirm it.

Icon-only buttons

An icon button without a visible label still needs an accessible label. Icons alone are not universally understood — a three-dot menu icon means different things to different people, and means nothing at all to a screen reader user without an accessible name.

The accessible label lives in code, not in a tooltip. A tooltip is better than nothing, but it requires hover and doesn’t work on touch. Use aria-label on the button element. Make the label specific — not just “More” but “More actions for Northside Highway consultation”.

Do

<button aria-label=“More actions for Northside Highway consultation”>
<Icon name=“ellipsis” />
</button>

Don’t

<button>
<Icon name=“ellipsis” />
</button>

Do

<button aria-label=“Delete submission from Alex Johnson”>
<Icon name=“trash” />
</button>

Don’t

<button aria-label=“Delete”>
<Icon name=“trash” />
</button>

Too generic — “Delete” doesn’t tell a screen reader user what will be deleted.

Links vs. buttons

This is a writing question as much as a development one. The label should match what the element actually does.

  • Buttons perform actions: “Save draft”, “Send invitation”, “Export responses”. They do something to data or application state.
  • Links navigate: “View consultation”, “Go to project”, “Open report”. They take you somewhere.
  • If a link looks like a button but navigates, its label still follows navigation conventions — “View responses”, not “View responses here”.
  • Don’t use “Click here” as a link label. The label should describe the destination or action, not the mechanic of clicking.

Do

View all submissions

A link that navigates to the submissions list for a consultation.

Don’t

Click here to view submissions

Do

Open stakeholder profile

Don’t

More info

Common Open Point labels

These are established patterns in the product. Use them consistently — diverging without reason introduces inconsistency across the suite.

ContextPreferred labelAvoid
Save work in progressSave draftSave, Save changes, Save & close
Make a consultation visible to participantsPublish consultationGo live, Activate, Launch
Take a published consultation offlineUnpublish consultationDeactivate, Take offline, Pause
Add a person to a stakeholder listAdd stakeholderNew, Create, +
Send an email invitationSend invitationInvite, Submit, Go
Download a data fileExport responses / Export reportDownload, Get data
Permanently delete a recordDelete [item name]Remove, Clear, Yes, OK
Leave a flow without savingDiscard changesCancel, Exit, No
Close a dialog or panelClose (icon with aria-label)X with no label, Done, OK

Was this page helpful?