Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Problem/Motivation
Quick Edit has usability issues, accessibility issues, and several challenges which make it hard to integrate with other parts of core and a number of unresolved bugs.
Technical issues
- It's incompatible with content moderation or workspaces #2903524: Don't add quickedit to displays where entities have a forward revision. and #2815221: Add ability to use Quick Edit to the latest_revision route, we just disable it on entities that have a forward revision.
- Additionally it's the most challenging part of removing our dependency on backbone and would require hundreds of hours to decouple: #3204016: Replace Quickedit BackboneJS usage with VanillaJS equivalent. Decoupling from Backbone is a Drupal 10 requirement.
Maintenance issues
-
There are over 50 open issues, several more relating to integration with the entity system (revisions, translations), and most haven't been touched for more than six months:
https://www.drupal.org/project/issues/search/drupal?project_issue_follow...
- The only updates to QuickEdit in the past several years are test and dependency updates.
Usability issues
- The user interactions of QuickEdit are clunky and unfinished, with usability bugs that have not been fixed after many years.
- QuickEdit is not well-integrated with existing UI patterns from more finished core elements like Layout Builder and CKEditor.
- The basic use-case - of being able to edit content or configuration via the front end of the website, is already served by contextual links, which while it's not as seamless, is a lot more reliable.
Accessibility issues
- #1844220: Make in-place editing keyboard and aurally accessible
- QuickEdit is known to cause motion sickness in numerous people, with at least one report of severe nausea after prolonged use of it. (See also #2270269: Reduce animation delays).
Usage
- The usage data we have on QuickEdit is not necessarily correct. Since the module is in the Standard profile, many site owners probably don't think or know to disable it, but also don't use the feature. In #3158669: By default deprecate non-experimental modules that are used by less 5% of sites before the next major version, QuickEdit has 73.8% usage, which is one of lowest usages of any module in Standard, and less than the usage of Standard itself. This indicates that site owners are actively turning it off. Unlike modules like Comment, which are valuable in Stnadard because useful to many sites but also not appropriate to many sites, QuickEdit should theoretically be used by content authors as much as (e.g.) CKEditor. But it's not.
- Multiple individuals and Drupal organizations report deliberately never using it in their builds, including:
- Lullabot
- 1x
- Agora Design
- Debug Academy
- Unic
- OpenPlus
- FFW
- Urban Institute
See specific comments in #26 and in the Twitter thread: https://twitter.com/gaborhojtsy/status/1415035764975484931
Proposed resolution
Move Quick Edit to contrib.
Remaining tasks
Find a contrib maintainer.
User interface changes
API changes
Data model changes
Release notes snippet
Comments
Comment #2
larowlanOne problem here may be many sites may have it turned on but not use it
https://git.drupalcode.org/project/drupal/-/blob/9.2.x/core/profiles/sta...
Comment #3
longwaveMaybe we can only remove it from standard profile in D10 and then reconsider full removal for D11?
Comment #4
catchWe could arguably remove it from the standard profile in 9.3 or 9.4 (since it's not an API, similar to adding a new module to the standard profile happens in minor releases), then from core in 10.x - but it definitely needs to be staged, since we can't deprecate before removing from standard.
Comment #5
nod_I agree with this, JS code is complex and isn't really 'extensible' it's more of a "packaged" experience that is starting to get in the way of other core features (it's hard to adapt it because of the lack of flexibility/extensibility).
I would agree that this fits better in contrib nowdays.
Comment #6
xjmQuickEdit was also the most difficult integration point for both Layout Builder and probably up there for CKEditor 5 as well.
One of the primary issues with QuickEdit is that the UX is not good. Itʻs difficult to figure out how to edit in the first place, the UI is slow, floats around in strange ways, and makes it difficult to tell if the content has been saved or not. Itʻs especially problematic with Layout Builder where there are two different interface methods to edit blocks vs. main content. A more complete user interaction solution is needed (and there are initial designs for this work out there).
We might be better off deprecating QuickEdit and working on a new feature based on our modern UI design for content editing in place, comparable to and complementary to Layout Builder, using modern code.
We should probably do user surveys to get an idea of how many sites actually use the feature vs. just never disabled the module.
Comment #7
pameeela CreditAttribution: pameeela commentedThis is (obviously) anecdotal but in all my years of building Drupal sites I have *never* used Quick Edit. It's on the list of 'stuff I uninstall right away'. The only time I have ever used it was when working on core bugs.
So a big +1 to this from me.
Comment #8
Wim LeersAs one of the people who contributed this to Drupal core…
💯 — this alone is the top reason to remove it.
+1 to first remove it from the Standard install profile.
I agree it's too complex. I'll add that it's brittle.
I disagree it's not extensible. But it's brittle and complex to extend. #2421427: Improve the UX of Quick Editing single-valued image fields moved a contrib module into Drupal core that added a new Quick Edit "in-place editor". Which is why the number of contrib/custom
@InPlaceEditor
plugins is extremely tiny (I don't even know of any).💯
Quick Edit was written in a different era:
If we were to write something like Quick Edit today, it'd have been written on top of JSON:API with comprehensive test coverage, on top of a JS lib/framework with many more guardrails and fewer NIH-esque approaches and would have to be far more accessible.
And finally … 50 open issues is frankly a pretty impressively low number compared to most core modules. The caveat there is that it's only 50 because it's probably barely being used! 😅
That being said, I feel bad that they aren't getting a response at all from the maintainers (@nod_ and I) 😔, but it's because there's more important things to spend time on in Drupal core than Quick Edit. Which is mostly the case because all data suggests few people actually use Quick Edit.
At this point, Quick Edit is slowing the rest of Drupal core down.
So +1 for moving it into contrib.
Comment #9
justafishBig +1 for moving it to contrib
Comment #10
bnjmnmQuickedit is one of a few modules with a BackboneJS dependency. Backbone is effectively unmaintained, and a module can’t remain in core with unmaintained dependencies. There are three other modules using BackboneJS, Contextual, Toolbar, and Tour (Also CKEditor, but that will soon be replaced with CKEditor 5). Removing these module's BackboneJS dependencies is fairly straightforward, as proven by the prototypes in #3145958: [META] Re-evaluate use of Backbone.js in core.
Quickedit’s BackboneJS usage, however, is significantly more complex. Removing Quickedit’s BackboneJS dependency would require hundreds of contributor hours. There are two primary reasons I think this would be a poor use of contributor time:
Comment #11
nod_Comment #12
rachel_norfolkI would be very happy to see Quickedit moved to contrib. Don't think I've ever found it adding to the experience
Comment #13
xjmAdding some of the points to the IS.
Comment #14
xjmFixing inaccuracy re: usage.
Comment #15
ivnish CreditAttribution: ivnish commented+1
Comment #16
andypostBefore moving to contrib it needs someone to maintain it there
Comment #17
xjmAdding more things to the IS.
I was going to add the subsystem maintainer review tag, but both maintainers for the subsystem have already given their +1. Both release managers have also similarly indicated support, although I do think we might want to consider a simple user survey ("Do you use QuickEdit?") to validate our assumptions about usage for content authors, especially in the long tail. (Or at least maybe promoting this for feedback via the core blog.) The technical and accessibility issues alone might be sufficient to justify this being removed for core, but it'd be good to have more "actually use it" usage data for the product review.
Comment #18
Gábor HojtsyNot quite the core blog, but I tweeted at https://twitter.com/gaborhojtsy/status/1415035764975484931 to gather more feedback. Will still be mostly insider feedback though based on my followers.
Comment #19
dspachos CreditAttribution: dspachos as a volunteer commented+1 moving to contrib.
Comment #20
rajesh_jha CreditAttribution: rajesh_jha as a volunteer commentedI have always uninstalled this module from all of my drupal sites. Never found any use of this module. Move it to contrib.
Comment #21
froboy+1 for moving this to contrib. Across dozens of projects I’ve only seen maybe one that prioritized getting Quick Edit working correctly (mostly because I like trying to use cool new things), and even then I don’t think it got used.
Comment #22
rawdreeg CreditAttribution: rawdreeg as a volunteer and at Wunderman Thompson Technology commentedIt's can be useful for things like custom blocks. but I seldom use it.
+1 for moving it to contrib.
Comment #23
podarokWe have it in Open Y distro enabled by default and probably there is some usage, but I'm fine with moving it to contrib
We use geysir as a successor
Comment #24
mherchelI have never once built or seen a production site that actively uses QuickEdit.
Comment #25
droplet CreditAttribution: droplet commentedIn the real world, no developers would code things twice. (one for standard admin, one for frontend editing)
Quick edit provided something less than half-baked. Site admin must disable it to avoid confusion. (It saved hundred hours to reply to their support tickets)
If we bring the Node Edit setting to Quick Edit UI. It will increase the usage I think.
On the code side,
We always talked about Quick Edit solely (separated). What I think when we start a module like this, we should refactor the EDITOR API (CKEDITOR / formatters things) & Quick Edit to be a single API. Only one single initial way to call out the editors. (and same UI if it's possible). Always use CONFIG to initial things & kick out PHP as much possible as we can.
and killing it will affect Setting Tray?
Comment #26
Gábor HojtsyI posted a non-scientific twitter thread at https://twitter.com/gaborhojtsy/status/1415035764975484931 expecting the responses would be somewhat balanced, but no. Reading this back, its pretty much a
Negative:
So-so:
Positive (although dubious since the video linked is about settings tray not quickedit):
Comment #27
AaronMcHaleNo complaints from me, never really used it enough to form an opinion on it. It sounds like we have better options available now compared to when Quick Edit was built: I like the idea of building something on top of JSON:API and a solid JS framework.
Comment #28
andypostBtw the geysir module is better replacement for it
Comment #29
xjmComment #30
xjmAdded a few more orgs/agencies from the Twitter thread and the thread itself to the IS.
Comment #31
xjmIs anyone interested in maintaining the contrib module at least for the next two years, so that we can support the upgrade path from D9 to D10? Edit: I would say "security fixes only" would be a totally okay way to maintain it for those two years as that's essentially what it is now.
Comment #32
breidert CreditAttribution: breidert commented+1 to move it to contrib. The main reason we created and use frontend editing instead of quickedit is that you cannot use the styles of the administration theme to provide a consistent editorial experience.
Comment #33
larowlanOne thing we'll need to consider here, is that formatters define quickedit metadata in their annotation.
We'll need to move that to quickedit module in an alter hook - for formatters we know about in core.
But for other formatters from contrib that integrate with quickedit, they may need additional steps.
Comment #34
joshmillerFWIW, we have a staff of 30 Staff content editors at the Urban Institute. 1 is a Drupal-specialist. All of them interact with Drupal on a daily or weekly schedule. The Drupal Specialist spends a lot of his time in Drupal 9 Layout Builder working very near Quick Edit.
None of them use Quick Edit.
Comment #35
droplet CreditAttribution: droplet commentedEditing flow affected the QuickEdit usages also. I believe most editors don't know how to use this tool on draft. Even, editors do not know the existence of this tool.
QuickEdit is the In-Place editing actually. It's different than any Layout builder / Geysir / frontend_editing mentioned above. (I meant some comments we collected expecting different products)
In another word, a perfect deal is a combo of both of them.
If you have a lite site, QuickEdit (can) providing something similar to the medium.com style for you.
We should focus on "Is it worth to keep In-Place editing", not our coding (good or bad) at this point, and not to fulfill all extra features requests.
In-place editing should be boring and simple:
https://ckeditor.com/docs/ckeditor5/latest/examples/builds/inline-editor...
In fact, this tool has no bugs affecting normal usage. (You could call it Zero Maintenance is needed)
Again. Don't make a single tool to fulfill all needs.
Comment #36
Gábor Hojtsy@droplet: it is not exactly zero maintenance as we need to revisit and rewrite a significant part of it as apart of the CK5 efforts and removing backbone too.
Comment #37
effulgentsia CreditAttribution: effulgentsia at Acquia commentedEven though the decision here hasn't been finalized yet, it might be worth starting an issue with a patch or MR that removes quickedit module to see what tests within other modules start failing as a result, so that we can start refactoring those tests. As an example, yesterday I committed #2993647: Correctly determine when to display fields as inline, despite that including tests that added
data-quickedit-*
selectors to assertions within a test in node module, because that issue had already been RTBC for a long time and I didn't want to hold it up any longer, and that's not the only example.Comment #38
effulgentsia CreditAttribution: effulgentsia at Acquia commentedAlso, I think we've done a good amount of "considering" here already, so retitling the issue to be a bit bolder :)
Comment #39
xjmI'd suggest creating a separate issue to start testing the removal and keep this one MR-less for the policy signoff.
Comment #40
xjmI think in #35 @droplet meant to say that the CKEditor inline editor had no bugs affecting normal usage. QuickEdit absolutely has bugs affecting normal usage, up to and including causing severe nausea in people with motion sickness.
Comment #41
dwwRe: #39: Agreed. Opened #3227033: Remove Quick Edit from core as a child for that. No time to actually try to upload a patch, so anyone else is welcome to do so. ;)
Re: #40: Absolutely.
Re: the proposal here: yes, please. ;) I tried to use quickedit for something, once. Didn't go well. Wasted a few days and still couldn't make it work. I don't think it's worth keeping in core, and there are a ton of good reasons to remove it (which I won't repeat).
Cheers,
-Derek
Comment #42
xjmFixing issue link in the IS and adding to the listed orgs.
Comment #43
xjmAlso posted #3227036: Remove QuickEdit from the Standard profile which should be done in 9.3.x if Dries signs off on this.
Comment #44
Dries CreditAttribution: Dries commentedI've read the issue and discussed this with some of the Core Committers in a meeting, and all things considered, I concluded that we should remove Quickedit from core.
Comment #45
catchRemoving the 'needs product manager review' tag, thanks Dries.
Comment #46
xjmI think we can also call the policy decision RTBC at this point since we have all the relevant signoffs.
The next thing we will need is someone to maintain it in contrib.
Meanwhile, there is #3227036: Remove QuickEdit from the Standard profile which we can do now and #3227033: Remove Quick Edit from core which will probably surface a number of blockers.
Comment #47
dwwSee also #3227161: Stop using Quick Edit data attributes as selectors in tests that are not testing Quick Edit if anyone wants to help pay off the technical debt of relying on data-quickedit selectors in tests that have nothing to do with quickedit itself. ;) Thanks!
Comment #48
Wim LeersComment #49
xjmI've created a meta issue at #3228986: [Meta] Tasks to deprecate Quick Edit to track the steps of implementing this. Marking the policy issue "fixed" and publishing the change record.
Comment #51
quietone CreditAttribution: quietone at PreviousNext commentedMoving to core ideas issue queue because that is where the recent issues about removing core modules reside.