RTC: Fix stuck "Join" link in post list when lock expires#76795
Merged
shekharnwagh merged 4 commits intoWordPress:trunkfrom Mar 27, 2026
Merged
RTC: Fix stuck "Join" link in post list when lock expires#76795shekharnwagh merged 4 commits intoWordPress:trunkfrom
shekharnwagh merged 4 commits intoWordPress:trunkfrom
Conversation
889156d to
4f3a9f3
Compare
4f3a9f3 to
ae45fc9
Compare
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
ae45fc9 to
042578f
Compare
ellatrix
reviewed
Mar 26, 2026
chriszarate
approved these changes
Mar 26, 2026
Always render both "Edit" and "Join" as separate spans in the row action link and toggle visibility via CSS using the .wp-collaborative-editing class the heartbeat already manages. Replaces aria-label with screen-reader-text spans so the accessible name stays in sync with the visible text across lock state changes.
The CSS selectors used `.wp-locked` to override core's hidden checkbox, but core's list-tables.css uses `tr.wp-locked` which has higher specificity. The `display: revert` rule never took effect, leaving checkboxes hidden on locked rows.
The CSS was targeting .wp-collaborative-editing, a class only set by core 7.0's inline-edit-post.js. The compat layer runs on older versions where the heartbeat uses .wp-locked, so the toggle never worked. Since this CSS is only output when RTC is enabled, .wp-locked always means collaborative editing here.
042578f to
5e02f02
Compare
gutenbergplugin
pushed a commit
that referenced
this pull request
Mar 27, 2026
* RTC: Fix stuck "Join" link in post list when lock expires Always render both "Edit" and "Join" as separate spans in the row action link and toggle visibility via CSS using the .wp-collaborative-editing class the heartbeat already manages. Replaces aria-label with screen-reader-text spans so the accessible name stays in sync with the visible text across lock state changes. * RTC: Fix checkbox not showing for locked posts in post list The CSS selectors used `.wp-locked` to override core's hidden checkbox, but core's list-tables.css uses `tr.wp-locked` which has higher specificity. The `display: revert` rule never took effect, leaving checkboxes hidden on locked rows. * RTC: Use sprintf with multi-line template for action link markup * RTC: Target .wp-locked for Edit/Join toggle in compat layer The CSS was targeting .wp-collaborative-editing, a class only set by core 7.0's inline-edit-post.js. The compat layer runs on older versions where the heartbeat uses .wp-locked, so the toggle never worked. Since this CSS is only output when RTC is enabled, .wp-locked always means collaborative editing here. ---- Co-authored-by: shekharnwagh <shekharnwagh@git.wordpress.org> Co-authored-by: ellatrix <ellatrix@git.wordpress.org> Co-authored-by: chriszarate <czarate@git.wordpress.org>
|
I just cherry-picked this PR to the wp/7.0 branch to get it included in the next release: 7ab515c |
adamsilverstein
pushed a commit
that referenced
this pull request
Mar 31, 2026
* RTC: Fix stuck "Join" link in post list when lock expires Always render both "Edit" and "Join" as separate spans in the row action link and toggle visibility via CSS using the .wp-collaborative-editing class the heartbeat already manages. Replaces aria-label with screen-reader-text spans so the accessible name stays in sync with the visible text across lock state changes. * RTC: Fix checkbox not showing for locked posts in post list The CSS selectors used `.wp-locked` to override core's hidden checkbox, but core's list-tables.css uses `tr.wp-locked` which has higher specificity. The `display: revert` rule never took effect, leaving checkboxes hidden on locked rows. * RTC: Use sprintf with multi-line template for action link markup * RTC: Target .wp-locked for Edit/Join toggle in compat layer The CSS was targeting .wp-collaborative-editing, a class only set by core 7.0's inline-edit-post.js. The compat layer runs on older versions where the heartbeat uses .wp-locked, so the toggle never worked. Since this CSS is only output when RTC is enabled, .wp-locked always means collaborative editing here. ---- Co-authored-by: shekharnwagh <shekharnwagh@git.wordpress.org> Co-authored-by: ellatrix <ellatrix@git.wordpress.org> Co-authored-by: chriszarate <czarate@git.wordpress.org>
ObliviousHarmony
pushed a commit
that referenced
this pull request
Apr 1, 2026
* RTC: Fix stuck "Join" link in post list when lock expires Always render both "Edit" and "Join" as separate spans in the row action link and toggle visibility via CSS using the .wp-collaborative-editing class the heartbeat already manages. Replaces aria-label with screen-reader-text spans so the accessible name stays in sync with the visible text across lock state changes. * RTC: Fix checkbox not showing for locked posts in post list The CSS selectors used `.wp-locked` to override core's hidden checkbox, but core's list-tables.css uses `tr.wp-locked` which has higher specificity. The `display: revert` rule never took effect, leaving checkboxes hidden on locked rows. * RTC: Use sprintf with multi-line template for action link markup * RTC: Target .wp-locked for Edit/Join toggle in compat layer The CSS was targeting .wp-collaborative-editing, a class only set by core 7.0's inline-edit-post.js. The compat layer runs on older versions where the heartbeat uses .wp-locked, so the toggle never worked. Since this CSS is only output when RTC is enabled, .wp-locked always means collaborative editing here. ---- Co-authored-by: shekharnwagh <shekharnwagh@git.wordpress.org> Co-authored-by: ellatrix <ellatrix@git.wordpress.org> Co-authored-by: chriszarate <czarate@git.wordpress.org>
jorgefilipecosta
added a commit
to jorgefilipecosta/wordpress-develop
that referenced
this pull request
Apr 6, 2026
Gutenberg changelog: - Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843) - RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795) - Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878) - RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873) - Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877) - Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828) - Restore with compaction update (WordPress/gutenberg#76872) - Improve JSDoc for abilities API (WordPress/gutenberg#76824) - Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909) - Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889) - Connectors: Update help text from 'reset' to 'manage' (WordPress/gutenberg#76963) - Connectors: Hide Akismet unless already installed (WordPress/gutenberg#76962) - Wrap sync update processing in try/catch (WordPress/gutenberg#76968) - Backport: Improve validation and permission checks for `WP_HTTP_Polling_Sync_Server` (WordPress/gutenberg#76987) - Connectors: account for mu-plugins when resolving plugin.file status (WordPress/gutenberg#76994)
This was referenced Apr 6, 2026
pento
pushed a commit
to WordPress/wordpress-develop
that referenced
this pull request
Apr 6, 2026
This updates the pinned hash from the `gutenberg` from `0d133bf7e7437d65d68a06551f3d613a7d8e4361` to `e2970ba736edb99e08fb369d4fb0c378189468ee`. The following changes are included: - WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764) - Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843) - RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795) - Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878) - RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873) - Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877) - Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828) - Restore with compaction update (WordPress/gutenberg#76872) - Improve JSDoc for abilities API (WordPress/gutenberg#76824) - Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909) - Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889) - Connectors: Update help text from 'reset' to 'manage' (WordPress/gutenberg#76963) - Connectors: Hide Akismet unless already installed (WordPress/gutenberg#76962) - Wrap sync update processing in try/catch (WordPress/gutenberg#76968) - Backport: Improve validation and permission checks for `WP_HTTP_Polling_Sync_Server` (WordPress/gutenberg#76987) - Connectors: account for mu-plugins when resolving plugin.file status (WordPress/gutenberg#76994) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/0d133bf7e7437d65d68a06551f3d613a7d8e4361…e2970ba736edb99e08fb369d4fb0c378189468ee. Log created with: git log --reverse --format="- %s" 0d133bf7e7437d65d68a06551f3d613a7d8e4361..e2970ba736edb99e08fb369d4fb0c378189468ee | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy See #64595. git-svn-id: https://develop.svn.wordpress.org/trunk@62209 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith
pushed a commit
to markjaquith/WordPress
that referenced
this pull request
Apr 6, 2026
This updates the pinned hash from the `gutenberg` from `0d133bf7e7437d65d68a06551f3d613a7d8e4361` to `e2970ba736edb99e08fb369d4fb0c378189468ee`. The following changes are included: - WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764) - Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843) - RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795) - Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878) - RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873) - Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877) - Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828) - Restore with compaction update (WordPress/gutenberg#76872) - Improve JSDoc for abilities API (WordPress/gutenberg#76824) - Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909) - Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889) - Connectors: Update help text from 'reset' to 'manage' (WordPress/gutenberg#76963) - Connectors: Hide Akismet unless already installed (WordPress/gutenberg#76962) - Wrap sync update processing in try/catch (WordPress/gutenberg#76968) - Backport: Improve validation and permission checks for `WP_HTTP_Polling_Sync_Server` (WordPress/gutenberg#76987) - Connectors: account for mu-plugins when resolving plugin.file status (WordPress/gutenberg#76994) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/0d133bf7e7437d65d68a06551f3d613a7d8e4361…e2970ba736edb99e08fb369d4fb0c378189468ee. Log created with: git log --reverse --format="- %s" 0d133bf7e7437d65d68a06551f3d613a7d8e4361..e2970ba736edb99e08fb369d4fb0c378189468ee | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy See #64595. Built from https://develop.svn.wordpress.org/trunk@62209 git-svn-id: http://core.svn.wordpress.org/trunk@61489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
pento
pushed a commit
to WordPress/wordpress-develop
that referenced
this pull request
Apr 6, 2026
This updates the pinned hash from the `gutenberg` from `0d133bf7e7437d65d68a06551f3d613a7d8e4361` to `e2970ba736edb99e08fb369d4fb0c378189468ee`. The following changes are included: - WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764) - Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843) - RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795) - Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878) - RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873) - Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877) - Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828) - Restore with compaction update (WordPress/gutenberg#76872) - Improve JSDoc for abilities API (WordPress/gutenberg#76824) - Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909) - Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889) - Connectors: Update help text from 'reset' to 'manage' (WordPress/gutenberg#76963) - Connectors: Hide Akismet unless already installed (WordPress/gutenberg#76962) - Wrap sync update processing in try/catch (WordPress/gutenberg#76968) - Backport: Improve validation and permission checks for `WP_HTTP_Polling_Sync_Server` (WordPress/gutenberg#76987) - Connectors: account for mu-plugins when resolving plugin.file status (WordPress/gutenberg#76994) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/0d133bf7e7437d65d68a06551f3d613a7d8e4361…e2970ba736edb99e08fb369d4fb0c378189468ee. Log created with: git log --reverse --format="- %s" 0d133bf7e7437d65d68a06551f3d613a7d8e4361..e2970ba736edb99e08fb369d4fb0c378189468ee | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy See #64595. git-svn-id: https://develop.svn.wordpress.org/branches/7.0@62212 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith
pushed a commit
to markjaquith/WordPress
that referenced
this pull request
Apr 6, 2026
This updates the pinned hash from the `gutenberg` from `0d133bf7e7437d65d68a06551f3d613a7d8e4361` to `e2970ba736edb99e08fb369d4fb0c378189468ee`. The following changes are included: - WordPress/gutenberg#76478 Boot: Fix black area below content when sidebar is taller than page c… (WordPress/gutenberg#76764) - Style Book: Fix missing styles for classic themes in stylebook route (WordPress/gutenberg#76843) - RTC: Fix stuck "Join" link in post list when lock expires (WordPress/gutenberg#76795) - Icon: Fix center alignment in the editor for classic themes (WordPress/gutenberg#76878) - RTC: Fix notes not syncing between collaborative editors (WordPress/gutenberg#76873) - Latest Comments: Fix v1 deprecated block missing supports (WordPress/gutenberg#76877) - Connectors: Add Akismet as a default connector (WordPress/gutenberg#76828) - Restore with compaction update (WordPress/gutenberg#76872) - Improve JSDoc for abilities API (WordPress/gutenberg#76824) - Connectors: Replace plugin.slug with plugin.file (WordPress/gutenberg#76909) - Block visibility badge: use canvas iframe for viewport detection (WordPress/gutenberg#76889) - Connectors: Update help text from 'reset' to 'manage' (WordPress/gutenberg#76963) - Connectors: Hide Akismet unless already installed (WordPress/gutenberg#76962) - Wrap sync update processing in try/catch (WordPress/gutenberg#76968) - Backport: Improve validation and permission checks for `WP_HTTP_Polling_Sync_Server` (WordPress/gutenberg#76987) - Connectors: account for mu-plugins when resolving plugin.file status (WordPress/gutenberg#76994) A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/0d133bf7e7437d65d68a06551f3d613a7d8e4361…e2970ba736edb99e08fb369d4fb0c378189468ee. Log created with: git log --reverse --format="- %s" 0d133bf7e7437d65d68a06551f3d613a7d8e4361..e2970ba736edb99e08fb369d4fb0c378189468ee | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy See #64595. Built from https://develop.svn.wordpress.org/branches/7.0@62212 git-svn-id: http://core.svn.wordpress.org/branches/7.0@61492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
adamsilverstein
pushed a commit
that referenced
this pull request
Apr 7, 2026
* RTC: Fix stuck "Join" link in post list when lock expires Always render both "Edit" and "Join" as separate spans in the row action link and toggle visibility via CSS using the .wp-collaborative-editing class the heartbeat already manages. Replaces aria-label with screen-reader-text spans so the accessible name stays in sync with the visible text across lock state changes. * RTC: Fix checkbox not showing for locked posts in post list The CSS selectors used `.wp-locked` to override core's hidden checkbox, but core's list-tables.css uses `tr.wp-locked` which has higher specificity. The `display: revert` rule never took effect, leaving checkboxes hidden on locked rows. * RTC: Use sprintf with multi-line template for action link markup * RTC: Target .wp-locked for Edit/Join toggle in compat layer The CSS was targeting .wp-collaborative-editing, a class only set by core 7.0's inline-edit-post.js. The compat layer runs on older versions where the heartbeat uses .wp-locked, so the toggle never worked. Since this CSS is only output when RTC is enabled, .wp-locked always means collaborative editing here. ---- Co-authored-by: shekharnwagh <shekharnwagh@git.wordpress.org> Co-authored-by: ellatrix <ellatrix@git.wordpress.org> Co-authored-by: chriszarate <czarate@git.wordpress.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What?
Fixes two post list issues when RTC is enabled:
Why?
PR #76322 conditionally rendered "Edit" or "Join" based on
wp_check_post_lock()at page load. The heartbeat correctly clears the lock status text when the lock expires, but never updates the action link text back to "Edit".Additionally, on WordPress < 7.0 (where the Gutenberg compat layer handles RTC), the CSS selectors that re-enable checkboxes on locked rows used
.wp-locked, but core'slist-tables.cssusestr.wp-lockedwhich has higher specificity — so the override never took effect. This doesn't affect WordPress 7.0+ where the styles live directly in core's stylesheet with correct specificity.How?
<span>elements in the row action link.wp-lockedclass the heartbeat already managesaria-labelwithscreen-reader-textspans so the accessible name stays in sync with the visible text across lock state changestrelement selector to match core'str.wp-lockedSame approach as the corresponding WordPress core fix: WordPress/wordpress-develop#11346
Testing Instructions