Skip to content

Releases: ckeditor/ckeditor5

v43.0.0

07 Aug 08:15
Compare
Choose a tag to compare

We are happy to announce the release of CKEditor 5 v43.0.0.

Release highlights

Merge fields

The new merge fields feature is a game-changer for creating document templates and other kinds of personalized or dynamic content. Thanks to this feature, you can insert placeholders into your content, indicating where actual values should go. These places are marked in the final content in a distinctive way, making it easy to later process the template and fill it with the actual values. The feature supports a preview mode too - you can define preview data sets, and see how the content will look like when real values are used directly in the editor. The plugin is highly customizable to fit various applications and scenarios. Finally, merge fields are fully integrated with our Export to Word, Export to PDF, and Import from Word features, both when they are used from the editor and via REST API.

We are extremely happy to share with you this highly demanded feature, and we cannot wait to listen to your feedback!

Make sure to visit our builder or documentation to learn more about the feature.

Export to Word V2 as the default version

The V2 version of the export to Word feature introduced significant improvements, optimizations, and fixes. This update enhances the overall performance, making the export process faster and more reliable, especially for large documents. Key improvements include better handling of table borders, automatic detection of Word styles from CSS, and support for more text-related CSS properties, ensuring your documents maintain their intended formatting.

Starting this version, the V2 configuration becomes the default in the ExportWord plugin. Make sure to migrate your configuration if you are using it.

Improved sidebar accessibility and navigation

We have introduced multiple enhancements to make the sidebar more accessible. Among other improvements, you can now use the Shift+Ctrl+E keystroke to move focus from the editor marker to the active annotation. When your comment reply is ready, you can quickly submit it using the new Ctrl+Enter shortcut. Also, navigation from one annotation to another is now possible by using arrow keys.

The full lists of keyboard supported actions can be reviewed in our Accessibility support guide.

Important bug fixes and improvements

This release brings notable bug fixes and improvements to enhance your editing experience.

  • Several improvements have been made to typing in the editor, especially for Android IME and Safari. On Android, issues like duplicated characters and reverse writing effects have been resolved. In Safari, the reverse typing effect after focus change has been fixed.
  • A couple of UI improvements:
    • We replaced the visual indication of the selected option in dropdowns (blue background) with the checkbox marks to better indicate selected options, aligning visual cues across the toolbar and menu bar.
    • All editor types now support the menu bar.
    • Additionally, the special characters UI has been moved from a dropdown to a dialog. This unifies the action between the menu bar and toolbar, and also gives content creators quicker access to the always-on-top dialog.
  • We have improved the drawing of page break line algorithm to address the pagination feature issues. We also improved the performance of the plugin.

React and Vue integrations updates

We have released new major versions of the React and Vue integrations. In both of them, we have migrated to JavaScript modules (ESM) and rewritten large parts of the codebases to support the latest versions of these frameworks and to follow the latest recommendations for writing the components.

We strongly recommend that you follow the release highlights to update to the latest versions:

MAJOR BREAKING CHANGES ℹ️

  • ckeditor5: Global name for the ckeditor5 package in the UMD builds has been changed to CKEDITOR.
  • ckeditor5-premium-features: Global name for the ckeditor5-premium-features package in the UMD builds has been changed to CKEDITOR_PREMIUM_FEATURES.
  • export-word: Export to Word V1 configuration format is deprecated, V2 is set as default. The exportWord.converterOptions configuration should be adjusted to new API. See the migration guide.
  • export-word: The auto_pagination configuration option in exportWord.converterOptions is set to false by default.

MINOR BREAKING CHANGES ℹ️

  • ckbox: The CKBoxUtils#getWorkspaceId() and CKBoxUtils#getToken() methods now return a promise instead of a resolved value.
  • comments: AnnotationView#focus() will focus the first view in the content collection instead of the view DOM element.
  • comments: Sidebar#addAnnotation() will expect the annotation view to meet the FocusableView interface (previously any UI View).
  • engine: Schema callbacks added through addChildCheck() will no longer add event listeners with high priority and will no longer stop checkChild event. Instead, these callbacks are now handled on normal priority, as a part of the default checkChild() call. This also means that listeners added to checkChild event on high priority will fire before any callbacks added by checkChild(). Earlier they would fire in registration order. This may impact you if you implemented custom schema callback using both addChildCheck() and direct listener to checkChild event. All above is also true for addAttributeCheck() and checkAttribute event and callbacks.
  • html-embed: HTML Embed plugin configuration value sanitizeHtml was moved from the htmlEmbed space to top-level configuration space. config.htmlEmbed.sanitizeHtml is now deprecated. It will still be used if it set, however we recommend updating the configuration as this property may be removed in upcoming releases.
  • real-time-collaboration: The size of avatars in the user presence list has been changed, which may affect integrations that depend on their dimensions. In addition, a focus border has been added to these avatars, which extends beyond the editor container. Please refer to the styling guide to learn how to change the look of the list.
  • real-time-collaboration: The collaboration user presence list dropdown now has a conditional overflow: scroll style (previously the style was permanent).
  • special-characters: Special characters plugin now uses a dialog (instead of a toolbar dropdown).
  • theme-lark: The --ck-list-button-padding custom property has been removed from the codebase.
  • track-changes: A substantial part of the SuggestionThreadView template was moved to a new view SuggestionView. It may affect you if you provided customization for suggestions annotations through an extended SuggestionThreadView or BaseSuggestionThreadView class. Please review updated API documentation for SuggestionThreadView#getTemplate() and SuggestionView#getTemplate(). You can extend SuggestionView the same way as SuggestionThreadView and BaseSuggestionThreadView, and provide the extended class through the newly added configuration property TrackChangesConfig#SuggestionView.
  • ui: We changed styles for "active" items inside menu bar and dropdowns lists. Previously, an active (chosen, enabled, opened, etc.) item was highlighted with a blue background. Now, the active element has a checkmark icon on the left.

Features

  • ckbox: The image upload and edit buttons are now disabled if the user has no permission to upload an asset. (commit)
  • **[ckbox](https...
Read more

v42.0.2

25 Jul 08:31
Compare
Choose a tag to compare

We are happy to announce the release of CKEditor 5 v42.0.2.

Release highlights

This is a patch release that includes the following bug fixes for new installation methods introduced in v42.0.0:

  • Fixed type definitions for the imports used in the optimized build (see #16684).
  • Fixed minor issues with the ckeditor5-editor.css, ckeditor5-content.css, and other optimized style sheets (see #16703).
  • Fixed issues with installing and loading the CKEditor 5 packages using Yarn PnP (see #16646).
  • Fixed issues with loading CSS and translation files with older bundlers, such as Vite 2 and Vite 3 (see #16638).

Additionally, we fixed some performance issues in the track changes plugin. The editing experience was heavily affected if there were many (hundreds or more) suggestions in the document. This was a regression introduced in v41.0.0.

Bug fixes

  • ckeditor5: Changed the path to the types in the package.json. See #16684. (commit)
  • ckeditor5: Updated the exports field in package.json to fix issues with loading CSS and translations in older bundlers. See #16638. (commit)
  • ckeditor5-premium-features: Changed the path to the types in the package.json.
  • ckeditor5-premium-features: Updated the exports field in package.json to fix issues with loading CSS and translations in older bundlers.
  • Added dependencies used in the new dist folder as production dependencies instead of devDependencies. Related to #16646. (commit)

Other changes

  • track-changes: Performance fixes for scenarios where hundreds of suggestions exist in the document.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

Read more

v42.0.1

11 Jul 08:02
Compare
Choose a tag to compare

We are happy to announce the release of CKEditor 5 v42.0.1.

Release highlights

This is a patch release that fixes issues with ckeditor5-editor.css and other editor-only stylesheets that contained extra newline characters causing incorrect syntax reported in ckeditor/ckeditor5#16670.

Additionally, if you maintain custom CKEditor 5 plugins and migrated them to the new package generator, you should update @ckeditor/ckeditor5-dev-build-tools to the latest version to avoid this problem in your plugin.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

Read more

v42.0.0

26 Jun 07:44
Compare
Choose a tag to compare

We are happy to announce the release of CKEditor 5 v42.0.0.

Release highlights

New installation methods

We are excited to announce the latest release of CKEditor 5, bringing major improvements to simplify the installation and setup process. After extensive research and gathering feedback, we have improved the setup methods to enhance the developer experience and align with modern standards.

The most prominent changes:

  • All plugins and core features are now available from the unified ckeditor5 and ckeditor5-premium-features packages, reducing dependency management complexity.
  • Our packages became bundler-agnostic. You can use whatever bundler you want (such as Vite or esbuild), to integrate CKEditor 5.
  • CSS files are now distributed separately from JavaScript, allowing for parallel downloading, easier customization, and improved performance.
  • All the new distribution methods (available via npm, CDN, and ZIP downloads) allow dynamic plugin registration making it easy to add or remove plugins dynamically.

The old installation methods are still supported, but we put them on the deprecation path. Read more about this in our migration guides.

New Builder

Along with the new release, we present you the brand new CKEditor 5 Builder.

The new Builder allows you to start with one of the predefined presets, customize it by adding and removing features, and observe the changes live in an editor preview (and play with the editor!). Once you are happy with your custom setup, you get ready-to-use code snippets for React, Angular, Vue, and VanillaJS setups for both npm and CDN distributions.

Updated documentation

We rewrote large parts of the documentation to complete the picture and ensure consistency across the ecosystem. The entire Getting started section was redesigned to focus on the new installation methods and to better guide the integrator through the ecosystem.

If you need clarification or a more in-depth explanation, please let us know.

Migration paths

Finally, detailed migration guides can be found in our documentation. These guides provide step-by-step instructions and examples to help you seamlessly transition to the new installation methods:

We value your input, so please share your experiences, ask questions, and provide feedback to help us refine these changes. Join us in this exciting new chapter for CKEditor 5 and let’s make the developer experience as smooth and enjoyable as possible.

Removal of superbuild and predefined builds from the CDN

We have stopped publishing the superbuild and predefined builds to our CDN. Predefined builds can still be accessed as an npm package. If you want to keep using our CDN with new versions of the editor, we recommend migrating to the new installation methods.

Other updates

We are excited to announce a major update to our premium Export to Word feature, delivering significantly improved quality with multiple enhancements and bug fixes. This release also brings a substantial reduction in the conversion time. Export to Word v2 is an opt-in feature right now, and to use it you need to slightly change the editor’s configuration. Detailed information can be found in the documentation.

MINOR BREAKING CHANGES ℹ️

  • image: The Insert image via URL UI component form has been moved to a modal dialog instead of being available directly in the insert image dropdown.
  • image: Increased specificity of the .image-style-block-align-[right/left], .image-style-align-[right/left], and .image-style-side CSS classes by adding the .image class. See #16317.
  • media-embed: The media embed feature now uses a modal dialog (instead of a toolbar dropdown) for inserting media.
  • pagination: If you have custom CSS styles that override the default styling of the Pagination elements, they might stop working after this change. The reason is that a stricter CSS selector with ck-pagination-loaded is now used to hide or show these elements.

Features

  • engine: Schema now supports disallowing items. Introduced the SchemaItemDefinition#disallowIn, SchemaItemDefinition#disallowChildren and SchemaItemDefinition#disallowAttributes properties. Closes #15835. (commit)
  • engine: Introduced the DiffItemInsert#action, DiffItemInsert#before and DiffItemRemove#action properties which give more information about the change that happened in the model. Refer to the API documentation to learn more. Closes #15800. (commit)
  • export-word: Added support for Export to Word API v2.
  • image: Added menu bar integration for the insert image component. The menuBar:insertImage component is by default added to the "Insert" menu and replaces current buttons related to image insertion. Closes #16445. (commit)
  • list-multi-level: Added the menu bar integration for multi-level lists. The menuBar:multiLevelList component is by default added in the "Format" menu.
  • media-embed: Added menu bar integration to media embed. The "Media" button is now available in the "Insert" menu. (commit)
  • watchdog: Export the EditorCreatorFunction and WatchdogConfig types from the main index file. (commit)

Bug fixes

  • ai: The h1 tags will no longer be normalized to h2 tags in the AI Assistant response if the editor has h1 tags enabled in its content.
  • ckbox: The image toolbar stays attached to the image after closing CKBox. Closes #16153. (commit)
  • ckeditor5-premium-features: Use the new @ckeditor/ckeditor-cloud-services-collaboration build targeting es2022 when creating a browser build of ckeditor5-premium-features.
  • comments: Prevent crashes in narrow and wide sidebars when the EditorAnnotations plugin is not loaded.
  • engine: Preserve repeated spaces in text that is contained within an element that renders (repeated) white space. Closes #16124. (commit)
  • export-word: Collaboration features should work with Export Word v2 API.
  • image: Buttons inside the insertImage dropdown will no longer have an unnecessary tooltip. (commit)
  • image: Increased specificity of the .image-style-block-align-[right/left], .image-style-align-[right/left], and .image-style-side CSS classes by adding the .image class. Closes #16317. (commit)
  • **[link](https://www.npmjs....
Read more

v41.4.2

17 May 08:00
Compare
Choose a tag to compare

We are excited to announce the release of CKEditor 5 v41.4.2. This patch release addresses an important issue and ensures compatibility with the Jest environment.

Bug fixes

  • utils: Prevented error thrown when editor files are imported in an environment without the window global object. Closes #16368. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

Read more

v41.4.1

16 May 09:17
Compare
Choose a tag to compare

Note

This release (v41.4.1) addresses a critical issue found in v41.4.0. Below is the changelog, which includes the changes originally introduced in v41.4.0.

We are happy to announce the release of CKEditor 5 v41.4.1.

Release highlights

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.
  • The ckeditor5 package now lists all other official open-source @ckeditor/ckeditor5-* packages as dependencies. This is a preparatory step for the upcoming new installation methods. These changes will transform the ckeditor5 package into an aggregate for all official packages, simplifying module imports.

Features

  • code-block: Introduced 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 and ck-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 and ListProperties 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...
Read more

v41.4.0

15 May 07:31
Compare
Choose a tag to compare

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 and ck-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 and ListProperties 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-e...
Read more

v41.4.0-alpha.0

18 Apr 12:20
Compare
Choose a tag to compare
v41.4.0-alpha.0 Pre-release
Pre-release

We are happy to announce the release of CKEditor 5 v41.4.0-alpha.0.

This release is intended to add a UMD build to the new installation methods.

For instructions on how to use the new installation methods, see the v41.3.0-alpha.0 Release Notes.

For more general information about the new installation methods, see the announcement post.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

Read more

v41.3.1

16 Apr 07:15
Compare
Choose a tag to compare

We are happy to announce the release of CKEditor 5 v41.3.1.

The release addresses a vulnerability identified in the protobuf.js package (CVE-2023-36665), used within our @ckeditor/ckeditor5-operations-compressor package for real-time collaboration.

Our analysis confirms that this vulnerability does not affect CKEditor 5. None of the vulnerable code in the protobuf.js package is utilized in CKEditor 5, as we use protobuf’s minimal build type.

This release primarily aims to ensure that our customers using real-time collaboration features do not encounter unnecessary security alerts from their scanning tools. We are committed to maintaining the highest security standards, and this update reflects our ongoing efforts to safeguard user environments proactively.

Bug fixes

  • template: Fixed the TemplateDefinition#data type in the @ckeditor/ckeditor5-template config. Now, it should be possible to define a string or a function returning a string instead of just a function returning a string.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

Read more

v41.3.0

10 Apr 07:26
Compare
Choose a tag to compare

We are happy to announce the release of CKEditor 5 v41.3.0.

Release highlights

Multi-level lists ⭐️

CKEditor 5's latest update brings a new premium feature: the Multi-level lists feature. It allows for easy creation and modification of numbered lists with counters (1., 1.1., 1.1.1), crucial for clear referencing and hierarchical organization in complex documents. The feature ensures compatibility with Microsoft Word. When lists with such formatting are pasted to the editor, the numbering format and counters are retained.

Paste from Office improvements for lists

No more breaking numbering of lists when they are pasted from Office. Previously whenever a list were split by paragraphs, the counter started again from 1. With our latest improvement, the counter is correctly preserved. Moreover, if you use Paste from Office Enhanced ⭐️, the paragraphs will be merged into list items, to ensure proper, semantic content.

⚠️ If you use the LegacyList plugin to prolong the migration to the new list implementation, bear in mind that from this release Paste from Office stops working for the lists' implementation you are using. Migrate to List to maintain pasting lists functionality.

Menu bar

The menu bar is a user interface component popular in large editing desktop and online packages. It gives you access to all features provided by the editor, organized in menus and categories and improves usability of the editor, keeping the toolbar can be simple and tidy. This is especially welcome in heavily-featured editor integrations.

The current release brings this battle-hardened solution to CKEditor 5! The menu bar can easily be enabled in selected editor types, comes with a handy features preset and is also highly configurable.

Updated keyboard navigation

This release brings in a fix for keyboard navigation with the Tab key. Before, it followed the default browser behavior, which could produce somewhat random effects. For example, when the cursor was positioned at the end of the end of the editable, the Tab keystroke could navigate you to the image caption on the top.

We changed it to an approach in which the Tab (and Shift+Tab), navigate to the next focusable field or an element outside the editor, so that the users can quickly navigate fields or links on the page. The navigation in the editor itself should be done by arrows, rather.

There is one exception to the Tab behavior. When a widget is selected, the Tab key will move the selection to the first nested editable, such as a caption of an image. Pressing the Esc key, while inside a nested editable, will move the selection to the closest ancestor widget, for example: moving from an image caption to selecting the whole image widget.

MINOR BREAKING CHANGES ℹ️

  • image: The CSS custom property --ck-color-image-caption-highligted-background has been renamed to --ck-color-image-caption-highlighted-background. Please make sure to update your custom CSS accordingly.
  • real-time-collaboration: The username displayed next to the user marker in the edited content is no longer a CSS pseudo-element. Use the .ck-user__marker-tooltip CSS class to customize usernames instead.
  • ai: When config.ai.openAI.requestParameters or config.ai.aws.requestParameters are set, the set value will fully overwrite the default value. Most importantly, if you do not specify some properties in requestParameters they will not be set to default. For example, if you set openAI.requestParameters to { max_tokens: 1000 }, the request parameters will be set exactly to that object. Make sure that you pass all necessary parameters in requestParameters. Important: this change happened in version 41.2.0 but has not been previously announced in the changelog.
  • upload: The FileDialogButtonView class has been moved from ckeditor5-upload to ckeditor5-ui. Please update your import paths accordingly (was: import { FileDialogButtonView } from 'ckeditor5/src/upload.js';, is: import { FileDialogButtonView } from 'ckeditor5/src/ui.js';).
  • theme-lark: The default vertical spacing around ButtonView in ListItemView (--ck-list-button-padding) has been reduced for better readability. This affects the presentation of various editor features that use this type of UI (headings, font size, font family, etc.). You can restore the previous value by setting --ck-list-button-padding: calc(.2 * var(--ck-line-height-base) * var(--ck-font-size-base)) calc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base)); in your custom styles sheet.
  • comments: From this release on, the UI of the Comments Archive feature is displayed in a dialog instead of a dropdown.
  • revision-history: The UI for saving the new revision is displayed in a dialog instead of a dropdown.

Features

  • comments: Partially selected comment markers will no longer be copied unless fully selected, regardless of the copy mode set in the configuration.
  • list-multi-level: Introduced the multi-level list with legal style list numbering.
  • track-changes: Introduced the multi-level list with legal style list numbering.
  • ui: Added the [tabindex] DOM attribute support to the InputBase class. (commit)
  • ui: Added the [aria-label] attribute support to the InputBase class. (commit)
  • ui: Implemented the application menu bar that contains various options and commands for controlling and navigating the editor. Closes #15894. (commit)
  • utils: Added the Page Up and Page Down keys to the keyboard utilities (keyCodes, getEnvKeystrokeText()). (commit)

Bug fixes

  • ai: Increased the priority of AI selection markers to display them over the overlapping comments.
  • alignment: Tooltips for buttons inside the alignment dropdown should not obscure adjacent buttons. Closes #16109. (commit)
  • comments: Fixed issue causing the editor to throw collection-add-item-invalid-index error in some scenarios when some comment threads were resolved and some were unlinked (removed from content).
  • document-outline: Should not throw errors while pasting and cutting in document outline feature.
  • engine: Copying the content with markers will no longer trigger the change:data event. Closes #15943. (commit)
  • heading: An accessible button label should describe the state and the name of the feature for optimal UX. (commit)
  • language: An accessible button label should describe the state and the name of the feature for optimal UX. (commit)
  • minimap: The minimap should not steal DOM focus while tabbing across the document. (commit)
  • pagination: The pagination navigation buttons should both scroll the document and move the selection (accessibility). Added keyboard shortcuts for navigating through the document.
  • pagination: The pagination page number input should not participate in web page navigation on tab key press to comply with WCAG recommendations (see ckeditor/ckeditor5#16025).
  • **[pagin...
Read more