You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: suggest-mode-testing/README.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -879,12 +879,12 @@ Priority is P1 (fix before ship), P2 (fix before the feature is considered done)
879
879
| ✅ |**F-23**| P1 | Suggestion markers carry **no accessibility semantics**: `role`, `aria-label`, `title` and visually-hidden text are all absent on add, del and format markers alike. Pending state is colour-and-decoration only. | Add visually-hidden text bracketing each marker ("suggested addition by <author>, start / end"), optionally `role="insertion"` / `role="deletion"`. Settle before the markup calcifies. |[#81663](https://github.com/WordPress/gutenberg/pull/81663)|
880
880
| ⬜ |**F-15**| P1 | Nothing above the block layer is captured. In Suggesting mode the **post title, excerpt, featured image and post status** are all changed outright, zero notes created. Status moved `draft` → `pending`. | The interceptor covers block-editor actions only; `core/editor`'s `editPost` bypasses it. **Post status is the urgent one** - it lets a suggester advance the editorial workflow. Per-field decision needed for the rest (see D-4). |[#81664](https://github.com/WordPress/gutenberg/pull/81664)|
881
881
| ⬜ |**F-12**| P2 | A second format toggle on the same run records a suggestion with **empty `beforeHTML` and empty `afterHTML`** - it encodes no change, is unreviewable and unapplyable - and every marker in the block disappears. The italic exists only in the live DOM, never in saved markup. | Two stacked defects: marker disappearance is F-09; the empty payload is separate and worse. At minimum refuse to store a suggestion whose before and after are both empty. Better, extend the existing `format` marker instead of falling back. |[#81665](https://github.com/WordPress/gutenberg/pull/81665)|
882
-
|⬜|**F-08**| P2 | From the **second forward-Delete onward**, markers vanish and the rendered text actually loses characters ("umps" at 2 presses, "mps" at 3, "s" at 5) while the block attribute still holds the original string. A stale `Delete: "j"` note is left orphaned. |`suggestion-deletion-keyboard.js` handles the backward merge case but not `deleteContentForward`, so press 2 falls through to the F-09 fallback. Mirror the Backspace logic and clean up the orphaned note. |[#81666](https://github.com/WordPress/gutenberg/pull/81666)|
883
-
|⬜|**F-06**| P2 | Typing inside your own pending addition **splits it into two markers and two notes**, and "XX" is claimed by both: note 41 summarises `Add: "ADDXXED"`, note 42 `Add: "XX"`. | The addition path never checks whether the caret is inside an existing `add` marker owned by the same author. Detect and extend in place. Accept/reject is currently incoherent - accepting 42 while rejecting 41 keeps "XX" and drops the text it was typed into. |[#81667](https://github.com/WordPress/gutenberg/pull/81667)|
882
+
|✅|**F-08**| P2 | From the **second forward-Delete onward**, markers vanish and the rendered text actually loses characters ("umps" at 2 presses, "mps" at 3, "s" at 5) while the block attribute still holds the original string. A stale `Delete: "j"` note is left orphaned. |`suggestion-deletion-keyboard.js` handles the backward merge case but not `deleteContentForward`, so press 2 falls through to the F-09 fallback. Mirror the Backspace logic and clean up the orphaned note. |[#81666](https://github.com/WordPress/gutenberg/pull/81666)|
883
+
|✅|**F-06**| P2 | Typing inside your own pending addition **splits it into two markers and two notes**, and "XX" is claimed by both: note 41 summarises `Add: "ADDXXED"`, note 42 `Add: "XX"`. | The addition path never checks whether the caret is inside an existing `add` marker owned by the same author. Detect and extend in place. Accept/reject is currently incoherent - accepting 42 while rejecting 41 keeps "XX" and drops the text it was typed into. |[#81667](https://github.com/WordPress/gutenberg/pull/81667)|
884
884
| ⬜ |**F-18**| P2 |**Undo after accept** puts the `<mark>` back but restores no note. The result is a marked-up run with no Accept/Reject and no way to resolve it through the UI. | Accept has two effects, only one of which is in the undo stack. Push the note transition into the same undo level, or use `history: 'ignore'` on the content change as the notes delete-cleanup already does. |[#81669](https://github.com/WordPress/gutenberg/pull/81669)|
885
885
| ⬜ |**F-34**| P2 |**Copying content into a new post carries the markers and note ids with it.** The new post has zero notes, so `metadata.noteId: [192]` points at a note belonging to a different post. | Strip `wp-suggestion` marks and `metadata.noteId` on copy - or on paste into a different post id, since copy targets outside the editor cannot be intercepted. Leaves permanently highlighted text with no way to clear it, same dead end as F-22. |[#81670](https://github.com/WordPress/gutenberg/pull/81670)|
886
886
| ⬜ |**F-14**| P2 | An **attribute suggestion and an inline suggestion coexist on one block** - the same invariant break as F-09, reached from the other direction. Here the marker still renders and both summaries read sensibly. | Gated on **D-1** - this is the non-destructive ordering, so it is the better case to reason from when deciding whether coexistence is actually acceptable. Resolve both directions with one decision, not two patches. |[#81685](https://github.com/WordPress/gutenberg/pull/81685)|
887
-
|⬜|**F-17**| P2 | Making a suggestion **pops the notes sidebar open even when the user deliberately closed it**, narrowing the canvas and reflowing the block they are mid-sentence in. | Only switch when `getActiveComplementaryArea()` already returns a truthy area. Keep NS-02's behaviour (a *different* sidebar is open → switch it), which works correctly. |[#81671](https://github.com/WordPress/gutenberg/pull/81671)|
887
+
|✅|**F-17**| P2 | Making a suggestion **pops the notes sidebar open even when the user deliberately closed it**, narrowing the canvas and reflowing the block they are mid-sentence in. | Only switch when `getActiveComplementaryArea()` already returns a truthy area. Keep NS-02's behaviour (a *different* sidebar is open → switch it), which works correctly. |[#81671](https://github.com/WordPress/gutenberg/pull/81671)|
888
888
| ⬜ |**F-10**| P2 | Note summaries are **unreadable**: inter-word spaces stripped and `<strong>` tags shown as literal text - e.g. `Add: "hcontaining<strong>bold…"`. Whitespace-only additions always read `Add: " "` regardless of how many spaces. | The diff tokenizes raw HTML rather than plain text. Strip to text (or diff the rich-text value) before diffing, rejoin with original separators, render as text content. Render spaces visibly. |[#81686](https://github.com/WordPress/gutenberg/pull/81686)|
889
889
| ⬜ |**F-29**| P2 | Pasting rich text into a Suggesting-mode selection **discards its formatting and links**. `<strong>` and `<a href>` are both stripped; the marker holds plain text. Accepting the suggestion silently destroys the link. | Nested formats inside a `<mark>` are representable in rich-text format state, so the constraint is in the capture diff, not the serializer. At minimum, warn when normalisation is lossy. |[#81672](https://github.com/WordPress/gutenberg/pull/81672)|
890
890
| ⬜ |**F-24**| P2 |**Pending block treatments are invisible in List View** - every row reports no suggestion class, with pending-insert blocks in the document. (The move ghost is correctly not keyboard-focusable.) | A badge or class on rows whose block carries `metadata.suggestion`. Lands badly as-is: List View is the main way to perceive *structural* change and a key non-visual surface, so it compounds F-23. |[#81687](https://github.com/WordPress/gutenberg/pull/81687)|
@@ -893,7 +893,7 @@ Priority is P1 (fix before ship), P2 (fix before the feature is considered done)
893
893
| ⬜ |**F-27**| P3 | Summaries **lack the context needed to review from the sidebar**: three spaces read `Add: " "`; a merge reads as delete-plus-re-add; "teh"→"the" reads `del:"eh"` + `add:"he"` ("tehhe"); a link records no URL; a block inside a Group is summarised identically to one at top level. | Solve with F-10. Three pieces: render whitespace visibly, diff at **word** granularity not character, and include the operation payload (link URL, parent block name). |[#81677](https://github.com/WordPress/gutenberg/pull/81677)|
894
894
| ⬜ |**F-11**| P3 | Adding and removing a format produce the **identical summary** - "Formatting: bold" either way. The two suggestions are opposites. |`diffInlineFormats( beforeHTML, afterHTML )` in `suggestion-summary.js` has both sides but discards the direction. Return added and removed sets separately. |[#81689](https://github.com/WordPress/gutenberg/pull/81689)|
895
895
| ⬜ |**F-16**| P3 |**"Format:" and "Formatting:" are two different suggestion families one word apart.** Inline formatting reads "Formatting: bold"; block attributes read "Format: heading level", "Format: classname", "Format: metadata". | Pick two clearly different words - "Formatting:" for inline runs, "Change:" or the property name for attributes. Some labels need copy work regardless ("Format: classname" → "Additional CSS class"). Run past the copy guide. |[#81678](https://github.com/WordPress/gutenberg/pull/81678)|
896
-
|⬜|**F-30**| P3 |**Multi-block formatting is refused with no feedback at all** - correct refusal (no raw commit), but 0 notes, 0 markers, no snackbar, no disabled control. The user presses bold and nothing happens. | Disable formatting controls for multi-block selections in Suggesting mode, or explain via snackbar. A control that looks enabled and does nothing reads as a broken editor. |[#81691](https://github.com/WordPress/gutenberg/pull/81691)|
896
+
|✅|**F-30**| P3 |**Multi-block formatting is refused with no feedback at all** - correct refusal (no raw commit), but 0 notes, 0 markers, no snackbar, no disabled control. The user presses bold and nothing happens. | Disable formatting controls for multi-block selections in Suggesting mode, or explain via snackbar. A control that looks enabled and does nothing reads as a broken editor. |[#81691](https://github.com/WordPress/gutenberg/pull/81691)|
897
897
| ⬜ |**F-33**| P3 |**Undo order does not match action order.** Actions made add → delete → format → insert-block → remove-block unwound as insert-block, remove-block, format, delete, add. | End state is correct here because every step reverses cleanly - but the stack is not a faithful history, and where two steps *do* interact, out-of-order unwinding produces a state that never existed. Check how block-level suggestion actions are pushed relative to inline ones. |[#81681](https://github.com/WordPress/gutenberg/pull/81681)|
898
898
| ⬜ |**F-22**| P3 | With the experiment off, suggestion marks become **inert highlights the user cannot interpret or clear**. Content is safe and survives save unchanged - this is a UX dead end, not a data bug. | Strip `wp-suggestion` marks at parse time when the experiment is off (the front-end filter already does this at render time), or style them neutrally with a one-line notice. Becomes real the moment the experiment is toggled off on a site that has been using it. |[#81692](https://github.com/WordPress/gutenberg/pull/81692)|
899
899
| ⬜ |**F-28**| P3 | A block-switcher transform is captured as **remove + insert, two unlinked notes**. Accepting one and rejecting the other leaves a duplicate block or a hole. Three adjacent character edits likewise cost three notes. | Group the remove and insert halves so they accept or reject together, or define the partial-accept behaviour. The volume half is the concrete argument for bulk review (D-2). |[#81684](https://github.com/WordPress/gutenberg/pull/81684)|
0 commit comments