Skip to main content
Proposal — first pass, not an audited Invoca screen. No Titan design library or shipped product surface was available while writing this page. What follows is built from general interaction-design practice and from the constraints Foundations and Components already establish — see Coverage, stated honestly.

The problem

Changing one small value — a name, a status, a quantity — sometimes gets a whole navigation to a dedicated edit page for a change that takes one field and one second to type. That round trip costs the reader a page load out and a page load back for a change that didn’t need either. But inline editing isn’t free of cost either: it has to signal that a value is editable at all before anyone clicks it, it has to make committing and cancelling both obvious, and it has to say what happens to the value if the save fails while the reader has already moved on. The failure mode in each direction is different. Skip inline editing where it belongs and every trivial change becomes a small ceremony. Use it where it doesn’t belong — a change with side effects on other data, or one that genuinely needs its own validation and context — and the reader edits a field with no idea what else just changed, or hits a save failure with nowhere to see why.

Inline, or a dedicated view?

Inline editing is for changes with no story to tell. The moment a change needs to explain itself — what else it affects, why a value is rejected — it has outgrown a single field edited in place, and belongs on Form validation’s ground instead.

When this applies

  • The value is a single field, and changing it has no side effects on other data.
  • The new value needs no validation beyond what a single Input or Select already checks.
  • The reader benefits from staying on the page they’re already looking at.

When it doesn’t

Structure

Behavior

Constraints

Content

Accessibility

  • Entering edit mode moves focus into the field automatically — the reader who clicked or keyboard-activated the value should not have to Tab into it separately.
  • The commit and cancel controls are reachable by Tab, in addition to their Enter and Escape equivalents — a reader who cannot use keyboard shortcuts still needs a visible path to both.
  • Each icon-only control’s accessible name states the action and the field it acts on (“Save campaign name,” not “Save”) when a page has more than one inline-editable field, so a screen-reader user moving between rows can tell them apart.
  • A failed save is announced (a live region, or the error text’s own aria-describedby association to the field) — not only shown visually, per the same reasoning as Input’s error state.

Variations

Anti-patterns

Reverting a failed save with no trace. The reader retyped a value, pressed save, and the field quietly snapped back to the old value with no error and no way to tell what happened to their edit. See TITAN-INLINE-05. An edit affordance nobody can find. A value that’s editable only via a hover-revealed icon, on a device or in a context where hovering isn’t possible, has no path into edit mode at all. Inline editing a value with real consequences. A field that looks like a quick inline edit but actually changes billing, live routing, or another record’s data gives the reader no indication that clicking away committed something bigger than the one visible field. No keyboard equivalent for commit or cancel. Requiring a mouse click on a tiny icon to save or discard an inline edit, with no Enter or Escape alternative, breaks a convention every reader already expects from editing text anywhere else. Input and Select, the fields this pattern swaps in during editing. Button and Tooltip, for the icon-only commit, cancel, and edit affordances. Form validation, for a change that has outgrown a single inline field. Destructive confirmation, for leaving a page with an uncommitted edit. TITAN-GAP-22 and Error handling, for the general treatment of a failed action this page’s failed-save behavior works around.
Last modified on September 7, 2026