The default class of captioned images has changed to image (was: caption). Please note that once edited in CKEditor 4.4+, all existing images of the caption class (<figure class="caption">) will be filtered out unless theconfig.image2_captionedClass option is set to caption. For backward compatibility (i.e. when upgrading), it is highly recommended to use this setting, which also helps prevent CSS conflicts, etc. This does not apply to new CKEditor integrations.
Widgets without defined buttons are no longer registered automatically to the Advanced Content Filter. Before CKEditor 4.4 widgets were registered to the ACF which was an incorrect behavior (#11567). This change should not have any impact on standard scenarios, but if your button does not execute the widget command, you need to set allowedContent andrequiredContent properties for it manually, because the editor will not be able to find them.
The Show Borders plugin was added to the Standard installation package in order to ensure that unstyled tables are still visible for the user (#11665).
Since CKEditor 4.4 the editor instance should be passed to CKEDITOR.style methods to ensure full compatibility with other features (e.g. applying styles to widgets requires that). We ensured backward compatibility though, so the CKEDITOR.style will work even when the editor instance is not provided.
New Features:
#11297: Styles can now be applied to widgets. The definition of a style which can be applied to a specific widget must contain two additional properties — type and widget. Read more in the Widget Styles section of the "Syles Drop-down" guide. Note that by default, widgets support only classes and no other attributes or styles. Related changes and features:
Introduced the config.image2_alignClasses option to configure the way images are aligned with CSS classes. If this setting is defined, the editor produces classes instead of inline styles for aligned images.
Default image caption can be translated (customized) with the editor.lang.image2.captionPlaceholder string.
#11341: Enhanced Image plugin: It is now possible to add a link to any image type.
#10480: Introduced code snippets with code highlighting. There are two versions available so far — the default Code Snippetwhich uses the highlight.js library and the Code Snippet GeSHi which uses the GeSHi library.
#11500: [Webkit/Blink] Fixed: Selection lost when setting data in another inline editor. Additionally, selection.removeAllRanges() is now scoped to selection's root.
#11104: [IE] Fixed: Various issues with scrolling and selection when focusing widgets.
#10890: Fixed: Error thrown when pressing the Delete key in a list item.
#10055: [IE8-10] Fixed: Delete pressed on a selected image causes the browser to go back.
#11183: Fixed: Inserting a horizontal rule or a table in multiple row selection causes a browser crash. Additionally, the editor.insertElement() method does not insert the element into every range of a selection any more.
#11042: Fixed: Selection made on an element containing a non-editable element was not auto faked.
#11125: Fixed: Keyboard navigation through menu and drop-down items will now cycle.
#10822: Added styles system integration with non-editable elements (for example widgets) and their nested editables. Styles cannot change non-editable content and are applied in nested editable only if allowed by its type and content filter.
#10856: Menu buttons will now toggle the visibility of their panels when clicked multiple times. Language plugin fixes: Added active language highlighting, added an option to remove the language.
#10028: New config.dialog_noConfirmCancel configuration option that eliminates the need to confirm closing of a dialog window when the user changed any of its fields.
#10951: Reviewed and optimized focus handling on panels (combo, menu buttons, color buttons, and context menu) to enhance accessibility. Fixed #10705, #10706 and #10707.
#10704: Fixed a JAWS issue with the Select Color dialog window title not being announced.
#10753: The floating toolbar in inline instances now has a dedicated accessibility label.
Dynamic editor settings. Starting from CKEditor 4.3 Beta, Enter mode values and content filter instances may be changed dynamically (for example when the caret was placed in an element in which editor features should be adjusted). When you are implementing a new editor feature, you should base its behavior on dynamic or staticEnter mode values depending on whether this feature works in selection context or globally on editor content.
"Fake" selection was introduced. It makes it possible to virtually select any element when the real selection remains hidden. See the selection.fake method.
Default htmlParser.filter rules are not applied to non-editable elements (elements with contenteditable attribute set to false and their descendants) anymore. To add a rule which will be applied to all elements you need to pass an additional argument to the filter.addRules method.
Dozens of new methods were introduced – most interesting ones:
#10659: New Enhanced Image plugin that introduces a widget with integrated image captions, an option to center images, and dynamic "click and drag" resizing.