v145 · Web APIs · Deletion Type Guide

Deletion Type Guide

All deletion-related inputType values, the key combinations that trigger them, and how Chrome 145 corrects the mapping for non-collapsed selections (selected text). Rows highlighted in green are fixed in Chrome 145 — they previously all reported as deleteContentBackward or deleteContentForward.

Non-collapsed selection: A selection where start ≠ end position — i.e., text is highlighted. Before Chrome 145, any deletion key on a non-collapsed selection always reported character-granularity types. Chrome 145 maps the key to the correct granularity regardless of selection state.
Live beforeinput deletion probe
Checking InputEvent support…
Selection state appears here.
Run a deletion command or use the editor with real keyboard shortcuts.

deletion inputType reference

inputType Key (cursor) Key (selection) Granularity Direction
deleteContentBackward Backspace Backspace Character Backward
deleteContentForward Delete Delete Character Forward
deleteWordBackward fixed Ctrl+Backspace Ctrl+Backspace (on selection) Word Backward
deleteWordForward fixed Ctrl+Delete Ctrl+Delete (on selection) Word Forward
deleteSoftLineBackward fixed Shift+Backspace Shift+Backspace (on selection) Soft line Backward
deleteSoftLineForward fixed Shift+Delete (platform) Shift+Delete (on selection) Soft line Forward
deleteHardLineBackward Ctrl+Shift+Backspace Ctrl+Shift+Backspace Hard line Backward
deleteHardLineForward Ctrl+Shift+Delete Ctrl+Shift+Delete Hard line Forward
deleteEntireSoftLine platform line command platform line command Entire soft line Both
deleteByCut Ctrl+X Ctrl+X (on selection) Selection Both
deleteByDrag Drag selection away Selection Both

what changed in Chrome 145

Before Chrome 145

// User selects "brown fox" and presses Ctrl+Backspace
// Expected: deleteWordBackward
// Actual (pre-145):
event.inputType // 'deleteContentBackward'
// Wrong granularity — editor records it
// as a single-char deletion, undo is broken

Chrome 145+

// User selects "brown fox" and presses Ctrl+Backspace
// Expected: deleteWordBackward
// Actual (Chrome 145+):
event.inputType // 'deleteWordBackward'
// Correct granularity — undo stack records
// this as a word deletion, restores correctly

using inputType in a custom editor

editor.addEventListener('beforeinput', event => {
  switch (event.inputType) {
    case 'deleteContentBackward':
    case 'deleteContentForward':
      recordCharDeletion(event.getTargetRanges());
      break;

    case 'deleteWordBackward':
    case 'deleteWordForward':
      // Chrome 145: also fires correctly for non-collapsed selections
      recordWordDeletion(event.inputType, event.getTargetRanges());
      break;

    case 'deleteSoftLineBackward':
    case 'deleteSoftLineForward':
      recordLineDeletion(event.inputType, event.getTargetRanges());
      break;

    case 'deleteByCut':
      recordCut(event.getTargetRanges());
      break;
  }
});

see also