这是 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。
有关 拼写检查器 插件的信息,请参阅:拼写检查器。
无障碍检查器
TinyMCE 8.5.0 版本包含 无障碍检查器 premium 插件的配套版本。
无障碍检查器 包括以下修复。
无障碍检查器叠加层在多行内联元素上太暗
此前,当无障碍检查器高亮显示多行内联元素时,叠加效果显得过暗。应用于这些元素的 box-shadow 变暗效果跨多行叠加,使得高亮显示的内容难以阅读。
在 TinyMCE 8.5.0 中,多行内联元素的叠加层样式已得到修正。无论内联元素跨越多少行,无障碍检查器高亮显示现在都能以预期的亮度级别显示。
有关 无障碍检查器 插件的信息,请参阅:无障碍检查器。
媒体优化器
TinyMCE 8.5.0 版本包含 媒体优化器 premium 插件的配套版本。
媒体优化器 包括以下修复。
如果文件上传失败,上传进度 UI 不会隐藏
此前,媒体优化器插件中的上传进度 spinner 每次更新其可见性状态时都会重新创建。当文件上传失败且需要隐藏 spinner 时,只会隐藏新创建的实例,而原始 spinner 仍然可见。这导致即使出现上传错误,上传进度 UI 也会永久显示。
在 TinyMCE 8.5.0 中,spinner 现在只创建一次,并在可见性状态改变时重复使用。当文件上传失败时,上传进度 UI 会按预期隐藏。
有关 媒体优化器 插件的信息,请参阅:媒体优化器。
PowerPaste
TinyMCE 8.5.0 版本包含 PowerPaste premium 插件的配套版本。
PowerPaste 包括以下修复。
较新版本的 Firefox 中,上标和下标文本未能正确转换为 sub 或 sup 元素
此前,在 Firefox 149 及更高版本上,从 Google Docs 将包含下标或上标文本的内容粘贴到 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 缺少 figure 对齐等内容样式
此前,修订历史预览 iframe 未包含 mce-content-body 类,导致 figure 对齐等内容样式无法正确渲染。
在 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 reviews 的信息,请参阅:Custom review。
AI 聊天中拉取的源列表过长时会导致子菜单溢出且无法滚动
此前,当 AI 聊天返回的拉取源列表超出可用空间时,子菜单会溢出到可见区域之外,且没有滚动机制。这导致用户无法查看或选择超出可见范围的源,功能受阻,用户体验不佳。尝试在溢出的子菜单内滚动会直接关闭菜单。
在 TinyMCE 8.5.0 中,AI 聊天源子菜单增加了最大高度限制和滚动条支持。较长的拉取源列表现在可在可滚动区域内显示,无论列表长度如何,均可访问所有源。
在某些浏览器/操作系统组合中,滚动条导致同一行无法显示 3 个源标签
此前,在 TinyMCE AI Chat 面板中,某些浏览器和操作系统组合下,响应区中显示的源标签只能每行显示 2 个,而不是 3 个。源标签的 max-width 未考虑到某些平台上更粗滚动条所占用的空间,导致第三个标签被挤到下一行。
在 TinyMCE 8.5.0 中,源标签的最大宽度已缩小,以适配不同平台间滚动条宽度的差异。现在无论滚动条大小如何,源标签均可稳定每行显示 3 个。
当仅剩一个待处理更改时,上一个/下一个按钮现已禁用
此前,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 中,对话标题在保存时会进行修剪,在名称存储之前去除任何前导和尾随的空白字符。标题现在可以一致地显示在 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 插件注册了一组编辑器命令,这些命令与每个 Quick Action 相对应。其中包括用于内置操作的命令,如 TinyMCEAIQuickActionImproveWriting、TinyMCEAIQuickActionCheckGrammar 和 TinyMCEAIQuickActionTranslate(该命令接受一个语言参数),以及用于运行带有指定模型的自定义提示的 TinyMCEAIQuickActionCustom。还提供了一个 TinyMCEAIChatPrompt 命令,用于直接将提示发送到聊天侧边栏。如需获取完整的命令列表,请参阅 TinyMCE AI 插件命令。
新增 tinymceai_quickactions_custom 的可选 id 属性,用于将操作注册为自定义菜单项
以前,通过 tinymceai_quickactions_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。
随附的增强型皮肤和图标包更改
TinyMCE 8.5.0 版本包括随附的 增强型皮肤和图标包 版本。
增强型皮肤和图标包
增强型皮肤和图标包 版本包括以下更新和修复。
增强型皮肤和图标包 经过重新构建,纳入了默认 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 文件现在仅包含每个皮肤特定的样式,从而减小了文件大小并消除了重复的样式加载。
有关使用增强型皮肤和图标包的信息,请参阅:增强型皮肤和图标包。
改进
TinyMCE 8.5.0 还包括以下改进:
改进了 Suggested Edits 和 TinyMCE AI 插件中内联差异高亮的视觉样式
以前,当在 Suggested Edits 和 TinyMCE AI 插件中选择差异高亮时,视觉样式会产生重叠效果,使显示变得杂乱。多层样式(包括边框、盒子阴影和背景颜色)组合在一起,遮盖了高亮内容。这使得阅读和审阅建议的更改变得困难,尤其是对于跨多行内联文本元素。
在 TinyMCE 8.5.0 中,已选差异高亮的视觉样式经过了简化和优化。基于边框的高亮方式已被背景渐变图像取代,盒阴影位置已调整,且背景尺寸现在会考虑行高。这些更改减少了视觉干扰,提供了更简洁、易读的差异高亮,使审阅工作流程更易于遵循。
新增功能
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 属性。该选项与控制界面语言的 language 选项是分开的。拼写检查插件现在也会优先使用已设置的 content_language,然后再回退到 spellchecker_language。
变更
TinyMCE 8.5.0 还包含以下变更:
更新了“审阅列表”手风琴项的背景颜色
TinyMCE AI 审阅列表中手风琴项的背景颜色已从 #F7F7F7 更新为 #F0F0F0,以改善视觉对比度并符合当前设计规范。
错误修复
TinyMCE 8.5.0 还包含以下错误修复:
包含非 Latin1 字符的 URI 会返回错误
此前,插入包含非 Latin1 字符的数据 URI(例如带有字节顺序标记 (BOM) 的 SVG 数据 URI)图像时,会导致 TinyMCE 抛出 InvalidCharacterError。发生此情况是因为 TinyMCE 使用 btoa 函数将数据 URI 编码为 base64,而 btoa 不支持 Latin1 范围之外的字符。该错误可能导致编辑器挂起或无法处理图像。
在 TinyMCE 8.5.0 中,数据 URI 现在会先使用 TextEncoder 进行编码,然后再传递给 btoa,从而确保正确处理非 Latin1 字符。包含此类字符的数据 URI 图像现在可以无误处理。
某些屏幕阅读器无法正确播报 alert 和 confirm 对话框
此前,TinyMCE 中的 alert 和 confirm 对话框无法被某些屏幕阅读器(如 NVDA)正确播报。这些对话框的 aria-label 属性为空,并且缺少指向对话框正文内容的适当 aria-labelledby 或 aria-describedby 引用。因此,屏幕阅读器用户无法听到这些对话框中显示的消息或问题,导致难以响应确认提示或理解警告消息。
在 TinyMCE 8.5.0 中,alert 和 confirm 对话框现在包含了指向对话框内容的正确 ARIA 属性。屏幕阅读器会在对话框打开时播报对话框消息,为所有用户提供无障碍体验。
特定选区会删除编辑器主体,引发问题
此前,通过从编辑器内部拖拽并在编辑器外部释放鼠标按钮来选择包含表格的内容,然后按 Delete 键,可能会将编辑器主体元素从 DOM 中移除。这会导致控制台报错,并使编辑器处于不可用状态,此后任何交互(例如聚焦或选择内容)都会产生更多错误。
在 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 已被弃用
从 TinyMCE 8.5.0 开始,spellchecker_language 选项已被弃用,并将在未来的主要版本中移除。请改用 content_language,该选项可同时设置默认内容语言和拼写检查器的校对语言。
有关 content_language 选项的信息,请参阅:内容本地化。