payload icon indicating copy to clipboard operation
payload copied to clipboard

fix(richtext-lexical): allow exiting the RTE with the keyboard in Firefox

Open rilrom opened this issue 4 months ago • 3 comments

Closes #8653.

Originally this PR was for making the IndentFeature opt-in instead of opt-out, which would have been a breaking change. After some discussion it was determined it would be better if we could keep the IndentFeature by default and instead come up with a custom escape key solution to prevent keyboard users from becoming trapped in the editor.

These changes are my interpretation of how we can solve this problem in a way that feels natural for a keyboard user. When a keyboard user becomes trapped, the usual approach is to press the escape key (e.g. modals) to be able to leave the current context and continue navigating. These changes allow that to happen while minimising the cognitive load by not needing to remember whether the IndentFeature is toggled on or off.

I've also ensured the IndentFeature can actually be turned off if consciously removed from the lexical editor features (previously it was still enabled even if it was removed).

Ideally this should be handled on the lexical side in the TabIndentationPlugin itself (I will begin to look into the feasibility of this), but for now this should be suitable to ensure the experience for keyboard users isn't completely blocked (there are a number of other improvements that could be made but I will create more specific issues for those).

Open to discussion and amendments. Once we're aligned on the approach I'm happy to implement tests as needed.

Before

https://github.com/user-attachments/assets/95183bb6-f36e-4b44-8c3b-d880c822d315

After

https://github.com/user-attachments/assets/d34be50a-8f31-4b81-83d1-236d5ce9d8b5

rilrom avatar Oct 11 '24 12:10 rilrom