[Beta]: Safari pagination: Shift+Down selects only the first line of a paged paragraph and then stops extending
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- react, typescript
- Ambito
- accessibility, frontend
Direzione di ricerca
Start with the pagination rendering style in packages/plitejs/src/pagination/react.tsx near line 621, where the issue reports generated line breaks after native flow breaks. Reproduce the steps on /docs/pagination in Safari and compare them with /docs/toc; investigate whether those breaks stop selection extension. Done means repeated Shift+↓ presses extend the selection line by line in the paged paragraph.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Testing lane
- Repository:
udecode/plate - Branch:
next - Release channel: Beta
- Exact commit/package version:
NOT_ENOUGH_INFO
Summary
In Safari, pressing Shift+↓ repeatedly from the start of a paragraph in the paged editor on /docs/pagination selects the first rendered line, and then the selection stops growing. In the same Safari, the same keys in a paragraph of the Table of Contents demo, which is not paged, extend the selection by one line per press. An agent reproduced the stop on 5 of 5 clean loads. Sin, who tested this page, also hit it by hand, but says it happens only sometimes and is hard to repeat.
Reproduction
Repro 1: /docs/pagination, Safari 27
- Open https://beta.platejs.org/docs/pagination in Safari, on a fresh load.
- In the Preview, click at the start of the first paragraph under
Paged documents, beforeEvery Plate plugin renders on pages. - Press Shift+↓ three times.
The first press selects the first rendered line, which ends at keep in the recording. The second and third presses leave the selection as it is. getSelection().toString() also returns only the first line. Shift+↑ shrinks the stuck selection, and a plain ↓ moves the caret to the next line, where typed text lands.
On https://beta.platejs.org/docs/toc in the same Safari, the same keys at the start of the first paragraph, The Table of Contents (TOC) feature allows you ..., select its first line, then its second line, then the next paragraph. That demo is not paged. It shows that Safari delivers the keys. It is not a reference for pagination.
An agent driving Safari 27 on macOS through Computer Use ran these steps on 2026-10-21. The selection stopped at the first line on 5 of 5 clean loads, and also once in the Section 5. paragraph before a reset.
Sin hit the same stop by hand in Safari on 2026-10-23 (Beijing time), but says it is intermittent and hard to repeat. No recording of Sin's case exists, and the exact trigger is not known.
Expected
Each Shift+↓ extends the selection by one more line, as it does on the Table of Contents demo in the same Safari. This is the expected result recorded in the tester's report. The Table of Contents demo is an input control, not a reference, and the pagination page has no reference site.
Actual
After the first Shift+↓, the selection holds the first rendered line, and more presses do not extend it. Because the selection stops inside the page, nobody could check keyboard selection across a page break.
Environment
- Exact
nextcommit/Beta package version:NOT_ENOUGH_INFO. The agent's run was not tied to a deployed commit. - Repro 1: Safari 27 on macOS, 2026-10-21. An agent drove the real browser through Computer Use, not Playwright.
- Sin's case: Sin's own Safari, by hand, 2026-10-23 (Beijing time). The Safari and macOS versions were not recorded.
- Other browsers were not tried with these steps.
Caveat
- A reading of the code suggests a candidate mechanism, not proven. The paged view ends each rendered line with a generated line break.
packages/plitejs/src/pagination/react.tsx:621onnextdefines a style that addscontent:'\A'after every element markeddata-pagination-native-flow-break='true', and the agent saw that attribute at the line ends of the selected paragraph. Safari's line-by-line extension may stop at that break. Nobody has checked this with a breakpoint or a fix. - The agent's 5 of 5 ran on 2026-10-21. Sin's retest two days later, possibly on a newer deploy, found the stop only sometimes. The agent's count does not settle how often it happens now.
Evidence
- Repro 1: English clip, 18 seconds, composed from the agent's Safari window captures of each step. The left side is the paged paragraph on /docs/pagination. The right side is the Table of Contents control, from a separate run, lined up by step. A zoomed strip under each side shows the selection. At 0:00 nothing is selected. From 0:02, after one Shift+↓, both sides select their first line. From 0:04, after the second press, the paged side still has only its first line, while the control has both lines of its first paragraph. From 0:06, after the third press, the paged side is unchanged and the control also selects
How to use the Table of Contents:. That state holds to the end.
Repro 1 — Safari 27, /docs/pagination (right side: /docs/toc input control)
https://github.com/user-attachments/assets/ad73e050-56b2-480e-9796-701d2e9ae0a3
Related
Other Beta issues on the pagination pages from the same round of testing:
- #5253: in Facing mode, clicks on the first left page land on the right page and drag-select selects nothing
- #5254: the docs sidebar covers the page and toolbar at 1280 px and wider
- #5255: with Facing on, the right page is cut off on first load
- #5257: in Safari, text shifts when the caret moves and headings overlap the text during selection
- #5258: typing lags with the default 990 stress pages
- Lingua principale
- TypeScript
- Stelle
- 16.6k
- Fork
- 993
- Merge medio
- 20h 2m
- PR unite (30g)
- 62
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di udecode/plate
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
[Beta]: After Enter saves an edited link URL, the link toolbar stays hidden while the caret is in the linkForse già presa @zbeyens l’ha presa 4 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
udecode/plate#5314 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
[Beta]: The docs Demo example page starts with an empty editorForse già presa @natamox l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
udecode/plate#5308 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di udecode/plate
Issue simili
-
enhancement tech debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
danielmiessler/LifeOS#2533 ·
I maintainer di solito rispondono entro 9 giorni
-
auto:producer auto:uiux
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
fritzprix/libr-agent#2447 ·
I maintainer di solito rispondono entro 1 giorno
-
bug low priority
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100