---
title: "Changelog"
description: "The history of TinyMCE releases."
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/changelog/"
md_url: "https://www.tiny.cloud/docs/tinymce/latest/changelog/index.md"
version: "latest"
last_updated: "2026-09-28T00:27:52Z"
tokens: 3919
---
# Changelog

> **Note:** This is the TinyMCE Community version changelog. For information about the latest Tiny Cloud or TinyMCE Enterprise Release, see: [TinyMCE Release Notes](../release-notes/).

## [8.9.2 - 2026-09-23](../8.9.2-release-notes/)

> **Note:** This release contains fixes for Premium plugins only and does not include any changes to the core TinyMCE editor.

## [8.9.1 - 2026-09-09](../8.9.1-release-notes/)

> **Note:** This release contains fixes for Premium plugins only and does not include any changes to the core TinyMCE editor.

## [8.9.0 - 2026-08-31](../8.9.0-release-notes/)

### Improved

- Sidebars can now be resized by dragging their edge, and their width can be configured with the new `sidebar_width` option.
- The Help dialog’s Plugins tab now lists all active plugins, including custom plugins metadata provided by each plugin.
- The Help dialog’s Plugins tab now lists plugins with invalid metadata as plain text.

### Fixed

- Image with empty alt text would add role='presentation' instead of adding alt text when updated.
- Opening or closing sidebars from the toolbar no longer causes the editor to scroll to the cursor.

## [8.8.2 - 2026-07-27](../8.8.2-release-notes/)

### Fixed

- The caret could be positioned incorrectly in some cases when scrolling while a context toolbar was open.
- Formatting could not be applied to and removed from editable child elements when a noneditable element was selected.

## [8.8.1 - 2026-07-22](../8.8.1-release-notes/)

### Fixed

- Applying or removing formatting on a multi-cell table selection incorrectly styled list items in cells that were not selected.
- The menubar could wrap over multiple rows on narrow viewports, such as at high browser zoom levels, leaving little or no visible space for the editable area. The menubar now scrolls horizontally instead.

## [8.8.0 - 2026-07-15](../8.8.0-release-notes/)

### Improved

- Added the `aria-valuenow`, `aria-valuemin`, and `aria-valuemax` attributes to the editor resize handle when resizing vertically.

### Fixed

- Opening table properties on a nested table could edit the wrong table.
- Clicking anchor links with special characters like semicolons in readonly mode or using the link plugin was throwing a querySelectorAll syntax error.
- Worked around an edge case of a Chromium bug where clicking on the right of an `li` could fail.

## [8.7.0 - 2026-06-30](../8.7.0-release-notes/)

### Added

- Added `editor.announce()` for posting messages to screen readers via an aria-live region.

### Improved

- Removed 300 item limit on the emoticons dialog 'All' tab by optimising render performance.
- Pressing Tab or Shift+Tab on an open menu now closes it and moves focus to the next or previous focusable element.
- The editor resize handle now uses browser pointer events for more reliable behaviour across different integration environments.

### Changed

- Changed LESS math mode from always to parens-division.

### Fixed

- CSS custom property names and color values in the style attribute were being lowercased when parsed.
- Focused links in dark mode was having the same text color as the background.
- Using the undo keyboard shortcut did not restore editor selection correctly.
- Worked around a Chromium bug where clicking on the right of an `li` could fail.
- Some annotated text was hidden when printed even though it should have been visible.
- Deleting a newline within a list item would delete the list item.
- Context toolbar with position 'line' was not repositioning to the opposite side when overflowing the viewport.
- Block-level formatting did not work on parent blocks when a contenteditable="false" inline element (such as an iframe) was selected.
- Selecting multiple table cells and applying indentation did not apply to the entire selection.
- Selecting multiple table cells and applying multiple formats could incorrectly nest formatting tags.
- Dragging and dropping or copying and pasting an image didn’t add `width` and `height` to the tag.
- Tooltips were clipped when the editor was hosted in a shadow DOM and its parent element had `overflow:scroll`.

## [8.6.0 - 2026-06-03](../8.6.0-release-notes/)

### Improved

- Updated the bundled DOMPurify dependency to the latest version.

## [8.5.1 - 2026-05-20](../8.5.1-release-notes/)

### Security

- Fixed stored XSS vulnerability using media plugin `data-mce-object` injection.
- Fixed stored XSS vulnerability through `mce:protected` comments.
- Fixed stored XSS vulnerability through `data-mce-` prefixed `src`, `href`, `style` attributes.

## [8.5.0 - 2026-04-29](../8.5.0-release-notes/)

### Added

- New `content_language` option to set the `lang` attribute on the iframe’s `html` element or the inline editor’s target element.

### Improved

- Improved visual styling of inline diff highlights in Suggested Edits and TinyMCE AI plugin.

### Fixed

- URIs with non-Latin1 characters were returning an error.
- Alert and confirm dialogs were not announced properly by some screen readers.
- Certain selections would delete the editor body, causing issues.
- Certain combinations of divs inside of lists would cause issues turning off lists.
- Script elements would incorrectly be removed by DomPurify when considered valid in the schema.
- Iframe elements with children would incorrectly be removed by DomPurify.

## [8.4.0 - 2026-02-04](../8.4.0-release-notes/)

### Added

- New `view_show` option to display a specified view on initialization.
- New `errorHandler` option for `dropzone` dialog components.
- The noneditable feature can now be disabled with the new `allow_noneditable` option. #TINY-10121
- Editor option `content_id` for uniquely identifying the edited document.
- New `table_default_header_rows` and `table_default_header_cols` options to set the default header size for new tables.

### Improved

- The file upload feature of `link` and `image` dialogs now provide feedback when an unsupported file type is selected.
- Directionality buttons now only appear active when directionality is set on the selected block.
- Directionality buttons now always toggle the directionality attribute on selected blocks.

### Changed

- The `border-color` style with multiple rgb colors would be compressed into `border` incorrectly.
- Element Path now uses the ARIA-role "group" with an aria-label.

### Fixed

- The `link` dialog now allows uploading empty files.
- Bundled content CSS is now loaded into preview iframes.
- Attempting to remove a link after a `contentEditable="false"` element was not possible.
- Some formatting was not applied to items in multilevel list.
- Dialogs did not retain focus when using the block/unblock API.
- Setting width via Table Properties did not apply when `table_style_by_css` was `false`.

### Security

- Updated DOMPurify version to 3.3.2.

## [8.3.2 - 2026-01-14](../8.3.2-release-notes/)

- `uc-video` elements are not refreshed on undo/redo actions.

## [8.3.1 - 2025-12-17](../8.3.1-release-notes/)

### Fixed

- Views could not be opened during the `init` event.

## [8.3.0 - 2025-12-10](../8.3.0-release-notes/)

### Added

- New `documents_file_types` option.
- New `files_upload_handler` and `link_uploadtab` options in the Link plugin.
- New upload tab to the link dialog when `files_upload_handler`, `documents_file_types`, and `link_uploadtab` are all specified.
- New options for `dropzone` dialog components: `dropAreaLabel`, `buttonLabel`, `allowedFileTypes` and `allowedFileExtensions`.

### Improved

- Accordions can now be opened and closed when the editor is in a read-only state.
- An editor notification is now shown when a premium plugin is not allowed for a given license key.

### Fixed

- Accordions could be toggled when the editor was in a disabled state.
- Removing a line height sometimes did not remove it from all selected lines.
- The `font-size` style on `li` elements was not copied to new list items.
- Toolbar split button chevron tooltip is now the same as the main button tooltip unless explicitly set.
- Inline formats were not applied to the marker of a list item when its content was a single block element.

## [8.2.2 - 2025-11-13](../8.2.2-release-notes/)

### Improved

- Improved the ability to load the License Key Manager in different hosting scenarios.

## [8.2.1 - 2025-11-06](../8.2.1-release-notes/)

### Fixed

- Resizing the editor’s height would add a fixed width value.
- Help Plugin did not contain an entry for the Fullpage HTML plugin.

## [8.2.0 - 2025-10-23](../8.2.0-release-notes/)

### Improved

- Some elements would be given an extra newline by the serializer when indented.

### Fixed

- UI elements like focus outlines and placeholders would be visible after printing.
- The `open` attribute on `<details>` elements is now normalized to `open="open"` when the accordion plugin is enabled.
- Tooltips on toolbar buttons sometimes remained visible if the button icon was updated while hovered.
- The editor would upon gaining focus scroll to the center of the editor on some browsers if the top of the editor was out of frame.
- Some UI elements related to dragging elements were not properly filtered out when fetching content.
- The cursor could get stuck around an absolute CEF element when navigating using arrow keys.
- The schema will now allow the `property` RDFa attribute on `meta` elements.
- Corrected type of `undoManager.add` method. The `event` parameter is type `EditorEvent` not `Event`.
- Chromium browsers would in certain situations scroll the editor unexpectedly when dragging content over the editor.
- Support for setting component urls for custom elements.
- Reverted toolbar button width to `auto`.
- Addressed split buttons rendering narrower than in TinyMCE 7, ensuring consistent sizing across the toolbar.

## [8.1.2 - 2025-09-18](../8.1.2-release-notes/)

### Fixed

- Sidebar UI for comments was not rendering correctly.

## [8.1.1 - 2025-09-17](../8.1.1-release-notes/)

### Fixed

- Reset rules for CSS were not applying correctly.

## [8.1.0 - 2025-09-17](../8.1.0-release-notes/)

### Improved

- The editor `DomParser` API can now parse full documents when the API’s `root_name` option is set to `#document`.
- Tooltips can be hovered over to keep open.
- Default avatars are now generated with a consistent color based on the user id.
- Reverted split button design change.
- `editor.getContent()` now includes `indent` and `entity_encoding` properties to control HTML formatting.

### Deprecated

- Deprecated `content_css_cors` config option.

### Fixed

- Clicking on a non selectable element when the selection is off screen no longer scrolls to the selection.
- Using CMD+backspace would not preserve inline formatting.
- Navigating between elements with `contenteditable="true"` was not possible on Firefox using the keyboard.
- NVDA would announce `iframe_aria_text` multiple times.
- Cursor movement did not operate correctly after a `figure` was selected.
- Links inserted with `&amp;` encoding are now decoded to `&` before inserting.
- Attribute `aria-errormessage` was incorrectly added to url input fields by default.
- Splitting list items by pressing enter did not move the cursor due to an error in the browser console.

## [8.0.2 - 2025-08-14](../8.0.2-release-notes/)

> **Note:** In TinyMCE 8.0.1, the `licensekeymanager` plugin was missing from some available bundles. TinyMCE 8.0.2 corrects this by including the `licensekeymanager` plugin in all available bundles.
> 
> **Workaround for 8.0.1 users:** If you are using a bundle that is missing the `licensekeymanager` plugin, you can download the plugin separately and manually add it to your plugins folder. Contact your account manager or support for assistance in obtaining the separate `licensekeymanager` plugin download.

### Fixed

- Reverted split button design change.

## [8.0.1 - 2025-07-28](../8.0.1-release-notes/)

> **Note:** No new features or changes were introduced in this patch release. It contains missing changelogs from the [community/tinymce_8.0.0.zip](https://download.tiny.cloud/tinymce/community/tinymce_8.0.0.zip) file only.

### Fixed

- Updated missing changelogs.

## [8.0.0 - 2025-07-23](../8.0-release-notes/)

> **Note:** **Breaking Change in TinyMCE 8.0.0**: Users upgrading to TinyMCE 8 with self-hosted commercial deployments must contact their account manager **to obtain new `T8LK:` prefixed license keys**. TinyMCE 7 license keys are not compatible with TinyMCE 8 and cannot be modified to work by adding the `T8LK:` prefix. Cloud users (Tiny Cloud) are **not affected** as the commercial license is automatically applied. For complete details on the new license system and upgrade process, see: [License key configuration](../license-key/).

### Added

- Support for TinyMCE 8 [license keys](../license-key/) and license key manager.
- New `pageUid` property on the `tinymce` global instance.
- New `editorUid` property on editor instances.
- New `UserLookup` API to provide consistent user management and fetching/caching user information across TinyMCE plugins.
- New toolbar icons for suggested edits plugin.
- New `crossorigin` option that sets the `crossorigin` attribute on scripts loaded by the editor.
- New `allow_html_in_comments` option to allow HTML like contents inside comment data.
- New `list_max_depth` option that limits the maximum list indent depth.

### Improved

- Focus is now restored to a dialog after closing an alert, confirmation or another dialog.
- Resize handles are more accessible with `role` and `aria-valuetext` attributes.
- Toolbar drawer now closes when the editor loses focus.
- The `translate` API now automatically replaces three dots in a row with an ellipsis character.
- Tooltips can now be closed by pressing the escape key.
- Instructions on how to navigate the color swatch, image select and insert table widget are now announced by the screen readers.
- When `editor.resetContent()` is used, the resulting `SetContent` event now has the `initial` flag set in the event arguments.
- Updated Image plugin decorative image check to align with accessibility standard.

### Changed

- DomParser no longer tries to fix some nodes when parsed with a context.
- Split buttons are now rendered as separate action and chevron buttons.
- Moved essential parts of the `lists` plugin into core.
- Cut action now uses the editor delete implementation instead of the native `execCommand('Delete')` function.
- Comments with HTML like content, attributes with HTML like values, elements with HTML Comment like textContent are no longer retained while content sanitization is active.
- Added space to promotion message for ease of reading.
- Added deprecation console warning to `fire()` method.

### Deprecated

- Deprecated `skipFocus` option for ToggleToolbarDrawer command. To skip focus use `skip_focus` option.
- Deprecated 'editor.selection.setContent' method.
- Deprecated `fire()` method for event handling. Use `dispatch()` instead. The `fire()` method will be removed in TinyMCE 9.

### Removed

- Removed undocumented `documentBaseUrl` property from `Editor` instances. `documentBaseURI` is the supported property.

### Fixed

- Long tooltips could overflow narrow browser windows.
- Pressing Tab to create a new row in tables with a non-editable final row would freeze the editor.
- Fixed an issue where the context form API `onSetup` was referencing the incorrect element.
- Attempting to add a newline directly after a block element such as an image would cause an error.
- It wasn’t possible to navigate out of a `figcaption` using the left and right arrow keys in Firefox.
- Nested font sizes were causing too much spacing between lines.
- New list item was not inserted correctly when existing list item had a block element inside.
- Deleting a whole element would sometimes replace the tag name of adjacent content.
- HTML schema did not treat `colgroup` or `col` elements as block elements.
- Inserting HTML fragments with invalid contents now retains more of the structure.
- The `contextform` subtoolbar is no longer dismissed when using the toolbar back button in inline editors.
- Tabbing when a `figure` was selected didn’t move the selection on the `figcaption` correctly.
- Strikethrough format could be added outside font size format, which renders incorrectly in some browsers.
- Using arrow navigation between buttons when a button had the mouse over could stop the navigation.
- Codesample dialog would not disable spellcheck as expected.
- Cutting a whole HTML element would add an empty paragraph.
- Added better support for template elements.
- Tooltips no longer show above editor views.
- `onboarding` plugin overlay now shows above popups.
