v41.4.0
Caution
This release has known issues, as detected by our end-to-end tests. It will not be automatically installed unless you are using a tag other than latest
. We are working on fixes and will update you soon. Stay tuned!
We are happy to announce the release of CKEditor 5 v41.4.0.
We have enhanced CKEditor 5 to improve accessibility and user experience further. Screen reader announcements have been expanded to include code blocks, images, and lists, enhancing navigability for visually impaired users. Additionally, the editor now better adheres to accessibility standards by respecting user preferences for reduced motion, and we have improved handling of color settings in high contrast modes.
We have also added menu bar support for the multi-root editor.
MINOR BREAKING CHANGES ℹ️
- ui: The region name argument of the
AriaLiveAnnouncer#announce()
method has been dropped. Please check out the latest API documentation for more information.
Features
- code-block: Introduced the screen reader announcements for entering or exiting code blocks in the editor content. Closes #16053. (commit)
- editor-multi-root: Added the menu bar support for multi-root editor. (commit)
- format-painter: Introduced the keyboard shortcuts for copying formatting in the document editor (Ctrl+Shift+C) and paste (Ctrl+Shift+V). Added the ability to cancel copying formatting using the Esc key.
- image: Introduced screen reader announcements for various actions and events in the editor. (commit)
- image: Added the custom image width input option to the image toolbar as an alternative to drag-and-drop resizing. (commit)
- link: An error message should appear in the link editing form when submitting an empty link. (commit)
- list: Introduced screen reader announcements for various actions and events in the editor. (commit)
- media-embed: An error message should appear when submitting an empty URL in the media embed form. (commit)
- ui: Implemented the
ck-media-forced-colors
andck-media-default-colors
mixins for detecting forced colors (for example high contrast mode on Windows). See #14907. (commit) - ui: Introduced screen reader announcements for various actions and events in the editor. (commit)
- utils: Implemented the
env#isMediaForcedColors
property for forced colors detection (for example high contrast mode on Windows). See #14907. (commit) - utils: Implemented the
env#isMotionReduced
property to discover reduced motion preferences. (commit) - Editor UI should now respect the user's preferences for reduced motion (WCAG 2.1, Success Criterion 2.3.3). (commit)
- Added bundles for new installation methods. See #15502. (commit)
- Introduced accessible screen reader announcements for various actions and events in the editor, including text case change, AI Assistant interactions, template list filtering, and document exports to Word and PDF.
Bug fixes
- ai: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
- autoformat: Pressing the Backspace key after autoformat should retain the typed content after undoing the block format change. Closes #16240. (commit)
- collaboration-core: Fixed editor crashing due to a missing plugin when the revision history was opened. This happened in some integrations that use custom plugins and specific code minifiers.
- comments: The container element for comments received the
.ck-content
CSS class to have consistent styles in both edit and preview modes. - comments: Restoring revision with comment threads that were removed should no longer crash the editor in the asynchronous load and save integration type.
- engine: The HTML
<template>
elements are now properly handled in downcast and upcast conversion. (commit) - engine: An inline filler should be rendered after the
<br>
element just before a block filler so that scrolling to selection could properly find the client rect. Closes #14028. (commit) - export-pdf: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
- export-word: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
- format-painter: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
- image: An image should not jump upon resizing in a container with padding. Closes #14698. (commit)
- import-word: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
- List: Order of the
List
andListProperties
plugins should not affect the appearance of the icon in the toolbar. Closes #16192. (commit) - minimap: The minimap
<iframe>
element should not be unnecessarily exposed to assistive technologies. (commit) - pagination: The pagination pages container should not get focused during the Tab key navigation across the website.
- restricted-editing: Improved accessibility of the restricted editing dropdown by setting the correct ARIA role on the toolbar menu. (commit)
- restricted-editing: Fixed removing an inline image inside an editable region. Closes #16218. (commit)
- restricted-editing: In the restricted-editing mode, it should be possible to escape from a table by pressing the Tab key. Closes #15506. (commit)
- revision-history: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
- revision-history: Opening the revision history viewer will close any open dialog or modal in the editor.
- template: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
- theme-lark: The caret should be visible in a placeholder while in forced colors mode (for example high contrast mode on Windows). Improved the look of the placeholders in the forced colors mode. Closes #14907. (commit)
- theme-lark: The color grid component should render as a grid of labels in the forced colors mode (for example high contrast mode on Windows). Closes #14907. (commit)
- track-changes: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
- track-changes: The
ignoreResolvedComments
flag will now be correctly handled by theTrackChangesData#getDataWithAcceptedSuggestions
andTrackChangesData#getDataWithDiscardedSuggestions
methods. - track-changes: Suggestion to change list style to default when using legacy lists plugin will no longer cause the editor to throw an error.
- ui: The color picker should not allow for saving incorrect HEX color values. Added an error message when the color is invalid. (commit)
- utils: Allow the
Translations.getPluralForm
type to benull
. (commit) - widget: An image should not jump upon resizing in a container with padding. Closes #14698. (commit)
- Change various exports of types and interfaces to type-only exports. (commit)
Other changes
- comments: Comment markers without matching comment thread data will now be removed from the content. Previously, in such cases, an error was thrown in the asynchronous load and save integration type.
- engine: Export the
_getModelData
,_setModelData
,_parseModel
,_stringifyModel
,_getViewData
,_setViewData
,_parseView
, and_stringifyView
helpers. (commit) - html-support: The General HTML Support list integration will create proper model structure on upcast and not fire a redundant post-fixer during editor initialization. Closes #16227. (commit)
- track-changes:
TrackChangesEditing#_descriptionFactory
is now public and renamed todescriptionFactory
. The old_descriptionFactory
property was kept as a deprecated alias and will be removed in next major release. - ui: Refactored the
AriaLiveAnnouncer
utility to use thearia-relevant
attribute and make concurrent announcements queued by screen readers. (commit) - Updated translations. (commit, commit, commit)
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
New packages:
- ckeditor5-premium-features: v41.4.0
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-ui: v41.3.1 => v41.4.0
Releases containing new features:
- @ckeditor/ckeditor5-adapter-ckfinder: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-alignment: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-autoformat: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-autosave: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-basic-styles: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-block-quote: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-build-balloon: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-build-balloon-block: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-build-classic: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-build-decoupled-document: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-build-inline: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-build-multi-root: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-ckbox: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-ckfinder: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-clipboard: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-cloud-services: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-code-block: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-core: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-easy-image: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-editor-balloon: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-editor-classic: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-editor-decoupled: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-editor-inline: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-editor-multi-root: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-engine: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-enter: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-essentials: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-find-and-replace: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-font: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-heading: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-highlight: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-horizontal-line: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-html-embed: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-html-support: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-image: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-indent: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-language: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-link: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-list: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-markdown-gfm: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-media-embed: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-mention: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-minimap: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-page-break: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-paragraph: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-paste-from-office: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-remove-format: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-restricted-editing: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-select-all: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-show-blocks: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-source-editing: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-special-characters: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-style: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-table: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-theme-lark: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-typing: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-undo: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-upload: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-utils: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-watchdog: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-widget: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-word-count: v41.3.1 => v41.4.0
Other releases:
- @ckeditor/ckeditor5-ai: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-case-change: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-collaboration-core: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-comments: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-document-outline: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-export-pdf: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-export-word: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-format-painter: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-import-word: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-list-multi-level: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-operations-compressor: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-pagination: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-paste-from-office-enhanced: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-real-time-collaboration: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-revision-history: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-slash-command: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-template: v41.3.1 => v41.4.0
- @ckeditor/ckeditor5-track-changes: v41.3.1 => v41.4.0
- ckeditor5-collaboration: v41.3.1 => v41.4.0