Prepare 3.0.x editor preview and accessibility changes
Scope
This draft combines the proposed 3.0.x release-preparation baseline with seven editor workflow slices for review:
- Preview unfinished content without showing required-field validation messages in the preview; keep Save validation and explicit preview controls (#3350571 (closed), #3378666 (closed), #3402502 (closed), #3345989 (closed)).
- Preserve the selected view mode across refresh, rebuild, new-window preview, and return to editing (#3502812 (closed), #3365896 (closed), #3348883 (closed)).
- Refresh complex fields after a committed tabledrag reorder so the visible iframe renders the new Paragraphs order (#3393957 (closed)).
- Keep Domain Source redirects off Preview, refresh an existing draft at the same URL, and retain Save's source selection (#3494436 (closed)).
- Bound and restore preview width around the editing form, including narrow and full-screen layouts.
- Add a keyboard entry to the named preview frame, restore editor focus on close, and use native settings checkboxes and an accessible disclosure.
- Place the resize seam, controls, and canvas spacing on the correct edge in RTL; correct a stale off-canvas displacement that otherwise clamps the pane to 320px.
The baseline also includes the merged Drupal 11.4 controller adaptation, window-resize fix, Drupal 12 preparation, and CI fixture/configuration corrections. The 3.0.x dependency target is Drupal 11.2+ or 12 with PHP 8.3+; Drupal 10 is outside this branch's support target. HTMX4 preparation is not included.
Local verification
Exact source commit: cbbcad2e3fa5d29e89229267cc10c4d3330b9da2 on an isolated Drupal 11.4.8 DDEV site.
- Playwright Chromium: 48/48 passed, including Domain Source and Paragraphs fixtures, incomplete form/Save validation, view modes, responsive layouts, keyboard access, and LTR/RTL resize.
- PHPUnit: 75/75 passed, 299 assertions. Jest: 75/75 passed.
- Drupal inherited ESLint, stylelint, CSpell, PHPStan, PHPCS, Composer validation, PHP syntax, and the concurrent Drupal test runner: exit 0.
The concurrent runner uses the inherited SYMFONY_DEPRECATIONS_HELPER=disabled policy. Direct PHPUnit still reports 2 deprecations and 49 PHPUnit deprecations.
Review still needed
- This MR's GitLab pipeline must run and pass; local checks do not establish remote CI results.
- Manual NVDA/VoiceOver and true browser zoom checks remain. Automated forced-colors and CSS zoom cases passed.
- Drupal 12 compatibility and HTMX4 are separate decisions; this MR does not establish either as complete.
This is a draft for review, not a release or merge request for immediate acceptance.