Closed (fixed)
Project:
Drupal core
Version:
9.5.x-dev
Component:
ckeditor5.module
Priority:
Normal
Category:
Plan
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
21 Sep 2021 at 16:47 UTC
Updated:
29 Nov 2022 at 08:14 UTC
Jump to comment: Most recent
Comments
Comment #2
wim leersAdded:
Comment #3
wim leersDocumentation gates are complete as of yesterday.
Comment #4
wim leersis done.
Added #3228505: Plugin definition DX: automatically check for plugin definitions whether their ::getDefaultSettings() matches the config schema to .
Comment #5
wim leers#3226335: Follow-up for #3216015: allow contrib & custom Drupal modules providing CKEditor 4 plugins to specify their CKEditor 5 equivalents + settings to be migrated and #3226694: Follow-up for #3216015: refactor SmartDefaultSettings to return messages rather than sending them landed yesterday, together they make the 4-to-5 upgrade path entirely possible and testable!
Comment #6
wim leersFix parent issue 😅
Comment #7
wim leersLong overdue for another roadmap update. Many dozens of issues fixed since then. Not focusing on what's been done, but on the work we identified.
Edge cases:
#3239376: [unbreak tests] SA-CORE-2021-009 broke tests, #3244911: Automatic upgrade path failing when CKEditor 4 has the StylesCombo plugin configured, #3245387: CKEditor5 has an empty settingsForm() method that neither inherits from nor is called by anything, #3245390: CKEditor5::validatePair() and CKEditor5PluginManager::getPluginConfiguration() throw inconsistent exception types, #3245772: Update CKEditor5AllowedTagsTest following the commit of #2763075 into Drupal 9.3, #3246448: Fix cspell & phpcs failures caused by both becoming more strict, #3246647: Filter settings are not removed when a filter is disabled, #3246955: Harden drupal-media by namespacing model attributes
Added:
Post-stable, Upstream improvements that would simplify or improve CKEditor 5:
Comment #8
lauriiiAdding issues discovered during FEFM review to the roadmap:
Comment #9
wim leersComment #10
andypostit needs some fixes for PHP 8.1 https://www.drupal.org/pift-ci-job/2235570
Comment #11
larowlanCan you open a critical for that @andypost
Comment #12
andypostFiled child issue #3249240: HTMLRestrictionsUtilities:: providedElementsAttributes() causes deprecations on PHP 8.1
Comment #13
wim leers#3249240: HTMLRestrictionsUtilities:: providedElementsAttributes() causes deprecations on PHP 8.1 has been fixed since.
#3224261: [PP-1] Front-end performance: concatenate CKEditor 5 JS assets for every unique configuration was not in here yet, and IMHO is pretty damn important! Added that to .
Comment #15
mglamanMaybe I missed it, so apologies if I did, but is there an issue to track making CKEditor5 the default for Drupal 10 in the Standard installation, or is that not the plan?
Comment #16
xjmComment #17
wim leers#15: there's no separate issue for that.
ckeditor.modulewill be removed from Drupal 10. As part of removing that module, we'll also need to change the Standard install profile to useckeditor5.moduleinstead.I'd swear such an issue already existed, but I cannot find it right now. Maybe @xjm knows? 🤞
Comment #18
wim leersTwo new stable-blockers discovered:
Comment #19
wim leers#3228778: Drupal-specific CKEditor 5 plugins should be able to use Drupal's JS translation API: Drupal.t() landed, which means that only two issues remain under :
Comment #20
wim leersLanded:
New and landed:
Comment #21
catchTook a look at the issue summary to see how we're doing. There are more done issues than outstanding which is great. Is it worth moving the done issues to a 'done' dump at the bottom, so it's easier to scan the outstanding issues at the top? I don't dare do this without floating it first since it'd be a pain to put them all back again.
Comment #22
wim leersAdded #3263384: Add ckeditor5-code-block package and CodeBlock plugin to .
#21: Agreed — @tim.plunkett is going to have a go at that 😊
Comment #23
tim.plunkettAttempted to reorganize the roadmap.
Comment #24
tim.plunkettMissed a spot
Comment #25
wim leersThanks, @tim.plunkett!
Comment #26
wim leers#3224261: [PP-1] Front-end performance: concatenate CKEditor 5 JS assets for every unique configuration falls in the "performance" bucket.
Comment #27
gábor hojtsyFixing an item that was not expanded in the Completed section.
Comment #28
wim leers#3228334: Refactor HTMLRestrictionsUtilities to a HtmlRestrictions value object landed.
Comment #29
wim leersAdded two new stable blocking bugs:
Comment #30
wim leersTwo more finished:
Comment #31
wim leersThree outdated (irrelevant now or done in other issue):
Comment #32
wim leers#3246188: Vertical tabs auto collapse on viewports smaller than 1360px on certain configuration actions is a Claro bug, not a CKEditor 5 issue.
Removing it from this roadmap.
Comment #33
wim leers#29 added two new major stable blocking bugs. But there are more that we created in the past few weeks. (More to follow tomorrow, but here's what I gathered so far.)
Comment #34
wim leers#3248440: [drupalMedia] Media embed attributes are rendered in container div in editing view landed.
Comment #35
wim leers#3259493: [GHS] Unable to limit attribute values: ::allowedElementsStringToHtmlSupportConfig() does not generate configuration that CKEditor 5 expects just landed and was still missing here. It also unblocks #3260853: [GHS] Partial wildcard attributes (<foo data-*>, <foo *-bar-*>, <foo *-bar>) and attribute values (<h2 id="jump-*">) not yet supported and #3260869: Resolve mismatch between <$block> interpretation by CKEditor 5 and Drupal, both of which were missing from the roadmap.
Comment #36
wim leers#3246385: [drupalMedia] Support captions on <drupal-media> landed!
Comment #37
wim leers#3224261: [PP-1] Front-end performance: concatenate CKEditor 5 JS assets for every unique configuration is blocked on #3232810: [PP-1] Allow setting aggregation groups for js files in library definitions, which is an
asset library systemcomponent issue, notckeditor5.module.A key part was split off from #3224261: #3264512: Enable aggregation for CKEditor 5 assets. This already improves front-end performance significantly: from "bad" to "good". #3224261: [PP-1] Front-end performance: concatenate CKEditor 5 JS assets for every unique configuration will get us from "good" to "optimal".
Therefore I propose moving #3224261: [PP-1] Front-end performance: concatenate CKEditor 5 JS assets for every unique configuration from stable blocking to post-stable. @nod_, @catch, @lauriii: thoughts?
Comment #38
nod_+1 for post-stable, it's "good enough" right now.
Comment #39
catchAgreed with making #3224261: [PP-1] Front-end performance: concatenate CKEditor 5 JS assets for every unique configuration nice-to-have. The two asset system issues will be a massive improvement, but ckeditor5 relying on core's existing asset aggregation is fine for stable.
Comment #40
wim leers👍, moved #3224261: [PP-1] Front-end performance: concatenate CKEditor 5 JS assets for every unique configuration to post-stable!
Comment #41
wim leers#3246365: [drupalMedia] Show the Image Media's default alt text that is being overridden landed!
Comment #42
wim leersI was the only person advocating for
to be stable blockers. I advocated for that for a long time:
but … the Standard install profile still has not enabled
mediaby default, let alonemedia_library😔😔😔It makes no sense to block CKEditor 5 becoming stable on something that is A) a separate concern, B) has lingered for many years.
So moved this to "post-stable".
Comment #43
wim leersYay, #3227822: [GHS] Ensure GHS works with our custom plugins, to allow adding additional attributes landed, which was the last remaining item under ! 🥳
Comment #44
wim leers6 days ago, in #33, I wrote: — well, consider today that "tomorrow" 😅
Roughly 50% of the remaining open issues created since the beginning of 2022 are not stable blocking, and the remaining ~50% are. I added those to the roadmap here — they are:
Comment #45
wim leers#3260853: [GHS] Partial wildcard attributes (<foo data-*>, <foo *-bar-*>, <foo *-bar>) and attribute values (<h2 id="jump-*">) not yet supported landed!
Comment #46
wim leers#3264775: [drupalMedia] Toolbar should be visible when element inside <drupalMedia> is focused landed!
Comment #47
wim leers#3264727: [drupalMedia|drupalImage] Allow removing data-align in the UI, and making an image inline landed!
Comment #48
wim leers#3260032: CKEditor 5 adds ie11.user.warnings library to every page, triggering a FOUC even for anonymous users landed!
EDIT: and that was the last issue! 🥳 AFAICT this means we now meet the Drupal core "Performance" gate: https://www.drupal.org/about/core/policies/core-change-policies/drupal-c....
Comment #49
wim leers#3194084: Support functionality equivalent to ckeditor_stylesheets landed!
Comment #50
wim leers#3245950: [upstream] <script> tag support in GHS is fixed thanks to #3261600: Update to CKEditor5 v32.0.0 having landed!
Comment #51
wim leersJust realized that #3248430: Improve Drupal.ckeditor5 documentation is in the wrong bucket; it belongs under IMHO.
Comment #52
wim leersNew issue: #3268174: Bug in CKE 4 → 5 upgrade path "format" does not always map to "heading", it could map to "codeBlock" too, or both, or neither — discovered in #3263384: Add ckeditor5-code-block package and CodeBlock plugin.
Comment #53
wim leers@lauriii discovered a critical bug unfortunately: #3268306: [GHS] Custom/unofficial HTML tags not retained: <drupal-media>, <drupal-entity>, <foobar>.
Comment #54
wim leers@lauriii discovered two more bugs: #3268318: [drupalMedia] <a> with GHS allowed attributes downcast wraps data-caption with <a> + #3268311: [upstream] [drupalMedia] GHS-enabled markup in data-caption crashes CKEditor 5.
Comment #55
wim leersJust triaged all remaining issues with @lauriii.
We updated a few issues with comments or improved titles.
#3248425: Ensure that all classes and functions in Drupal-specific CKEditor 5 plugins are documented should've been under
And we identified X issues that should no longer be stable blockers:
We didn't go through because we felt it'd be important to have a with us to do that.
@lauriii will start working on #3268311: [upstream] [drupalMedia] GHS-enabled markup in data-caption crashes CKEditor 5 now because we identified that as the highest risk/highest uncertainty one that remains.
Comment #56
wim leers#3248430: Improve Drupal.ckeditor5 documentation landed!
Comment #57
wim leers#3256566: [upstream] <style> tag support in GHS is done thanks to #3269064: Update to CKEditor 5 v33.0.0. #3230230: Enable table captions; override CKE5's default downcast to generate <table><caption></table> instead of <figure><table><figcaption></figure> is now unblocked.
Comment #58
wim leers#3268174: Bug in CKE 4 → 5 upgrade path "format" does not always map to "heading", it could map to "codeBlock" too, or both, or neither landed!
Comment #59
wim leers#3267721: Add DrupalCI step for ensuring that CKEditor 5 build files are build correctly was missing from the roadmap … but it just landed!
Comment #60
wim leersComment #61
wim leers#3260869: Resolve mismatch between <$block> interpretation by CKEditor 5 and Drupal is finally in!
But … @lauriii identified #3268307: $block wildcard resolves into a superset of the actual $block tags as an additional stable blocker, so that now takes its place. Fortunately it's a lot simpler.
Comment #62
wim leers@lauriii found another data loss stable blocker: #3269868: [drupalImage] Some Image attributes are lost in edge cases where image upcasts into inline image.
Comment #63
bnjmnmComment #64
wim leersLanded:
Comment #65
tim.plunkettMoving two issues from Stable to Post-Stable
Comment #66
wim leers#3270108: Editor does not load when using Edge + WHCM and #3259443: Plugin settings do not appear when a configurable plugin is added AFTER removing all buttons landed.
Comment #67
wim leersMade a mistake in #66.
Comment #68
catchOne question on the upgrade path, apart from ckeditor4, what happens if you try to add editor support to an existing format that doesn't have an editor enabled?
Also, what happens when you switch formats from a format without an editor enabled, to ckeditor5?
Comment #69
wim leersSmartDefaultSettingscomputes a CKEditor 5 configuration matching the text format's HTML restrictions, to ensure we support a superset. See thefilter_only__filter_htmltest case in\Drupal\Tests\ckeditor5\Kernel\SmartDefaultSettingsTest::provider()for an example.Same thing as happens when switching to CKEditor 4, thanks to #2099741: Protect WYSIWYG Editors from XSS Without Destroying User Data 😊
Comment #70
catchAhh OK on #3239012: [11.x] Remove the CKEditor 4 upgrade path
SmartDefaultSettingsis mentioned, but it's just removing a ckeditor4-specific method, so the rest stays and that's makes this all work. Thanks!Comment #71
wim leersWell, that became more nuanced in the meantime 😅 See #3239012-8: [11.x] Remove the CKEditor 4 upgrade path, and more importantly, see #3270831: Make the CKEditor 4 → 5 upgrade path work even when the CKEditor 4 module is removed! 🤓 😄
Comment #72
wim leers#3263384: Add ckeditor5-code-block package and CodeBlock plugin landed.
Comment #73
wim leers#3261585: Remove IE11 warning for CKEditor 5 in Drupal 10, since Drupal 10 does not support IE anyway landed.
Comment #74
wim leers#3268860: Elements wrapping <drupal-media> are not retained landed!
Comment #75
wim leers@lauriii found another upstream critical data loss bug: #3271418: [upstream] [drupalMedia] Linked media wrapped with <div> doesn't upcast correctly.
Comment #76
wim leers#3269868: [drupalImage] Some Image attributes are lost in edge cases where image upcasts into inline image landed!
Comment #77
wim leers#3260857: Expand SourceEditingRedundantTagsConstraintValidator to also check attributes and attribute values landed!
Comment #78
wim leers#3268307: $block wildcard resolves into a superset of the actual $block tags landed.
Comment #79
wim leers#3231336: Simplify HtmlRestrictions and FundamentalCompatibilityConstraintValidator now that "forbidden tags" are deprecated is no longer a stable blocker due to #3272516: Deprecate FilterInterface::getHTMLRestrictions()' forbidden_tags functionality.
Comment #80
wim leers#3222757: [drupalImage] Make image alt text required or strongly encouraged landed! The last accessibility stable blocker!
Comment #81
wim leersHappy to report that I discovered #3228580: Follow-up for #3222852: additional test coverage for real-time validation race conditions has been irrelevant for many months, ever since #3228477: CKEditor5PluginConfigurableInterface should extend PluginFormInterface and ConfigurableInterface instead of adding ::settingsForm() happened! It just was never a high enough priority to investigate. But with few issues remaining, it made sense today :)
Comment #82
wim leers#3230230: Enable table captions; override CKE5's default downcast to generate <table><caption></table> instead of <figure><table><figcaption></figure> is in the wrong bucket.
Same for #3247634: [upstream] [drupalImage] Unlinking linked inline images while GHS is enabled: wrapping <a> is impossible to remove, #3268318: [drupalMedia] <a> with GHS allowed attributes downcast wraps data-caption with <a> and #3268311: [upstream] [drupalMedia] GHS-enabled markup in data-caption crashes CKEditor 5
All four belong in the bucket.
Moved them.
Comment #83
wim leers#3222756: Allow using images from external source is also in the wrong bucket: the markup is supported already (i.e. it is not lost), we're just lacking the UX to create images that are externally hosted ("hotlinked").
(This is a very bad practice, but we should ensure that existing content doesn't break.)
Comment #84
wim leers#3261599: Use CKEditor 5's native <ol start> support (and also support <ol reversed>) is also in the wrong bucket: the markup is supported already, and editable already. But instead of requiring users to go to "Source Editing" today (just like in CKEditor 4, actually!), we should allow them to use the native functionality instead.
So, moved to .
Comment #85
wim leersFinally, #3228691: Restrict allowed additional attributes to prevent self XSS is also in the wrong bucket: this is purely a thing to improve the configuration UX and overall security — you can configure CKEditor 4 to allow self-XSS, but once this lands, you won't be able to anymore. Which means that it'll only be possible to self-XSS if already there are no HTML restrictions, i.e. when using the text format.
Therefore, moving to .
Consequently, the bucket is done, which more closely reflects reality: all of the markup that could be edited with CKE4 can already be edited with CKE5 today! 🤓🥳🚀 ***
*** With the exception of a few upstream critical data loss bugs that only manifest in very specific circumstances, listed in the bucket.
Comment #86
wim leers#3269657: [drupalMedia] The CKEditor 4 → 5 upgrade path for the media_embed filter should not forcefully allow the `data-view-mode` attribute on `<drupal-media>` was split off from #3245720: [drupalMedia] Support choosing a view mode for <drupal-media>, but it's an essential follow-up. So adding to the roadmap :)
Comment #87
wim leers#3268983: [regression] FilterHtml throws Unsupported operand types error when * used in tag attribute is a bug introduced by #3228334: Refactor HTMLRestrictionsUtilities to a HtmlRestrictions value object 😬
Comment #88
wim leersNew stable blockers discovered (so far…) at Drupal Dev Days Ghent 2022:
🥳 Better to know about these now rather than months from now!
Comment #89
wim leersComment #90
wim leersNew stable blockers, both relating to the upgrade path for contrib modules:
Comment #91
wim leersOops, that first one should have been #3274278: Migrate "codetag" contrib CKEditor 4 plugin to built-in equivalent in core's CKEditor 5 of course.
Comment #92
wim leersOne more stable blocker discovered: #3274937: Get CKEditor 5 to work in (modal) dialogs.
Comment #93
wim leers#3268318: [drupalMedia] <a> with GHS allowed attributes downcast wraps data-caption with <a> is fixed, which is possible now that we've done #3269651: Update Drupal 9.3.x to CKEditor 5 v34.0.0 along with other un-backported issues 👍
Comment #94
wim leers#3274651: Impossible to enable <ol type> or <ul type> with GHS: switch to List's successor, DocumentList is another stable blocker that was discovered at DDD: it results in losing the
typeattribute on either<ol>or<ul>.Comment #95
wim leers#3245720: [drupalMedia] Support choosing a view mode for <drupal-media> just landed, which means #3269657: [drupalMedia] The CKEditor 4 → 5 upgrade path for the media_embed filter should not forcefully allow the `data-view-mode` attribute on `<drupal-media>` is now unblocked!
Comment #96
wim leers#3274278: Migrate "codetag" contrib CKEditor 4 plugin to built-in equivalent in core's CKEditor 5 landed!
Comment #97
wim leers#3273325: CKE5 and contrib: better "next action" description on upgrade path messages just landed!
Comment #98
lauriiiAdded #3276217: [drupalMedia] add tests to confirm GHS attributes are retained in linked media to the roadmap.
Comment #99
wim leers#3230230: Enable table captions; override CKE5's default downcast to generate <table><caption></table> instead of <figure><table><figcaption></figure> and #3261943: Confusing behavior after pressing "Apply changes to allowed tags" with invalid value landed!
Comment #100
wim leers@bnjmnm just found a new stable-blocking bug: #3238333: Roadmap to CKEditor 5 stable in Drupal 9 👍
Comment #101
wim leersObviously the link in #100 was wrong 🙈 It should've been #3276974: [drupalMedia] Media View Modes don't work if alignment not enabled.
Comment #102
wim leersGood news: #3268311: [upstream] [drupalMedia] GHS-enabled markup in data-caption crashes CKEditor 5 has been fixed upstream, and we got the fix thanks to #3274767: Update to CKEditor 5 v34.0.0. We still had that issue to write an explicit test, but per #3268311-14: [upstream] [drupalMedia] GHS-enabled markup in data-caption crashes CKEditor 5, that is not possible. One less stable blocker! 🥳
Comment #103
wim leers#3231334: Global attributes (<* lang> and <* dir="ltr rtl">): validation + support (fix data loss) landed :)
Comment #104
wim leers#3248425: Ensure that all classes and functions in Drupal-specific CKEditor 5 plugins are documented just landed!
Comment #105
wim leers#3229078: Unit tests for all @CKEditor5Plugin plugin classes and #3261599: Use CKEditor 5's native <ol start> support (and also support <ol reversed>) landed 👍
And non-stable blocker #3277405: Update @ckeditor/ckeditor5-list to v34.0.1 also landed, which means that stable blocker #3274651: Impossible to enable <ol type> or <ul type> with GHS: switch to List's successor, DocumentList is now unblocked 🥳
Comment #106
wim leersI did another round of
ckeditor5.moduleissue queue triaging. Results:Comment #107
wim leers#3276974: [drupalMedia] Media View Modes don't work if alignment not enabled landed!
Comment #108
wim leers#3228691: Restrict allowed additional attributes to prevent self XSS landed 🚀
Comment #109
wim leersMoved it to the wrong place 🙈
Comment #110
wim leers#3272516: Deprecate FilterInterface::getHTMLRestrictions()' forbidden_tags functionality landed!
Comment #111
wim leers#3269657: [drupalMedia] The CKEditor 4 → 5 upgrade path for the media_embed filter should not forcefully allow the `data-view-mode` attribute on `<drupal-media>` landed 👍
Comment #112
wim leers#3259593: Alignment being available as separate buttons AND in dropdown is confusing landed, which means #3273510: CKEditor 5 crash when multiple alignment buttons are activated due to duplicate configuration no longer occurs! Marking it as fixed :)
Comment #114
wim leers#3277438: Update to CKEditor 5 v34.1.0 allowed us to mark 2 stable blockers as done! 🥳
🥳
10 stable blockers remain, of which 2 are blocked on upstream.
Comment #115
wim leers#3274651: Impossible to enable <ol type> or <ul type> with GHS: switch to List's successor, DocumentList landed!
Comment #116
wim leers#3276217: [drupalMedia] add tests to confirm GHS attributes are retained in linked media landed.
Comment #117
wim leers5 new stable blockers, all for accessibility. Thanks @bnjmnm for triaging https://github.com/ckeditor/ckeditor5/labels/domain%3Aaccessibility:
Comment #118
wim leers#3247683: Disable CKEditor 5's automatic link decorators (in Drupal filters should be used instead) and #3273983: Do not assume that plugin supporting <tag attr> also supports <tag> in SourceEditingRedundantTags and upgrade path landed! That means #3222797: Upgrade path from CKEditor 4's StylesCombo to CKEditor 5's Style is now unblocked 👍
Comment #119
wim leers#3274937: Get CKEditor 5 to work in (modal) dialogs is in!
Comment #120
bnjmnmComment #121
xjmI tagged the outstanding children directly, but also tagging the parent in case more issues surface.
Comment #122
catchComment #123
tim.plunkettComment #124
catchComment #125
catchComment #126
catchComment #127
catchComment #128
catchComment #129
feuerwagenComment #130
catchComment #131
wim leers#3290810: Remove updates added prior to 9.4.0 (9.4.4 for ckeditor) and add 9.4.0 database dumps landed.
Comment #132
wim leersAdded #3294908: Configuration overlaps between Styles and other CKE5 plugins.
Comment #133
wim leers#3294908: Configuration overlaps between Styles and other CKE5 plugins landed!
Comment #134
wim leers#3268306: [GHS] Custom/unofficial HTML tags not retained: <drupal-media>, <drupal-entity>, <foobar> landed 👍
Comment #135
bnjmnmComment #136
wim leers#3306216: Contrast perception issues with icons including low-opacity fills landed!
Comment #137
wim leers#3222756: Allow using images from external source landed ✔️
Comment #138
xjmThe only outstanding stable blocker is the dictation issue, which will not be fixed until at least the end of September. The D10 beta release window OTOH is September 12-16.
This issue has been discussed among the release managers, CKEditor 5 contributors, accessibility maintainers, and CKSource maintainers. Summary:
I notice we are missing an issue for the actual step of marking the module stable. I will file it. :)
Comment #139
xjmPosted #3307186: Mark CKEditor 5 stable.
Comment #140
xjmComment #141
wim leersFixed thanks to #3306153: Update CKEditor 5 to 35.1.0 landing:
That only leaves #3283802: Update CKEditor 5 to 35.3.2 to fix voice control/IME on some platforms, but per @xjm in #138, that need not block marking CKEditor 5 as stable in #3307186: Mark CKEditor 5 stable!
Comment #142
wim leersCKEditor 5 is now stable!
See #3307186-32: Mark CKEditor 5 stable.
🚀
P.S.: @lauriii even wrote a haiku for the occasion:
👏
Comment #144
puspanjalim commentedIs CKEditor 5 compatible with Drupal 7.x?
Comment #145
damienmckennaThis D9 issue was already closed almost two months ago, questions about D7 are not relevant here.
Please look at this project if you want to discuss CKEditor 5 in D7: http://drupal.org/project/ckeditor
Comment #146
effulgentsia commentedNo, it's not, and it's not in scope for it to be added to Drupal 7 core. Drupal 7 core doesn't include any rich text editor.
One could attempt to write a contrib module that adds CKEditor 5 to a Drupal 7 site, whether as its own module, or to try to do that as an editor option in https://www.drupal.org/project/wysiwyg. However, this would be a lot of work. Currently, Drupal 7's EOL date is Nov. 2023, and CKEditor 4 will continue to be supported until then, so I don't know what factors would need to come together for someone (or a team of several people) to do that work. You might be interested in following this wysiwyg issue or this backdrop issue, though neither seems very far along yet.
Comment #147
wim leersFinal update: #3283802: Update CKEditor 5 to 35.3.2 to fix voice control/IME on some platforms landed a week ago! 😊