~~~~~~~~~~~~~~~~~~~~
* New scheduled publishing UI, available from the Status side panel (Sage Abdullah)
* Allow snippet admin views to be customized via `SnippetViewSet` (Sage Abdullah)
* Implement scheduled publishing for snippets inheriting from `DraftStateMixin` (Sage Abdullah)
* Add reference index and usage reports for images, documents and snippets (Karl Hobley, Matt Westcott)
* Formalised support for Python 3.11 (Matt Westcott)
* Add basic keyboard control and screen reader support for page listing re-ordering (Paarth Agarwal, Thomas van der Hoeven)
* Add `PageQuerySet.private` method as an alias of `not_public` (Mehrdad Moradizadeh)
* Most images in the admin will now only load once they are visible on screen (Jake Howard)
* Allow setting default attributes on image tags (Jake Howard)
* Optimise the performance of the Wagtail userbar to remove duplicated queries, improving page loads when viewing live pages while signed in (Jake Howard)
* Remove legacy styling classes for buttons (`unbutton`, `button-neutral`, `button-strokeonhover`, `hover-no`, `yes`) and refactor button styles to be more maintainable (Paarth Agarwal, LB (Ben Johnston))
* Add button variations to the pattern library (Paarth Agarwal)
* Provide a more accessible page title where the unique information is shown first and the CMS name is shown last (Mehrdad Moradizadeh)
* Pull out behavior from `AbstractFormField` to `FormMixin` and `AbstractEmailForm` to `EmailFormMixin` to allow use with subclasses of `Page` (Mehrdad Moradizadeh, Kurt Wall)
* Add a `docs.wagtail.org/.well-known/security.txt` so that the security policy is available as per the specification on https://securitytxt.org/ (Jake Howard)
* Add unit tests for the `classnames` Wagtail admin template tag (Mehrdad Moradizadeh)
* Show an inverse locked indicator when the page has been locked by the current user in reports and dashboard listings (Vaibhav Shukla, LB (Ben Johnston))
* Add clarity to the development documentation that `admonition` should not be used and titles for `note` are not supported, including clean up of some existing incorrect usage (LB (Ben Johnston))
* Unify the styling of delete/destructive button styles across the admin interface (Paarth Agarwal)
* Adopt new designs and unify the styling styles for `.button-secondary` buttons across the admin interface (Paarth Agarwal)
* Refine designs for disabled buttons throughout the admin interface (Paarth Agarwal)
* Update expanding formset add buttons to use `button` not link for behaviour (LB (Ben) Johnston)
* Add robust unit testing for authentication scenarios across the user management admin pages (Mehrdad Moradizadeh)
* Avoid assuming an integer PK named 'id' on multiple upload views (Matt Westcott)
* Add a toggle to collapse/expand all page panels at once (Helen Chapman)
* Improve the GitHub Workflows (CI) security (Alex (sashashura))
* Use `search` type input in documentation search (LB (Ben) Johnston)
* Render `help_text` when set on `FieldPanel`, `MultiFieldPanel`, `FieldRowPanel`, and other panel APIs where it previously worked without official support (Matt Westcott)
* Consolidate usage of Excel libraries to a single library `openpyxl`, removing usage of `XlsxWriter`, `tablib`, `xlrd` and `xlwt` (Jaap Roes)
* Adopt `wagtail.admin.views.generic.IndexView` for the Users index listing and search results (Mehrdad Moradizadeh)
* Adopt `wagtail.admin.views.generic.CreateView` for the User creation view (Mehrdad Moradizadeh)
* Adopt `wagtail.admin.views.generic.DeleteView` for the User delete view (Mehrdad Moradizadeh)
* Adopt `wagtail.admin.views.generic.EditView` for the User edit view (Mehrdad Moradizadeh)
* Add `button-secondary bicolor` variants to the pattern library and styleguide (Adinapunyo Banerjee)
* Add better support for non-integer / non-`id` primary keys into Wagtail's generic views, including for Snippets and custom User models (Mehrdad Moradizadeh)
* Upgrade jQuery UI to version 1.13.2 (LB (Ben) Johnston)
* Update pattern library background & text examples (Albina Starykova)
* Switch StreamField blocks to use a `<section>` element so screen reader users can bypass them more easily (Thibaud Colas)
* Add anchor links to StreamField blocks so users can navigate straight to a given block (Thibaud Colas)
* Support "Ctrl + f" in-page search within collapsed StreamField blocks (Thibaud Colas)
* Remember the last opened side panel in the page editor, activating it on page load (Sage Abdullah)
* Ensure that the `update_index` command can run without console output if called with `--verbosity 0` (Ben Sturmfels, Oliver Parker)
* Improve side panels’ resizing in page editor and listings (Steven Steinwand)
* Adjust breadcrumb text alignment and size in page listings & page editor (Steven Steinwand)
* Improvements to getting started tutorial aimed at developers who are very new to Python and have no Django experience (Damilola Oladele)
* Update documentation dependencies; Sphinx Wagtail Theme to v5.3.2, MyST Parser to v0.18.1, add Sphinx Copy Button (LB (Ben) Johnston)
* Add "What's New" dashboard banner and "Help" menu in sidebar (Sage Abdullah)
* Implement new "minimap" component for the page editor (Thibaud Colas)
* The `image_url` template tag, when using the serve view to redirect rather than serve directly, will now use temporary redirects with a cache header instead of permanent redirects (Jake Howard)
* Add new test assertions to `WagtailPageTestCase` - `assertPageIsRoutable`, `assertPageIsRenderable`, `assertPageIsEditable`, `assertPageIsPreviewable` (Andy Babic)
* Add documentation to the performance section about how to better create image URLs when not used directly on the page (Jake Howard)
* Add ability to provide a required `permission` to `PanelGroup`, used by `TabbedInterface`, `ObjectList`, `FieldRowPanel` and `MultiFieldPanel` (Oliver Parker)
* Update documentation screenshots of the admin interface to align with changes in this release (Thibaud Colas)
* Fix: Prevent `PageQuerySet.not_public` from returning all pages when no page restrictions exist (Mehrdad Moradizadeh)
* Fix: Ensure that duplicate block ids are unique when duplicating stream blocks in the page editor (Joshua Munn)
* Fix: Revise color usage so that privacy & locked indicators can be seen in Windows High Contrast mode (LB (Ben Johnston))
* Fix: Ensure that disabled buttons have a consistent presentation on hover to indicate no interaction is available (Paarth Agarwal)
* Fix: Update the 'Locked pages' report menu title so that it is consistent with other pages reports and its own title on viewing (Nicholas Johnson)
* Fix: Support `formfield_callback` handling on `ModelForm.Meta` for future Django 4.2 release (Matt Westcott)
* Fix: Ensure that `ModelAdmin` correctly supports filters in combination with subsequent searches without clearing the applied filters (Stefan Hammer)
* Fix: Add missing translated values to site settings' headers plus models presented in listings and audit report filtering labels (Stefan Hammer)
* Fix: Remove `capitalize()` calls to avoid issues with other languages or incorrectly presented model names for reporting and parts of site settings (Stefan Hammer)
* Fix: Add back rendering of `help_text` for InlinePanel (Matt Westcott)
* Fix: Ensure `for_user` argument is passed to the form class when previewing pages (Matt Westcott)
* Fix: Ensure the capitalization of the `timesince_simple` tag is consistently added in the template based on usage in context (Stefan Hammer)
* Fix: Add missing translation usage for the `timesince_last_update` and ensure the translated labels can be easier to work with in Transifex (Stefan Hammer)
* Fix: Add additional checks for duplicate form field `clean_name` values in the Form Builder validation and increase performance of checks (Dan Bentley)
* Fix: Use correct color for labels of radio and checkbox fields (Steven Steinwand)
* Fix: Adjust spacing of fields’ error messages and position in tables (Steven Steinwand)
* Fix: Update dead or redirected links throughout the documentation (LB (Ben) Johnston)
* Fix: Use different icons for workflow timeline component, so the steps can be distinguished with other means than color (Sam Moran)
* Fix: Use the correct custom font for the Wagtail userbar (Umar Farouk Yunusa)
* Fix: StreamField blocks are now collapsible with the keyboard (Thibaud Colas)
* Fix: StreamField block headings now have a label for screen reader users (Thibaud Colas)
* Fix: Display the "*" required field indicator for StreamField blocks (Thibaud Colas)
* Fix: Resolve inconsistency in action button positions in InlinePanel (Thibaud Colas)
* Fix: Use h3 elements with a counter in InlinePanel so screen reader users can navigate by heading (Thibaud Colas)
* Fix: Ensure that buttons on custom chooser widgets are correctly shown on hover (Thibaud Colas)
* Fix: Add missing asterisk to title field placeholder (Seremba Patrick, Stefan Hammer)
* Fix: Avoid creating an extra rich text block when inserting a new block at the end of the content (Matt Westcott)
* Fix: Removed the extra dot in the Wagtail version shown within the admin settings menu item (Loveth Omokaro)
* Fix: Fully remove the obsolete `wagtailsearch_editorspick` table that prevents flushing the database (Matt Westcott)
* Fix: Update latest version message on Dashboard to accept dev build version format used on nlightly builds (Sam Moran)
* Fix: references extraction for ChooserBlock (Alex Tomkins)
* Fix: Regression in field width for authentication pages (log in / password reset) (Chisom Okeoma)
* Fix: Ensure the new minimap correctly pluralizes error counts for `aria-label`s (Matt Westcott)