Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fix: resolve keystroke input being swallowed after link in Firefox#1922

Open
olivierlambert wants to merge 2 commits intodocmost:mainfrom
olivierlambert:fix/firefox-link-boundary-input
Open

fix: resolve keystroke input being swallowed after link in Firefox#1922
olivierlambert wants to merge 2 commits intodocmost:mainfrom
olivierlambert:fix/firefox-link-boundary-input

Conversation

@olivierlambert
Copy link
Contributor

@olivierlambert olivierlambert commented Feb 9, 2026

In Firefox, when the cursor is at the right boundary of a link mark, contenteditable inserts new text inside the element. ProseMirror then rejects the DOM mutation because the link mark has inclusive: false, causing keystrokes to be silently swallowed. Unlike Chrome, Firefox also does not fire ProseMirror's handleTextInput callback in this state.

This adds a ProseMirror plugin that intercepts printable character keydowns at link mark boundaries and programmatically inserts the text without the link mark, bypassing Firefox's native contenteditable behavior entirely.

Fixes #1773

Note: functionally tested. Before: bug visible only in Firefox. Now the bug is fixed in Firefox without any regression on Chrome.

edit: now improved via a 2nd commit to fix #1748 at the same time.

In Firefox, when the cursor is at the right boundary of a link mark,
contenteditable inserts new text inside the <a> element. ProseMirror
then rejects the DOM mutation because the link mark has inclusive: false,
causing keystrokes to be silently swallowed. Unlike Chrome, Firefox also
does not fire ProseMirror's handleTextInput callback in this state.

This adds a ProseMirror plugin that intercepts printable character
keydowns at link mark boundaries and programmatically inserts the text
without the link mark, bypassing Firefox's native contenteditable
behavior entirely.

Fixes docmost#1773

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@CLAassistant
Copy link

CLAassistant commented Feb 9, 2026

CLA assistant check
All committers have signed the CLA.

Extend the linkBoundaryInput plugin to also handle the left boundary
of links, where the cursor is just before a link (e.g. at the start
of a line). Firefox inserts text inside the <a> element in this case
too, causing ProseMirror to reject the mutation.

Fixes docmost#1748

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] All keystrokes ignored when adding text after a link in some conditions Cannot type before link when link is the first element of a line

2 participants