以下是 Tiny Cloud 和 TinyMCE Enterprise 的发行说明。有关 TinyMCE 最新社区版本的信息,请参阅 TinyMCE Changelog。

概述

TinyMCE 8.5.0 于 2026 年 4 月 29 日星期三发布,适用于 TinyMCE Enterprise 和 Tiny Cloud。本发行说明概述了 TinyMCE 8.5.0 的变更,包括:

  • 配套 Premium 插件的变更

  • 配套 Enhanced Skins & Icon Packs 的变更

  • 改进

  • 新增

  • 变更

  • Bug 修复

  • 弃用

配套 Premium 插件的变更

以下 Premium 插件更新与 TinyMCE 8.5.0 一同发布。

拼写检查器

TinyMCE 8.5.0 版本包含配套发布的 Spell Checker Premium 插件。

Spell Checker 包含以下变更。

拼写检查器插件现在使用 content_language 选项作为默认语言,如果未设置,则回退到 spellchecker_language

以前,拼写检查器插件仅依赖 spellchecker_language 选项来确定其默认校对语言。无法将拼写检查器语言与编辑器上设置的内容语言对齐。

在 TinyMCE 8.5.0 中,拼写检查器插件现在首先读取新的 content_language 选项,并使用其值作为默认校对语言。如果 content_language 未设置,插件将回退到 spellchecker_language。spellchecker_language 选项将在未来的主版本中弃用;鼓励集成者改用 content_language。

有关 Spell Checker 插件的信息,请参阅:Spell Checker。

无障碍检查器

TinyMCE 8.5.0 版本包含配套发布的 Accessibility Checker Premium 插件。

Accessibility Checker 包含以下修复。

无障碍检查器在多行内联元素上的覆盖层过暗

以前,当 Accessibility Checker 突出显示多行内联元素时,覆盖效果显得过暗。应用于这些元素的 box-shadow 变暗效果在多行上叠加,使突出显示的内容难以阅读。

在 TinyMCE 8.5.0 中,已修正多行内联元素的覆盖样式。无论内联元素跨越多少行,Accessibility Checker 的突出显示现在都能以预期的亮度级别显示。

有关 Accessibility Checker 插件的信息,请参阅:Accessibility Checker。

媒体优化器

TinyMCE 8.5.0 版本包含配套发布的 Media Optimizer Premium 插件。

Media Optimizer 包含以下修复。

如果文件上传失败,上传进度 UI 未隐藏

以前,Media Optimizer 插件中的上传进度旋转图标在每次更新其可见性状态时都会重新创建。当文件上传失败且需要隐藏旋转图标时,只有新创建的实例被隐藏,而原始旋转图标仍然可见。这导致上传进度 UI 即使在上传错误后也永久显示。

在 TinyMCE 8.5.0 中,旋转图标现在只创建一次,并在可见性状态改变时重复使用。当文件上传失败时,上传进度 UI 会按预期隐藏。

有关 Media Optimizer 插件的信息,请参阅:Media Optimizer。

PowerPaste

TinyMCE 8.5.0 版本包含配套发布的 PowerPaste Premium 插件。

PowerPaste 包含以下修复。

在较新版本的 Firefox 中,上标和下标文本未能正确转换为 sub 或 sup 元素

以前,从 Google Docs 粘贴包含下标或上标文本的内容到 Firefox 149 及更高版本的 TinyMCE 时,未能正确将文本转换为语义 sub 或 sup 元素。较新版本的 Firefox 使用 baseline-shift CSS 属性而不是 vertical-align 属性进行下标和上标格式化,而 PowerPaste 未能识别此属性。因此,粘贴的文本丢失了其下标或上标格式。

在 TinyMCE 8.5.0 中,PowerPaste 现在在粘贴操作期间正确处理 baseline-shift CSS 属性,将使用 baseline-shift: sub 或 baseline-shift: super 样式设置的内容转换为相应的 sub 和 sup 元素。

有关 PowerPaste 插件的信息,请参阅:PowerPaste。

修订历史

TinyMCE 8.5.0 版本包含配套发布的 Revision History Premium 插件。

Revision History 包含以下修复。

预览 iframe 缺少内容样式,如图对齐

以前,Revision History 预览 iframe 未包含 mce-content-body 类,导致图对齐等内容样式渲染不正确。

在 TinyMCE 8.5.0 中,mce-content-body 类应用于预览 iframe,确保内容渲染与编辑器一致。

有关 Revision History 插件的信息,请参阅:Revision History。

Suggested Edits

TinyMCE 8.5.0 版本包含了 Suggested Edits 高级插件的相应发布版本。

Suggested Edits 包含以下修复。

预览 iframe 缺少内容样式,如图像对齐

此前,Suggested Edits 预览 iframe 未包含 mce-content-body 类,导致诸如图像对齐等内容样式渲染不正确。

在 TinyMCE 8.5.0 中,mce-content-body 类已应用于预览 iframe,确保内容渲染与编辑器保持一致。

有关 Suggested Edits 插件的信息,请参阅:Suggested Edits。

TinyMCE AI

TinyMCE 8.5.0 版本包含了 TinyMCE AI 高级插件的相应发布版本。

TinyMCE AI 包含以下修复、改进和新增功能。

支持自定义评论,可定义提示词并选择模型

此前,Review 侧边栏仅提供固定的一组内置评论类型,如 Proofread(校对)、Improve clarity(提升清晰度)和 Adjust tone and style(调整语气和风格)。用户无法定义自己的评论标准,也无法在评论过程中选择特定的 AI 模型。

在 TinyMCE 8.5.0 中,Review 侧边栏新增了 Custom review(自定义评论)类别。用户可以输入自然语言提示词,并且在 tinymceai_allow_model_selection 允许的情况下,可以选择 AI 模型。评论会运行与内置评论相同的流式建议和应用流程。自定义评论可以包括从检查特定单词或短语到应用完整的公司风格指南等各种操作。要从 Review 侧边栏中隐藏 Custom review,请在 tinymceai_reviews 中省略 'ai-reviews-custom'。

有关 Custom review 的信息,请参阅:Custom review。

获取的长列表来源可能导致 AI 聊天中的子菜单溢出且无法滚动

此前,当 AI 聊天返回的来源列表超出可用空间时,子菜单会溢出可视区域且没有任何滚动机制。这导致用户无法查看或选择超出可视区域的来源,功能受阻且用户体验不佳。尝试在溢出的子菜单内滚动会完全关闭该菜单。

在 TinyMCE 8.5.0 中,AI 聊天来源子菜单新增了最大高度限制和滚动条支持。长列表来源现在会在可滚动区域内显示,无论列表长度如何,用户都可以访问所有来源。

在某些浏览器/操作系统组合中,由于滚动条问题,无法在一行内显示 3 个来源标签

此前,在 TinyMCE AI Chat 面板中,响应区域显示的来源标签在某些浏览器和操作系统组合下可能每行仅显示两个而非三个。来源标签的 max-width 未考虑到某些平台上较粗滚动条所占用的额外空间,导致第三个标签换行至下一行。

在 TinyMCE 8.5.0 中,来源标签的最大宽度已缩小,以适应不同平台滚动条宽度的差异。现在,无论滚动条大小如何,来源标签都能稳定地每行显示三个。

当仅剩一项待处理更改时,“上一个”和“下一个”按钮现在将被禁用

此前,TinyMCE AI 评论面板中的“上一个”和“下一个”导航按钮即使仅剩一项待处理建议,也仍保持激活状态。这造成了误导性界面,因为这些按钮暗示还有更多建议可供导航,但实际上并非如此。

在 TinyMCE 8.5.0 中,当仅剩一项待处理建议时,“上一个”和“下一个”按钮将被禁用。这提供了更清晰的可用导航选项指示,并防止用户尝试不可用的操作。

带有长名称且无换行的历史记录条目发生溢出

此前,TinyMCE AI 插件中的聊天历史记录条目未处理包含长名称且无空格的标题文本溢出问题。标题文本超出了可视区域,隐藏了选项菜单(三点按钮),并使条目难以管理。

在 TinyMCE 8.5.0 中,当文本超出可用宽度时,聊天历史记录条目的标题现在会正确地截断并显示省略号。无论标题长度如何,选项菜单都保持可见且可访问。

预览 iframe 缺少内容样式,如图像对齐

此前,TinyMCE AI 预览 iframe 未包含 mce-content-body 类,导致诸如图像对齐等内容样式渲染不正确。

在 TinyMCE 8.5.0 中,mce-content-body 类已应用于预览 iframe,确保内容渲染与编辑器保持一致。

历史记录对话标题未修剪

此前,在 TinyMCE AI Chat History 面板中重命名对话时,会完全保留输入时开头和结尾的空白字符。如果提交标题时文本前后有多余空格,这些空格将作为名称的一部分保存。这可能导致历史记录列表中的对话标题显示为空白或不整齐。

在 TinyMCE 8.5.0 中,对话标题在保存时会进行 trim 处理,去除名称存储前的前导和尾随空格。标题在 Chat History 面板中能一致显示,不会出现意外的间距。

重命名对话时可能提交仅包含空格的标题

以前,在 TinyMCE AI Chat History 面板中,重命名对话并清空标题字段会正确禁用保存按钮。然而,当输入框为空或仅包含空格时按 Enter 键,会绕过禁用的按钮并提交空标题。这会导致对话以空白名称保存,使其在历史记录中难以识别。

在 TinyMCE 8.5.0 中,保存处理程序现在直接验证标题值,应用与禁用保存按钮相同的检查。在标题为空或仅包含空格时按 Enter 键不再提交重命名,确保所有对话在 Chat History 中都保留有意义的标题。

在 diff 和预览模式之间切换时保留选定的 diff

以前,在 TinyMCE AI 审查面板中切换预览和 diff 模式时,不会保留当前的建议选择。视图会重置到第一个建议,导致文档跳转到顶部,而不是保持在当前上下文中的位置。这破坏了审查体验,特别是对于在文档更下方处理建议的用户。

在 TinyMCE 8.5.0 中,在预览和 diff 模式之间切换时会保留当前激活的建议。用户会返回到他们在切换模式之前正在查看的建议,并且在预览模式中手动滚动不会再导致切换回 diff 模式时视图发生跳转。

改进了对于过大提示的错误消息

以前,当发送到 TinyMCE AI 服务的提示超过大小限制时,错误消息没有包含足够的详细信息供集成人员诊断问题。服务返回的结构化错误数据(例如当前提示长度和最大允许长度)未被解码或显示。

在 TinyMCE 8.5.0 中,当提示超过大小限制时,TinyMCE AI 会解码并显示详细的错误信息。当可用时,这包括当前提示长度和最大允许长度,使集成人员更容易识别和解决提示大小问题。

如果服务响应在包含可识别的错误详情的同时还包含无法识别的错误详情,额外的详细信息可能不会显示。错误通知本身不受影响。

方向键导航未在第一个和最后一个菜单项之间循环

以前,使用方向键导航 TinyMCE AI 菜单时,焦点不会在第一个和最后一个菜单项之间循环。在最后一个项目上按向下箭头或在第一个项目上按向上箭头没有效果。这与 TinyMCE 其他菜单的循环行为不一致,并且可能会减缓基于键盘的导航速度。

在 TinyMCE 8.5.0 中,TinyMCE AI 菜单中的方向键导航现在会在第一个和最后一个项目之间循环,与整个编辑器中使用的标准键盘导航行为一致。

AI 聊天内回复中代码片段的背景未能完全覆盖片段

以前,AI 聊天内回复中代码片段的背景样式未能完全覆盖整个片段区域。部分代码没有适当的背景覆盖,降低了可读性,并在 AI 聊天界面中造成了不一致的视觉呈现。

在 TinyMCE 8.5.0 中,AI 聊天内回复中代码片段的背景样式已得到修正,可完全覆盖整个片段区域。代码片段现在显示为具有完整且一致的背景覆盖,提高了可读性和视觉一致性。

在 AI 响应期间未禁用标签移除

以前,在 AI 生成响应期间,TinyMCE AI Chat 面板中的上下文标签上的关闭按钮仍然处于活动状态。这允许在响应生成期间移除标签,这可能会干扰响应上下文并产生意外结果。

在 TinyMCE 8.5.0 中,在 AI 生成响应期间,上下文标签上的关闭按钮现在处于禁用状态。只有在响应完成后才能移除标签,从而防止在生成过程中对请求上下文进行意外修改。

AI Chat 暗色模式下的用户提示背景颜色不正确

以前,在使用暗色皮肤时,TinyMCE AI Chat 面板中的用户提示背景颜色不正确。文本和背景之间的低对比度使提示更难阅读,降低了 AI Chat 界面在暗色模式下的可访问性和可用性。

在 TinyMCE 8.5.0 中,AI Chat 面板中的用户提示背景颜色已针对暗色皮肤进行了修正。更新后的颜色提供了适当的对比度,提高了暗色模式用户的可读性和可访问性。

Tab 键可用于在预览页脚中的分段按钮选项之间移动焦点

以前,Tab 键可用于在 TinyMCE AI 预览模式页脚中的分段按钮内的单个选项之间移动焦点。这与标准键盘导航行为不一致,按照标准行为,方向键应在分段控件内的选项之间导航,而 Tab 键应将焦点移动到组外的下一个交互式元素。

在 TinyMCE 8.5.0 中,TinyMCE AI 预览页脚中的焦点顺序已得到修正。现在,Tab 键将焦点移动到分段按钮外的下一个交互式元素,方向键在组内的选项之间导航。这提供了更可预测且更易访问的键盘导航体验。

减少了决策卡片详细信息中标签和正文之间的间距

此前,TinyMCE AI 决策卡片详情中标签和正文元素之间的间距比预期更大。组合的间隙和内边距导致这些元素之间有 24 像素的间距,在卡片内造成视觉上不一致的布局。

在 TinyMCE 8.5.0 中,决策卡片内部的间距已减少到元素之间一致的 12 像素。这在 TinyMCE AI 界面中提供了更紧凑且视觉上更连贯的卡片布局。

当聊天为空时,新聊天按钮未被禁用

此前,TinyMCE AI 侧边栏中的“新聊天”按钮即使当前对话为空时也保持启用状态。在此状态下点击按钮没有任何效果,这会造成困惑的体验和可访问性问题,因为屏幕阅读器和键盘用户可能会与一个不执行任何操作的控件进行交互。

在 TinyMCE 8.5.0 中,当尚未开始任何对话时,“新聊天”按钮现在会被禁用,确保按钮状态准确反映其可用性。

当操作按钮在聊天历史列表中悬停出现时,布局会偏移导致文本跳动

此前,TinyMCE AI 聊天历史面板中的操作容器没有为悬停时出现的图标按钮预留空间。当悬停在聊天历史项上时,按钮变得可见,并导致整个布局偏移,使内容位置意外跳动。这造成了刺眼的视觉不一致和整个组件中间距不一致的问题。

在 TinyMCE 8.5.0 中,操作容器现在预留了最小水平空间,以容纳图标按钮及其周围内边距。操作按钮的出现和消失不会引起布局偏移,从而提供更流畅且可预测的聊天历史交互体验。

使用 Delete 或 Backspace 键删除上下文源时,焦点不再丢失

此前,在 TinyMCE AI 侧边栏聊天视图中使用 Delete 或 Backspace 键删除上下文源标签时,键盘焦点会丢失。删除上下文源后,焦点完全消失,使得难以继续键盘导航。这特别影响了可访问性和仅使用键盘的工作流。

在 TinyMCE 8.5.0 中,焦点管理现在会跟踪标签删除事件。当删除一个上下文源标签时,焦点会移动到前一个上下文源标签;或者当删除第一个或仅剩的标签时,焦点会回到提示输入字段。这确保了在管理上下文源时无缝的键盘导航。

切换浮动侧边栏时未触发 ToggleSidebar 事件

此前,在 TinyMCE AI 插件中打开或关闭浮动侧边栏时,不会发出 ToggleSidebar 事件。此外,当浮动侧边栏打开时,使用 editor.queryCommandValue('ToggleSidebar') 查询当前侧边栏值不会返回正确的标识符。这使得难以通过编程方式确定浮动侧边栏的状态或响应状态变化。

在 TinyMCE 8.5.0 中,浮动侧边栏现在完全支持现有的侧边栏 API。当浮动侧边栏打开、关闭或切换时,ToggleSidebar 事件会被触发,并且 queryCommandValue 返回正确的侧边栏标识符。这使得浮动侧边栏在 API 方面与常规侧边栏完全对等。

AI 审查建议卡片在建议仍在加载时关闭并重新打开审查侧边栏后仍保持可用

此前,在开始审查后立即关闭 TinyMCE AI 审查侧边栏,然后在 AI 完成生成建议后重新打开它,会重置侧边栏状态。与审查相关的建议卡片不会显示,取而代之的是在预览旁边显示可用审查列表。这阻止了对生成的建议采取行动。

在 TinyMCE 8.5.0 中,在建议生成期间或之后关闭并重新打开侧边栏时,侧边栏状态现在会被正确保留。即使侧边栏在 AI 仍在流式传输结果时被关闭,审查建议卡片仍保持可见且可操作。

菜单不再在鼠标移出时关闭

此前,TinyMCE AI 插件中的子菜单在鼠标指针移出菜单区域时关闭。这与 TinyMCE 其他菜单的行为不匹配,在其他菜单中,子菜单保持打开状态,直到选择了父菜单中的另一个项目或整个菜单被关闭。这种不一致使子菜单导航不可靠,并可能在使用时造成困惑。

在 TinyMCE 8.5.0 中,TinyMCE AI 插件中的子菜单不再在鼠标移出时关闭。子菜单现在保持打开状态,直到选择了另一个父菜单项或菜单被关闭,与所有其他 TinyMCE 菜单的行为一致。

审查期间的第一个加载卡片不再显示为已聚焦状态

此前,当运行 AI 审查时,在建议生成过程中显示在审查侧边栏中的第一个骨架卡片应用了焦点样式。由于卡片内容仍在加载中且无法交互,可见的焦点指示器具有误导性,并造成了困惑的用户体验。

在 TinyMCE 8.5.0 中,焦点样式不再应用于审查侧边栏中的加载卡片。卡片仅在内容完全加载并可交互后才获得焦点样式。

用于执行 AI UI 操作的新命令

此前,TinyMCE AI 中的快速操作只能通过插件内置的菜单和工具栏按钮触发。希望通过自定义 UI 元素或自动化工作流调用这些操作的集成者没有程序化的方法来实现。

在 TinyMCE 8.5.0 中,TinyMCE AI 插件注册了一组反映各个 Quick Action 的编辑器命令。其中包括针对内置操作的命令,例如 TinyMCEAIQuickActionImproveWriting、TinyMCEAIQuickActionCheckGrammar 和 TinyMCEAIQuickActionTranslate(该命令接受一个 language 参数),以及用于使用指定模型运行自定义 prompt 的 TinyMCEAIQuickActionCustom。另外,还提供了一个 TinyMCEAIChatPrompt 命令,用于直接向 Chat 侧边栏发送 prompt。有关完整命令列表,请参阅 TinyMCE AI 插件命令。

在 tinymceai_quickactions_custom 中新增可选的 id 属性,用于将操作注册为自定义菜单项

此前,通过 tinymceai_quickactions_custom 选项定义的自定义快捷操作只能出现在 Quick Actions 菜单内专用的 Custom 子菜单中。这限制了希望自定义操作作为顶级菜单项与预定义操作一起显示或在其他菜单配置中显示的集成者。

在 TinyMCE 8.5.0 中,每个自定义快捷操作对象都可以包含一个可选的 id 属性。当设置了 id 时,该自定义操作可以作为自己的顶级菜单项列入 tinymceai_quickactions_menu 数组,或包含在任何接受控制标识符的菜单栏菜单或菜单按钮配置中。

聊天中的加载器显示为正常大小而非小尺寸

此前,在 AI Chat 区域生成回复时显示的加载动画使用了默认大小而非小尺寸。这导致加载动画在视觉上比相邻的 AI 回复图标更大,在聊天界面中造成外观不一致。

在 TinyMCE 8.5.0 中,AI Chat 的加载动画现在尺寸与 AI 回复图标的尺寸匹配,提供了一致且精致的视觉体验。

当插件生成审阅或执行快捷操作时,加载指示器中的“停止”按钮获得焦点

此前,TinyMCE AI 插件在不同上下文中显示“停止生成”控件的方式不一致。审阅加载指示器使用文本按钮,而 AI Chat 侧边栏使用图标按钮。此外,控件出现时不会获得焦点,这会对键盘可访问性产生负面影响。

在 TinyMCE 8.5.0 中,加载指示器中的停止按钮现在与 AI Chat 侧边栏中使用的图标按钮相匹配,提供了更一致的视觉体验。按钮在显示时也会获得焦点,改善了内容生成过程中的键盘导航和可访问性。

有关 TinyMCE AI 插件的信息,请参阅:TinyMCE AI。

配套的 Enhanced Skins & Icon Packs 更改

TinyMCE 8.5.0 版本包含了配套的 Enhanced Skins & Icon Packs 版本。

Enhanced Skins & Icon Packs

Enhanced Skins & Icon Packs 版本包含以下更新和修复。

重建了 Enhanced Skins & Icon Packs,以纳入同样集成到 TinyMCE 8.5.0 默认皮肤 Oxide 中的更改。

fabric、snow 和 naked 皮肤中浮动工具栏的背景是透明的

此前,在 fabric、snow 和 naked 皮肤中,浮动工具栏的背景是透明的,导致工具栏下方的编辑器内容透出。这降低了可读性,并使工具栏难以使用。

在 TinyMCE 8.5.0 中,工具栏背景样式对受影响的皮肤使用了正确的背景颜色。现在,浮动工具栏在这三种皮肤中均具有纯色背景,确保了与编辑器内容有适当的视觉分隔。

Premium content CSS 文件包含来自默认主题的多余样式

此前,fabric、fluent、material-classic 和 material-outline 皮肤的 premium skin content CSS 文件导入了默认主题 content UI 的样式。这导致重复样式加载到编辑器中,并不必要地增加了 premium content CSS 文件的大小。

在 TinyMCE 8.5.0 中,premium content CSS 文件中已移除过时的导入。现在,premium content CSS 文件仅包含各皮肤特有的样式,从而减小了文件大小并消除了重复样式加载。

有关使用 Enhanced Skins & Icon Packs 的信息,请参阅:Enhanced Skins & Icon Packs。

改进

TinyMCE 8.5.0 还包含以下改进:

改进了 Suggested Edits 和 TinyMCE AI 插件中 inline diff 高亮的视觉样式

此前,当在 Suggested Edits 和 TinyMCE AI 插件中选择 diff 高亮时,视觉样式会产生重叠效果,使显示显得杂乱。多层样式(包括边框、盒阴影和背景颜色)组合在一起,遮挡了高亮内容。这使得阅读和审阅建议的更改变得困难,特别是对于跨多行的 inline 文本元素。

在 TinyMCE 8.5.0 中,已简化并优化了所选差异高亮的视觉效果。基于边框的高亮方式已替换为背景渐变图像,box shadow 的位置已重新调整,背景尺寸现纳入行高计算。这些更改减少了视觉干扰,使差异高亮更清晰、更易读,从而让审查流程更顺畅。

新增功能

TinyMCE 8.5.0 还包含以下新增功能:

新增 content_language 选项,用于在 iframe 的 html 元素或内联编辑器的目标元素上设置 lang 属性

此前,TinyMCE 无法设置编辑器的默认内容语言。在经典(iframe)模式下,编辑器 iframe 内的 html 元素没有 lang 属性,这不符合诸如 WCAG 成功准则 3.1.1 等无障碍标准。屏幕阅读器和其他辅助技术无法确定编辑器内容的语言。

在 TinyMCE 8.5.0 中,新的 content_language 选项可在经典模式下的编辑器 iframe 的 html 元素上设置 lang 属性,或在内联模式下的目标元素上设置该属性。这与控制 UI 语言的 language 选项相互独立。此外,Spell Checker 插件现默认使用 content_language(若已设置),然后再回退到 spellchecker_language。

变更

TinyMCE 8.5.0 还包含以下变更:

更新 Review 列表手风琴项的背景颜色

TinyMCE AI Review 列表中手风琴项的背景颜色已从 #F7F7F7 更新为 #F0F0F0,以改善视觉对比度并符合当前设计规范。

错误修复

TinyMCE 8.5.0 还包含以下错误修复:

包含非 Latin1 字符的 URI 返回错误

此前,插入包含非 Latin 1 字符的数据 URI(例如带有字节顺序标记(BOM)的 SVG 数据 URI)图像时,TinyMCE 会抛出 InvalidCharacterError。这是因为 TinyMCE 使用 btoa 函数将数据 URI 编码为 base64,而 btoa 不支持 Latin1 范围外的字符。该错误可能导致编辑器挂起或无法处理图像。

在 TinyMCE 8.5.0 中,数据 URI 现先使用 TextEncoder 编码,再传递给 btoa,从而确保非 Latin1 字符得到正确处理。包含此类字符的数据 URI 图像现可无误处理。

某些屏幕阅读器未正确播报警告和确认对话框

此前,TinyMCE 中的警告和确认对话框未被某些屏幕阅读器(如 NVDA)正确播报。这些对话框的 aria-label 属性为空,且缺少指向对话框正文内容的适当 aria-labelledby 或 aria-describedby 引用。因此,屏幕阅读器用户无法听到这些对话框中呈现的消息或问题,导致难以响应确认提示或理解警告消息。

在 TinyMCE 8.5.0 中,警告和确认对话框现包含指向对话框内容的适当 ARIA 属性。屏幕阅读器在对话框打开时会播报对话框消息,为所有用户提供无障碍体验。

某些选区会删除编辑器主体,导致问题

此前,若从编辑器内部拖动鼠标选中包含表格的内容,并在编辑器外部释放鼠标按钮,然后按 Delete 键,可能会从 DOM 中移除编辑器主体元素。这会导致控制台报错,并使编辑器处于不可用状态,后续任何交互(如聚焦或选中内容)都会引发更多错误。

在 TinyMCE 8.5.0 中,编辑器现可防止删除操作移除编辑器主体元素。跨表格且超出编辑器边界的选区将得到安全处理,从而保留编辑器结构,并允许无错继续使用。

列表中 div 的特定组合会导致关闭列表时出现问题

此前,列表项内特定组合的 div 元素可能会阻止列表被关闭。列表检测逻辑会过早地将列表项内的 div 识别为列表宿主,而非现有列表内的内容。这导致无法在受影响的内容结构中移除列表格式。

在 TinyMCE 8.5.0 中,列表检测逻辑现能正确识别 div 是否在列表内,并在将元素视为宿主前定位父级列表。包含嵌套 div 元素的列表现可按预期关闭。

当 schema 认为 script 和 style 元素有效时,DOMPurify 会错误移除它们

此前,当启用了 xss_sanitization 时,通过 valid_elements 或 extended_valid_elements 明确允许的 script 和 style 元素会在净化过程中被移除。DOMPurify 将这些元素标记为潜在的 mXSS 向量,并将它们完全移除,即使 schema 配置表明它们是有效的。

在 TinyMCE 8.5.0 中,在 schema 中被视为有效的 script 和 style 元素会在净化过程中保留。净化过程仍然会移除不安全的属性和内容,但当 schema 明确允许这些元素时,不再移除整个元素。

带有子元素的 iframe 元素会被 DOMPurify 错误地移除

此前,包含子节点的 iframe 元素在净化过程中会被完全移除。DOMPurify 将 iframe 内存在子节点视为潜在的 mXSS 风险,并将整个元素从内容中剥离。

在 TinyMCE 8.5.0 中,iframe 元素会在净化过程中保留。任何子节点以及不安全或无效的属性都会被移除,但 iframe 元素本身会保留在编辑器内容中。

已弃用

TinyMCE 8.5.0 包含以下弃用项:

拼写检查器配置属性 spellchecker_language 已被弃用

从 TinyMCE 8.5.0 开始,spellchecker_language 选项已被弃用,并将在未来的主要版本中移除。请改用 content_language,该选项可同时设置默认内容语言和拼写检查器的校对语言。

有关 content_language 选项的信息,请参阅:内容本地化。