payload
payload copied to clipboard
fix(richtext-lexical): allow exiting the RTE with the keyboard in Firefox
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