You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following premium plugin updates were released alongside {productname} {release-version}.
30
30
31
+
=== TinyMCE AI
32
+
33
+
The {productname} {release-version} release includes an accompanying release of the **TinyMCE AI** premium plugin.
34
+
35
+
**TinyMCE AI** includes the following fix.
36
+
37
+
==== Image edits now target the correct image in content with multiple images
38
+
// #TINY-14454
39
+
40
+
Previously, images sent to the model were not uniquely identified, so a prompt referencing a specific image could mistake one image for another and apply changes, such as alt text updates, to the wrong image. **TinyMCE AI** now uniquely tags each `+img+` elements so they are less likely to be mistaken. Image edits now apply to the intended image, even when the content contains multiple images.
41
+
42
+
For information on the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE AI].
43
+
31
44
// === <Premium plugin name 1> <Premium plugin name 1 version>
32
45
33
46
// The {productname} {release-version} release includes an accompanying release of the **<Premium plugin name 1>** premium plugin.
@@ -39,11 +52,26 @@ The following premium plugin updates were released alongside {productname} {rele
39
52
40
53
// For information on the **<Premium plugin name 1>** plugin, see: xref:<plugincode>.adoc[<Premium plugin name 1>].
41
54
55
+
=== Inline CSS
56
+
57
+
The {productname} {release-version} release includes an accompanying release of the **Inline CSS** premium plugin.
58
+
59
+
**Inline CSS** includes the following fix.
60
+
61
+
==== The fullpage header and footer were not included when getting HTML content with inline CSS
62
+
// #TINY-14410
63
+
64
+
Previously, the **Inline CSS** plugin's `getContent` API did not return a complete HTML document when the **Full Page HTML** plugin was enabled. The surrounding document header and footer were omitted, which made the output unsuitable for use cases such as generating email-ready documents.
65
+
66
+
In {productname} {release-version}, the **Inline CSS** plugin detects when the **Full Page HTML** plugin is enabled and includes the document header and footer in its output. The `getContent` API now returns a full HTML document as expected.
67
+
68
+
For information on the **Inline CSS** plugin, see: xref:inline-css.adoc[Inline CSS].
69
+
42
70
=== TinyMCE AI
43
71
44
72
The {productname} {release-version} release includes an accompanying release of the **TinyMCE AI** premium plugin.
45
73
46
-
**TinyMCE AI** includes the following improvement.
74
+
**TinyMCE AI** includes the following improvements and fixes and additions.
47
75
48
76
==== Some tooltips now appear only when the content is too long to display
49
77
// #TINY-14072
@@ -52,6 +80,83 @@ Previously, some tooltips in the TinyMCE AI interface were shown whenever their
52
80
53
81
In {productname} {release-version}, these tooltips appear only when the content is truncated because it is too long to display in full. This reduces unnecessary tooltips and keeps the interface less cluttered.
54
82
83
+
==== White space in user prompts was not rendered correctly in the AI Chat history
84
+
// #TINY-14448
85
+
86
+
Previously, user prompts shown in the AI Chat history collapsed consecutive spaces and line breaks. A multi-line prompt was displayed as a single run-on line, so the message in the chat thread did not match what was typed.
87
+
88
+
In {productname} {release-version}, user prompts in the AI Chat history preserve their original line breaks and spacing, while long lines still wrap within the message. Prompts now display as they were typed.
89
+
90
+
==== Replaced the icon-only buttons in the AI suggestion preview with labeled Apply and Skip buttons
91
+
// #TINY-14369
92
+
93
+
Previously, the AI suggestion preview used icon-only accept and reject buttons, so the meaning of each action relied on the icon and its tooltip. This made the actions ambiguous and harder to discover.
94
+
95
+
In {productname} {release-version}, the AI suggestion preview uses labeled buttons: a primary **Apply** button to accept a suggestion and a secondary **Skip** button to reject it. The clearer labels make each action obvious and improve accessibility.
96
+
97
+
==== The AI suggestions diff overlay did not always maintain alignment when resizing the browser window
98
+
// #TINY-14366
99
+
100
+
Previously, after the AI Chat generated new content, resizing the browser window could leave the AI suggestions diff overlay misaligned with the underlying text. On some layouts the highlights became detached from the content they marked, which made the suggestions preview look broken.
101
+
102
+
In {productname} {release-version}, the preview overlay tracks a wider set of size changes when the window is resized. The diff overlay now stays aligned with the generated content, which keeps the AI suggestions preview accurate.
103
+
104
+
==== Reduced the spacing in the AI review suggestion cards
105
+
// #TINY-14279
106
+
107
+
Previously, the review suggestion cards in the AI Review sidebar used more padding than intended, which made the card layout look inconsistent with the design.
108
+
109
+
In {productname} {release-version}, the spacing between the card header and body has been reduced to match the design. The review suggestion cards now have a more compact and consistent appearance.
110
+
111
+
==== Editor content was visible through the AI suggestions preview when using the premium snow skin
112
+
// #TINY-14189
113
+
114
+
Previously, when using the premium Snow skin, the AI suggestions preview overlay had a transparent background. The underlying editor content showed through the preview, which made it difficult to read and evaluate AI-generated suggestions.
115
+
116
+
In {productname} {release-version}, the AI suggestions preview uses a solid white background in the Snow skin. Suggestions now appear on a clean, unobstructed background.
117
+
118
+
==== Keyboard navigation in the preview footer now focuses the currently active view mode instead of always the first one
119
+
// #TINY-14272
120
+
121
+
Previously, moving keyboard focus to the preview footer in the AI Chat always landed on the first view mode option rather than the one that was currently active. This made keyboard navigation between the Diff mode and Preview tabs less predictable.
122
+
123
+
In {productname} {release-version}, focus moves to the currently active view mode in the preview footer. Keyboard navigation now reflects the active selection.
124
+
125
+
==== A confirmation dialog now appears before navigating away from unresolved suggestions, such as when switching to another sidebar or opening a sidebar during quick actions
126
+
// #TINY-14236
127
+
128
+
Previously, switching between the AI Chat and Review sidebars, or opening a sidebar during quick actions, while AI suggestions were still unresolved discarded those suggestions and any applied changes permanently. A single accidental click could cause lost progress.
129
+
130
+
In {productname} {release-version}, a confirmation dialog appears before navigating away from unresolved suggestions. The action proceeds only after it is confirmed, which prevents the accidental loss of in-progress changes.
131
+
132
+
==== Two tooltips were shown at the same time when hovering over context sources or conversation titles that were shortened with an ellipsis in Safari
133
+
// #TINY-14032
134
+
135
+
Previously, in Safari, hovering over text that was shortened with an ellipsis, such as AI Chat conversation titles or context sources, could display two tooltips at once: the browser's native tooltip and the plugin's custom tooltip.
136
+
137
+
In {productname} {release-version}, only the native tooltip is shown for these elements in Safari. A single tooltip now appears on hover as expected.
138
+
139
+
==== An error could be reported when aborting and starting a new conversation
140
+
// #TINY-14381
141
+
142
+
Previously, aborting a streamed AI response and starting a new conversation could report an error. Aborting the response triggered a document delete operation that sometimes failed.
143
+
144
+
In {productname} {release-version}, the document is no longer deleted when an AI request is aborted. Aborting a response and starting a new conversation no longer reports this error.
145
+
146
+
==== AI response HTML is now filtered through the editor's content pipeline before being displayed in preview
147
+
// #TINY-14344
148
+
149
+
Previously, content shown in the AI preview was not filtered by the editor's content rules until it was applied. With a strict schema configuration, a change could appear in the preview, be accepted, and then be removed when applied to the editor, so the final result did not match the preview.
150
+
151
+
In {productname} {release-version}, AI response HTML is filtered through the editor's content pipeline before it is shown in the preview. The preview now reflects what will be added to the editor, and if filtering removes all of the content the user is notified.
152
+
153
+
==== AI Chat state was lost if the sidebar was closed before the model started responding
154
+
// #TINY-14222
155
+
156
+
Previously, the state of an AI Chat conversation could be lost if the Chat sidebar was closed before the model began responding to a prompt. The plugin recorded which sidebar started a response only once the response began, so closing the sidebar beforehand left no record. Reopening the sidebar then reset the conversation and any pending preview.
157
+
158
+
In {productname} {release-version}, the sidebar is recorded as soon as the prompt is sent. Closing and reopening the Chat sidebar before the response is ready no longer resets the conversation.
159
+
55
160
For information on the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE AI].
56
161
57
162
@@ -65,12 +170,37 @@ For information on the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE A
65
170
66
171
// CCFR here.
67
172
173
+
=== Pressing Tab or Shift+Tab on an open menu now closes it and moves focus to the next or previous focusable element
174
+
// #TINY-13341
175
+
176
+
Previously, pressing Tab or Shift+Tab inside an open dropdown menu cycled focus through the menu items instead of closing the menu. This behavior did not align with accessibility guidelines, which recommend that the Tab key close the menu and move focus to the next or previous element in the tab order. As a result, keyboard navigation through menus was less predictable for users who rely on the keyboard or assistive technologies.
177
+
178
+
In {productname} {release-version}, pressing Tab or Shift+Tab on an open menu now closes the menu and moves focus to the next or previous focusable element in the tab order. This makes keyboard navigation more predictable and aligns dropdown menu behavior with accessibility guidelines.
179
+
180
+
=== The editor resize handle now uses browser pointer events for more reliable behavior across different integration environments
181
+
// #TINY-14241
182
+
183
+
Previously, the editor resize handle relied on an overlay element to capture pointer movement, which required raising the editor's stacking order. This caused the editor to appear on top of the floating sidebar used by the TinyMCE AI plugin while the editor was being resized.
184
+
185
+
In {productname} {release-version}, the resize handle uses modern browser pointer events instead. This removes the need for the overlay element and the raised stacking order, providing more reliable resizing across different integration environments and resolving the overlap with the floating sidebar.
186
+
68
187
69
188
[[additions]]
70
189
== Additions
71
190
72
191
{productname} {release-version} also includes the following addition<s>:
73
192
193
+
=== New `tinymce.dom.AriaAnnouncer` API for screen reader announcements
194
+
// #TINY-12791
195
+
196
+
{productname} {release-version} adds the `+tinymce.dom.AriaAnnouncer+` API for sending messages to screen readers through an `+aria-live+` region without shifting focus. The `+announce+` method accepts a message and an optional `+{ assertive }+` setting. Integrators can use it to announce formatting changes, for example by listening to the `+FormatApply+` and `+FormatRemove+` events.
@@ -104,11 +234,59 @@ For information on the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE A
104
234
105
235
{productname} {release-version} also includes the following bug fix<es>:
106
236
237
+
=== Indentation is now applied to all selected table cells
238
+
// #TINY-14370
239
+
240
+
Previously, applying indentation with multiple table cells selected affected only the cell where the pointer was released. The action used the browser's native selection rather than the editor's cell selection, so the remaining selected cells were left unchanged.
241
+
242
+
In {productname} {release-version}, indentation is applied to every cell in the selection.
243
+
107
244
// === <TINY-vwxyz 1 changelog entry>
108
245
// #TINY-vwxyz1
109
246
110
247
// CCFR here.
111
248
249
+
=== CSS custom property names and color values in the style attribute were lowercased when parsed
250
+
// #TINY-11524
251
+
252
+
Previously, the {productname} style parser lowercased CSS custom property names (such as `--MyColor`) and `color` and `background-color` values when reading the `style` attribute. This altered case-sensitive values, including CSS custom properties, template placeholders such as `{{FooBar}}`, and hex colors such as `#AABBCC`, so the affected styling sometimes did not render as authored.
253
+
254
+
In {productname} {release-version}, the style parser preserves the original case of CSS custom property names and `color` and `background-color` values. Standard property names are still lowercased, and other processing, such as RGB-to-hex conversion, shorthand merging, and security filtering, is unchanged. Case-sensitive colors and custom properties now stay exactly as authored.
255
+
256
+
=== Focused links in dark mode had the same text color as the background
257
+
// #TINY-14264
258
+
259
+
Previously, in dark mode, a focused or selected link was displayed with the same text color as the background. This made the link text impossible to read while it was selected.
260
+
261
+
In {productname} {release-version}, selected link text in dark mode is displayed in white. Links remain readable when focused, which improves accessibility in dark mode.
262
+
263
+
=== Context toolbar with position 'line' was not repositioning to the opposite side when overflowing the viewport
264
+
// #TINY-14376
265
+
266
+
Previously, a context toolbar configured with `position: 'line'`, such as a quickbar, was not repositioned when it overflowed the edge of the viewport. Under these conditions the toolbar could be cut off, which prevented users from clicking its buttons.
267
+
268
+
In {productname} {release-version}, a context toolbar that uses `position: 'line'` now flips to the opposite side when there is not enough space. The toolbar remains fully visible and usable in constrained layouts.
269
+
270
+
=== Some annotated text was hidden when printed even though it should have been visible
271
+
// #TINY-14296
272
+
273
+
Previously, text marked by annotation features, such as spelling indicators, could be hidden when a page was printed. The annotations were wrapped in internal placeholder elements that were hidden during printing, which also hid the text inside them.
274
+
275
+
In {productname} {release-version}, placeholder elements that act only as wrappers now hide their styling rather than their contents when printing. Annotation highlights remain hidden in the printed output, while the underlying text is printed as expected.
276
+
277
+
=== Worked around a Chromium bug where clicking on the right of an `li` could fail
278
+
// #TINY-13886
279
+
280
+
Previously, clicking to the right of the content in a list item could place the cursor at the start of the item instead of at the location that was clicked. This was caused by a Chromium browser bug that moved the caret to an incorrect position.
281
+
282
+
In {productname} {release-version}, a targeted workaround detects this case and corrects the caret position. Clicking to the right of a list item now places the cursor where expected.
283
+
284
+
=== Using the undo keyboard shortcut did not restore editor selection correctly
285
+
// #TINY-14255
286
+
287
+
Previously, pressing the undo keyboard shortcut (Ctrl+Z, or Cmd+Z on macOS) after deleting a selection could leave the cursor in the wrong position. An earlier change registered an extra undo step whenever Ctrl or Cmd was pressed, so the step was recorded before the deleted content was restored.
288
+
289
+
In {productname} {release-version}, {productname} registers that undo step only when Ctrl or Cmd is pressed together with Backspace or Delete, rather than on every Ctrl or Cmd key press. Undoing the deletion of a selection now restores both the content and the original selection correctly.
0 commit comments