这是 Tiny Cloud 和 TinyMCE Enterprise 的版本说明。有关 TinyMCE 最新社区版本的信息,请参阅 TinyMCE Changelog。
概述
TinyMCE 8.5.0 于 2026 年 4 月 29 日(星期三)面向 TinyMCE Enterprise 和 Tiny Cloud 发布。本版本说明概述了 TinyMCE 8.5.0 的变更内容,包括:
配套 Premium 插件变更
配套增强型皮肤与图标包变更
改进
新增
变更
错误修复
已弃用
配套 Premium 插件变更
以下 Premium 插件更新与 TinyMCE 8.5.0 同步发布。
拼写检查器
TinyMCE 8.5.0 版本包含配套发布的 拼写检查器 Premium 插件。
拼写检查器包含以下变更。
拼写检查器插件现在使用 content_language 选项作为默认语言,未设置时则回退到 spellchecker_language
此前,拼写检查器插件完全依赖 spellchecker_language 选项来确定默认的拼写校对语言。无法使拼写检查语言与编辑器中设置的内容语言保持一致。
在 TinyMCE 8.5.0 中,拼写检查器插件现在会优先读取新的 content_language 选项,并将其值用作默认的拼写校对语言。如果未设置 content_language,插件会回退到 spellchecker_language。spellchecker_language 选项将在未来的主版本中弃用;建议集成者改用 content_language。
有关 拼写检查器插件的信息,请参阅:Spell Checker。
无障碍检查器
TinyMCE 8.5.0 版本包含配套发布的 无障碍检查器 Premium 插件。
无障碍检查器包含以下修复。
无障碍检查器的高亮遮罩在多行内联元素上过暗
此前,当无障碍检查器高亮显示多行内联元素时,遮罩效果会显得过暗。应用于这些元素的 box-shadow 变暗效果会在多行之间堆叠,导致高亮显示的内容难以阅读。
在 TinyMCE 8.5.0 中,已修正多行内联元素的遮罩样式。无论内联元素跨越多少行,无障碍检查器的高亮显示现在都能以预期的亮度级别呈现。
有关 无障碍检查器插件的信息,请参阅:Accessibility Checker。
媒体优化器
TinyMCE 8.5.0 版本包含配套发布的 媒体优化器 Premium 插件。
媒体优化器包含以下修复。
文件上传失败时,上传进度界面未能隐藏
此前,媒体优化器插件中的上传进度加载动画会在每次更新其可见性状态时重新创建。当文件上传失败并需要隐藏加载动画时,只会隐藏新创建的实例,而最初的加载动画仍然可见。这导致即使发生上传错误,上传进度界面也会一直显示。
在 TinyMCE 8.5.0 中,加载动画现在只会创建一次,并在其可见性状态改变时被重用。当文件上传失败时,上传进度界面会按预期隐藏。
有关 媒体优化器插件的信息,请参阅:Media Optimizer。
PowerPaste
TinyMCE 8.5.0 版本包含配套发布的 PowerPaste Premium 插件。
PowerPaste包含以下修复。
在新版本的 Firefox 中,下标和上标文本未能正确转换为 sub 或 sup 元素
此前,在 Firefox 149 及更高版本中,将包含下标或上标文本的内容从 Google 文档粘贴到 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 版本包含配套发布的 修订历史 Premium 插件。
修订历史包含以下修复。
预览 iframe 缺失内容样式(如图像对齐)
此前,修订历史预览 iframe 未包含 mce-content-body 类,导致诸如图像对齐之类的内容样式渲染不正确。
在 TinyMCE 8.5.0 中,预览 iframe 已应用 mce-content-body 类,确保内容渲染与编辑器保持一致。
有关 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 中,预览 iframe 应用了 mce-content-body 类,确保内容与编辑器渲染一致。
有关 Suggested Edits 插件的信息,请参阅:Suggested Edits。
TinyMCE AI
TinyMCE 8.5.0 版本包含了 TinyMCE AI 付费插件的配套版本。
TinyMCE AI 包含以下修复、改进和新增功能。
使用自定义提示词和模型选择的自定义审阅
此前,Review 侧边栏仅提供固定的内置审阅类型,如校对、改进清晰度、调整语气和风格等。用户无法定义自己的审阅标准,也无法为审阅过程选择特定的 AI 模型。
在 TinyMCE 8.5.0 中,Review 侧边栏新增了 Custom review 类别。用户可以输入自然语言提示词,当 tinymceai_allow_model_selection 允许时,还可以选择 AI 模型。审阅将运行与内置审阅相同的流式建议和应用流程。自定义审阅的范围可以从检查特定的单词或短语,到应用完整的公司风格指南。若要从 Review 侧边栏隐藏 Custom review,请在 tinymceai_reviews 中省略 'ai-reviews-custom'。
有关自定义审阅的信息,请参阅: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 中,预览 iframe 应用了 mce-content-body 类,确保内容与编辑器渲染一致。
历史对话标题未修剪
此前,在 TinyMCE AI Chat History 面板中重命名对话时,会完全保留输入的前导和尾随空格。如果提交的标题在文本前后包含额外的空格,这些空格会作为名称的一部分保存。这可能导致对话标题在历史记录列表中显示为空白或对齐错误。
在TinyMCE 8.5.0中,对话标题现在会在保存时进行修剪,去除名称存储前所有开头和结尾的空格。标题在Chat History面板中显示时不会出现意外的间距,保持一致性。
重命名对话时可能会提交仅包含空格的标题
此前,在TinyMCE AI Chat History面板中重命名对话并清空标题字段时,"Save"按钮会被正确禁用。然而,当输入框为空或仅包含空格时按下Enter键,会绕过已禁用的按钮并提交空标题。这导致对话以空白名称保存,使其在历史记录中难以识别。
在TinyMCE 8.5.0中,保存处理程序现在会直接验证标题值,应用与禁用"Save"按钮相同的检查逻辑。当标题为空或仅包含空格时按下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 插件注册了一系列与每个快速操作对应的编辑器命令。其中包括用于内置操作的命令,例如 TinyMCEAIQuickActionImproveWriting、TinyMCEAIQuickActionCheckGrammar 和 TinyMCEAIQuickActionTranslate(该命令接受一个 language 参数),以及用于运行带有指定模型的自定义提示的 TinyMCEAIQuickActionCustom。此外还提供了一个 TinyMCEAIChatPrompt 命令,用于直接将提示发送到聊天侧边栏。有关命令的完整列表,请参阅 TinyMCE AI 插件命令。
在 tinymceai_quickactions_custom 中新增可选的 id 属性,用于将操作注册为自定义菜单项
此前,通过 tinymceai_quickactions_custom 选项定义的自定义快速操作只能显示在快速操作菜单内的专用“Custom”子菜单中。这限制了希望自定义操作作为顶级菜单项与预定义操作一同显示或在其他菜单配置中显示的集成者。
在 TinyMCE 8.5.0 中,每个自定义快速操作对象中都可以包含一个可选的 id 属性。设置 id 后,该自定义操作可以在 tinymceai_quickactions_menu 数组中列为自己的顶级菜单项,或包含在任何接受控件标识符的菜单栏菜单或菜单按钮配置中。
聊天中的加载器为标准尺寸而非小尺寸
此前,在生成响应时显示在 AI 聊天区域的加载旋转图标使用默认尺寸,而非小尺寸。这导致旋转图标看起来比相邻的 AI 响应图标更大,在聊天界面中造成了视觉不一致。
在 TinyMCE 8.5.0 中,AI 聊天加载旋转图标的尺寸现在与 AI 响应图标的尺寸相匹配,提供了一致且精致的视觉体验。
插件生成审阅或快速操作时,加载指示器中的停止按钮会获得焦点
此前,TinyMCE AI 插件在不同上下文中显示“停止生成”控件的方式不一致。审阅加载指示器使用文本按钮,而 AI 聊天侧边栏使用图标按钮。此外,该控件出现时不会获得焦点,这对键盘可访问性产生了负面影响。
在 TinyMCE 8.5.0 中,加载指示器中的停止按钮现在与 AI 聊天侧边栏中使用的图标按钮相匹配,提供了更一致的视觉体验。该按钮在显示时也会获得焦点,从而在内容生成过程中改善了键盘导航和可访问性。
有关 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 中,工具栏背景样式针对受影响的皮肤使用了正确的背景颜色。浮动工具栏现在在这三种皮肤中都有纯色背景,确保了与编辑器内容的适当视觉分离。
高级内容 CSS 文件包含来自默认主题的多余样式
此前,fabric、fluent、material-classic 和 material-outline 皮肤的高级皮肤内容 CSS 文件导入了来自默认主题内容 UI 的样式。这导致重复样式加载到编辑器中,并不必要的增加了高级内容 CSS 文件的大小。
在 TinyMCE 8.5.0 中,已从高级内容 CSS 文件中移除了过时的导入。高级内容 CSS 文件现在只包含每个皮肤特有的样式,减少了文件大小并消除了重复样式的加载。
有关使用 Enhanced Skins & Icon Packs 的信息,请参阅:Enhanced Skins & Icon Packs。
改进
TinyMCE 8.5.0 还包括以下改进:
改进了 Suggested Edits 和 TinyMCE AI 插件中内联差异高亮的视觉样式
此前,当在 Suggested Edits 和 TinyMCE AI 插件中选择差异高亮时,视觉样式会产生重叠效果,导致显示杂乱。包括边框、框阴影和背景颜色在内的多个样式层组合在一起,遮挡了高亮内容。这使得阅读和审查建议的更改变得困难,特别是对于跨越多行的内联文本元素。
在 TinyMCE 8.5.0 中,所选 diff 高亮的视觉样式经过简化与优化。基于边框的高亮方式已替换为背景渐变图像,box shadow 位置已调整,背景尺寸现在会考虑行高。这些更改减少了视觉干扰,提供了更简洁、更易读的 diff 高亮,使 review 工作流更易于跟进。
新增内容
TinyMCE 8.5.0 还包含以下新增内容:
新增 content_language 选项,用于在 iframe 的 html 元素或 inline 编辑器的目标元素上设置 lang 属性
此前,TinyMCE 没有选项可用于设置编辑器的默认内容语言。在 classic(iframe)模式中,编辑器 iframe 内部的 html 元素没有 lang 属性,这不符合 WCAG Success Criterion 3.1.1 等无障碍标准。屏幕阅读器及其他辅助技术无法确定编辑器内容的语言。
在 TinyMCE 8.5.0 中,新的 content_language 选项会在 classic 模式下为编辑器 iframe 的 html 元素设置 lang 属性,或在 inline 模式下为目标元素设置该属性。此选项与 language 选项相互独立,language 选项用于控制 UI 语言。Spell Checker 插件现在也会在 content_language 已设置时优先使用它,然后才会回退到 spellchecker_language。
变更
TinyMCE 8.5.0 还包含以下变更:
更新 Review 列表手风琴项的背景颜色
TinyMCE AI Review 列表中手风琴项的背景颜色已从 #F7F7F7 更新为 #F0F0F0,以提升视觉对比度并符合当前设计规范。
Bug 修复
TinyMCE 8.5.0 还包含以下 bug 修复:
包含非 Latin1 字符的 URI 会返回错误
此前,插入包含非 Latin 1 字符的 data URI 图片(例如带有字节顺序标记 BOM 的 SVG data URI)会导致 TinyMCE 抛出 InvalidCharacterError。这是因为 TinyMCE 使用 btoa 函数将 data URI 编码为 base64,而 btoa 不支持 Latin1 范围之外的字符。该错误可能导致编辑器卡住或无法处理图片。
在 TinyMCE 8.5.0 中,data URI 在传递给 btoa 之前会先使用 TextEncoder 进行编码,从而确保非 Latin1 字符能被正确处理。包含此类字符的 data URI 图片现在可以无错误地处理。
某些屏幕阅读器无法正确播报 alert 与 confirm 对话框
此前,TinyMCE 中的 alert 与 confirm 对话框在某些屏幕阅读器(例如 NVDA)中无法被正确播报。这些对话框的 aria-label 属性为空,并且缺少指向对话框正文内容的适当 aria-labelledby 或 aria-describedby 引用。因此,屏幕阅读器用户无法听到这些对话框中呈现的消息或问题,导致难以响应确认提示或理解 alert 消息。
在 TinyMCE 8.5.0 中,alert 与 confirm 对话框现在包含正确的 ARIA 属性,可引用对话框内容。当对话框打开时,屏幕阅读器会播报对话框消息,为所有用户提供无障碍体验。
某些选择操作会删除编辑器主体,引发问题
此前,如果从编辑器内部通过拖动选择内容(包含表格)并在编辑器外部释放鼠标按钮,然后按下 Delete 键,可能会将编辑器主体元素从 DOM 中移除。这会引发 console 错误,并使编辑器处于不可用状态:随后任何交互(如聚焦或选择内容)都会触发额外错误。
在 TinyMCE 8.5.0 中,编辑器现在会阻止删除操作移除编辑器主体元素。跨越表格并扩展到编辑器边界之外的选择会被安全处理,从而保留编辑器结构,并允许在不出现错误的情况下继续使用。
列表内特定 div 组合会导致关闭列表时出现问题
此前,列表项内特定 div 元素组合可能会阻止列表被切换关闭。列表检测逻辑会过早地将列表项内的 div 识别为列表宿主,而不是将其识别为现有列表内部的内容。这会导致在受影响的内容结构中无法移除列表格式。
在 TinyMCE 8.5.0 中,列表检测逻辑现在能正确识别 div 是否位于列表内部,并在将该元素视为宿主之前定位到父级列表。包含嵌套 div 元素的列表现在可以按预期被切换关闭。
当 script 与 style 元素在 schema 中被视为有效时,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 已被弃用
spellchecker_language 选项自 TinyMCE 8.5.0 起已被弃用,并将在未来的主版本中被移除。改用 content_language,该选项可同时设置默认的内容语言和拼写检查器的校对语言。
有关 content_language 选项的信息,请参阅:内容本地化。