这些是 Tiny Cloud 和 TinyMCE Enterprise 的发行说明。如需了解 TinyMCE 最新社区版本的信息,请参阅 TinyMCE Changelog。
概述
TinyMCE 8.1 于 2025 年 9 月 17 日星期三发布,适用于 TinyMCE Enterprise 和 Tiny Cloud。本发行说明概述了 TinyMCE 8.1 的变化,包括:
新增 Premium 插件
配套的 Premium 插件变更
改进
变更
错误修复
已弃用
已知问题
新增 Premium 插件
以下新增 Premium 插件与 TinyMCE 8.1 一同发布。
Full Page HTML
新的 Premium 插件 Full Page HTML 可全面控制文档元数据和属性。它允许用户通过直观的对话框界面编辑 HTML 文档元数据,如标题、关键词和描述。与 code 插件结合使用时,它还会在源代码视图中展示完整的 HTML 结构,包括 <head>、<body> 以及各种 meta 标签。
有关 Full Page HTML 插件的信息,请参阅 Full Page HTML。
配套的 Premium 插件变更
以下 Premium 插件更新与 TinyMCE 8.1 一同发布。
拼写检查器
TinyMCE 8.1 版本包含配套发布的 Spell Checker premium 插件。
Spell Checker Premium 插件包含以下修复。
若文档的第一个元素为 noneditable,拼写检查可能会创建无效的选择范围。
此前,当文档的第一个元素被设置为 contenteditable="false" (CEF) 元素时,使用 TinyMCE 拼写检查器全选内容可能导致无效的选择状态。此问题阻止了对整个内容选区的删除,形成了一个干扰正常编辑工作流的边缘情况。
为解决此问题,TinyMCE 现在会在此类场景中,于初始 CEF 元素之前插入一个临时隐藏元素。这一调整确保全选范围有效,并能按预期删除。
有关 Spell Checker 插件的信息,请参阅:Spell Checker。
Media Optimizer (Powered by Uploadcare)
TinyMCE 8.1 版本包含配套发布的 Media Optimizer (Powered by Uploadcare) premium 插件。
Media Optimizer (Powered by Uploadcare) 包含以下修复。
图像预览有时会显示来自 srcset 的错误图像。
在早期版本的 Media Optimizer premium 插件中,图像效果基于主 src 而非当前生效的 srcset URL 应用,这导致从 srcset 中选择显示的图像时出现差异。这导致了调整预览(从主 src 渲染)与编辑器中显示的图像(从 srcset URL 渲染)不匹配,从而在模糊或调整大小等效果上产生了不同的视觉结果。
TinyMCE 8.1 通过使用 currentSrc 属性生成预览解决了此问题,确保预览和编辑器图像引用同一资源。因此,预览图像与编辑器中的图像现在保持一致。
有关 Media Optimizer Powered by Uploadcare 插件的信息,请参阅:Media Optimizer (Powered by Uploadcare)。
Accessibility Checker
TinyMCE 8.1 版本包含配套发布的 Accessibility Checker premium 插件。
Accessibility Checker 包含以下改进。
alt 文本长度错误消息现在显示当前和最大字符数
在早期版本的 Accessibility Checker 中,alt 文本长度验证错误仅显示当前字符数,例如“当前 151 个字符”,而未指明允许的最大长度。这导致对用户的指引不清晰,并对所有依赖长度验证的图像规则(I1–I4)的用户体验产生了负面影响,使其与无障碍最佳实践不一致。
在 TinyMCE 8.1 中,Accessibility Checker 的错误消息已更新,可同时显示当前和最大字符数,例如:“151 个字符(最多允许 150 个)。”此改进提供了清晰、可操作的错误消息,符合无障碍指南,并减少了所有受影响规则中的用户困惑。
在图像修复对话框中,从现有的 alt、aria-label 和 title 属性自动建议 alt 文本,并带有优先级回退机制。
在早期版本的 Accessibility Checker 中,图像修复对话框仅提议来自 alt 的值,忽略了 aria-label 和 title,这迫使用户手动输入,拖慢了无障碍修复速度,并增加了描述不一致的风险。
TinyMCE 8.1 现在可自动建议 alt 文本,其采用基于优先级的回退机制,依次检查现有属性 aria-labelledby、aria-label、alt 和 title,若均不存在则将该字段留空。这一功能可通过利用现有的无障碍属性,帮助用户更快、更准确地为图像添加标签,提高了修复效率和一致性。
有关 Accessibility Checker 插件的信息,请参阅:Accessibility Checker。
Revision History
TinyMCE 8.1 版本包含 Revision History 高级插件的配套版本。
Revision History 包含以下修复与改进。
同一用户可能获得两个不同的默认头像
在 Revision History 的先前版本中,同一用户可能会获得两个不同的默认头像。这种不一致性会导致单个用户看起来像两位不同的贡献者,从而在查看修订日志时造成混淆。
在 TinyMCE 8.1 中,该问题已得到解决:每位用户现在始终会被分配相同的默认头像,从而提高了修订历史显示的准确性和一致性。
默认头像现基于 user_id 生成一致的颜色
默认头像现在统一使用 user_id 进行生成,确保用户头像获得可靠且可预测的颜色。这一改进在修订历史中识别贡献者时提供了清晰的视觉一致性,从而提升了用户体验。
有关 Revision History 插件的信息,请参阅:Revision History。
Comments
TinyMCE 8.1 版本包含 Comments 高级插件的配套版本。
Comments 高级插件包含以下修复与改进。
默认头像生成不一致
此前,TinyMCE 在 Comments 插件中生成默认头像时存在不一致现象。没有头像的用户在提及下拉列表中会看到相同的占位符头像,而同一用户在其他场景下可能获得不同的默认头像。这种不一致导致用户难以区分,在某些情况下甚至会让单个用户看起来像两位不同的人。在 8.1 版本中,该问题已得到修复,默认头像现可基于 user_id 稳定地生成一致的颜色。这确保了同一用户始终拥有相同的默认头像,从而提高了清晰度并提供了更可靠的用户体验。
插入 @Mention 时 Comments 下拉菜单的键盘导航功能改进
此前,在 Comments 卡片内输入 @ 以打开提及下拉列表时,不支持 Shift+Enter 组合键。例如,当输入 @ 并导航至选中 Comment 卡片中的某个用户时,按下 Shift+Enter 无法将 @mention 插入到评论内容的 <textarea> 中。
在 TinyMCE 8.1 中,该问题已得到解决:Shift+Enter 的处理方式与常规 Enter 键相同,从而确保在评论卡片内选择 @mentions 下拉列表项时,键盘交互保持一致且可预测。
有关 Comments 插件的信息,请参阅:Introduction to Tiny Comments。
Mentions
TinyMCE 8.1 版本包含 Mentions 高级插件的配套版本。
Mentions 高级插件包含以下改进。
无头像用户现可在提及下拉列表中显示头像占位符
此前,提及下拉列表未能妥善处理用户缺少个人资料头像的情况,导致用户界面视觉上不一致且不清晰。这影响了可用性,使用户更难区分无头像用户与个人资料信息不完整或加载失败的用户。
在 TinyMCE 8.1 中,该问题已得到解决。现在,TinyMCE 会为无头像用户提供默认头像占位符,从而确保在使用提及下拉列表时获得一致且完善的体验。
有关 Mentions 插件的信息,请参阅:Mentions。
AI Assistant
TinyMCE 8.1 版本包含 AI Assistant 高级插件的配套版本。
AI Assistant 包含以下修复。
AI Assistant 插件对话框预览现遵循 content_security_policy 编辑器选项
此前,AI Assistant 插件对话框预览未遵循 content_security_policy 编辑器选项,导致对图像等外部资源的加载控制受限。
在 TinyMCE 8.1 中,对话框预览现可在提供配置时应用设定的内容安全策略,从而确保外部资源根据编辑器的安全设置受到限制。这一改进提高了一致性、增强了安全性,并使插件与 TinyMCE 中用户定义的策略保持一致。
有关 AI Assistant 插件的信息,请参阅:AI Assistant;有关 content_security_policy 选项的信息,请参阅 Content Security Policy。
建议编辑
TinyMCE 8.1 版本包含了配套的 建议编辑 高级插件版本。
建议编辑 包含以下修复和改进。
为建议编辑插件添加了键盘导航功能
建议编辑插件的初始版本不支持键盘导航,这限制了依赖键盘交互的用户的可访问性。在不使用鼠标的情况下,很难在建议编辑侧边栏和卡片中移动并与之交互。为了提高可用性和可访问性,在建议编辑插件中实现了键盘导航功能。用户现在可以使用键盘高效地导航并与插件进行交互。
空编辑器操作有时会显示为修改,而不是添加/删除
以前,空编辑器操作有时会错误地显示为修改,而不是添加或删除。这种行为会引起混淆,因为看起来为空的编辑器仍可能显示“已修改”状态。
为解决此问题,现在不再发送空内容。当编辑器为空或变为空时,整个状态现在正确地表示为添加或删除。这一改进确保了更改跟踪更加清晰准确,减少了编辑器不包含内容时的混淆。
有关 建议编辑 插件的信息,请参阅:建议编辑。
改进
TinyMCE 8.1 还包含以下改进:
editor.getContent() 现在包含 indent 和 entity_encoding 属性以控制 HTML 格式
以前,使用 TinyMCE getContent API 时,无法在调用期间覆盖 indent 和 entity_encoding 等选项。编辑器总是应用其初始配置,这限制了检索内容时的灵活性。这意味着集成者受限于初始化时设置的默认值,无法在每次调用时调整格式行为。
在 TinyMCE 8.1 中,getContent API 得到了增强,支持对 indent 和 entity_encoding 进行每次调用的覆盖。现在,在调用 getContent 时可以直接指定这些选项,而不考虑编辑器的默认配置。这一改进使开发人员能够更好地控制输出格式,从而针对不同的用例进行定制的内容检索。
getContent API 以不同的格式选项检索内容。// 禁用缩进
tinymce.get(0).getContent({ indent: false });
// 使用命名实体进行序列化
tinymce.get(0).getContent({ indent: false, entity_encoding: 'named' });
// 使用数字实体进行序列化
tinymce.get(0).getContent({ indent: false, entity_encoding: 'numeric' });
// 将核心实体序列化为命名实体,其他实体序列化为数字实体
tinymce.get(0).getContent({ indent: false, entity_encoding: 'named+numeric' });
// 输出原始字符
tinymce.get(0).getContent({ indent: false, entity_encoding: 'raw' });或
配置编辑器以使用命名实体编码并禁用缩进的示例。tinymce.init({
selector: "textarea",
entity_encoding: 'named', // 或 'numeric' 或 'raw'
indent: false, // 或 true
});有关 getContent API 的更多信息,请参阅 getContent()。
当选择项不在屏幕上时,点击不可选择的元素不再滚动到选择项
以前,存在一个问题:当点击编辑器的水平滚动条这一“不可选择”的 UI 元素时,会隐式地聚焦编辑器,将插入点置于内容的开头,然后垂直滚动文档到该插入点位置,导致页面从用户的当前视图中滚动开。
TinyMCE 8.1 解决了这个问题。现在,当用户点击不可选择的元素(如滚动条)时,编辑器会避免获取焦点,从而防止意外的垂直滚动。
变更
TinyMCE 8.1 还包含以下变更:
工具提示现在可以在悬停时保持打开状态
以前,当光标从工具栏按钮移动到工具提示时,工具提示会消失,这使用户无法保持工具提示打开以供参考。这种行为影响了可访问性,使依赖工具提示进行扩展阅读或导航的用户感到困难。在 8.1 中,TinyMCE 已更新,允许工具提示接受鼠标事件。这确保了工具提示在悬停时保持可见,通过让用户保持工具提示打开直到他们将光标移开,从而提高了可访问性和可用性。
这一改进符合 WCAG 2.1 成功标准 1.4.13:悬停或聚焦时的内容(AA 级),特别是“可悬停”的要求。
错误修复
TinyMCE 8.1 还包含以下错误修复:
NVDA 会多次宣布 iframe_aria_text
此前,在某些浏览器中,当使用 NVDA 或 JAWS 等屏幕阅读器时,iframe_aria_text 要么完全不播报,要么被播报两次,这给依赖辅助技术的用户带来了不一致且可能令人困惑的体验。为解决此问题,我们通过调整标签的应用方式统一了行为:
在 Firefox 中,现在直接在 iframe 元素上设置
title属性,而不使用 body 上的aria-label。而在其他浏览器中,
aria-label被应用到 iframe 内部的 body 上,同时不会在 iframe 上设置title属性。
因此,iframe_aria_text 现在在所有支持的浏览器中都能一致地被播报一次。
欲了解更多信息,请参阅:iframe_aria_text。
使用 Command (CMD) + Backspace 不会保留行内格式
此前,在行末使用 Command (CMD) + Backspace 会删除整行且不保留行内格式,这与三击选中该行后按 Backspace 的行为不同。这种不一致导致了混淆,因为不同的删除方式会产生不同的结果。
在 8.1 版本中,Command (CMD) + Backspace 的行为已更新,以与其他删除方式保持一致,从而确保行内格式得以保留。
在 Firefox 中无法使用键盘在 contenteditable="true" 的元素之间导航
在 TinyMCE 8.1 中,存在一个 Firefox 特有的限制,导致使用键盘导航时,光标无法在可编辑元素之间移动。光标会被困在 figcaption 内部,从而阻断了使用向下箭头键的垂直导航,并阻止用户移动到下一个元素。
此问题干扰了依赖键盘交互的 Firefox 用户的无障碍访问和编辑流程。为解决此问题,我们引入了一个新的光标导航模块,并将其集成到了 Firefox 特定的箭头键处理逻辑中。该解决方案通过编程方式将光标从被阻断的状态中移出,从而绕过了一个长期存在的 Firefox bug,确保了在可编辑元素间进行更流畅、一致的键盘导航。
选中 figure 后,光标移动不正确
在 TinyMCE 的先前版本中,选中 figure 后使用 TAB 键将焦点移至 figcaption 元素时,会导致编辑器进入一种异常状态:光标虽显示在 figcaption 内,但键入时不会产生任何可见内容。此问题导致用户无法仅使用键盘编辑 figcaption,迫使他们依赖鼠标或其他定点设备进行更改。
在 TinyMCE 8.1 中,此 bug 已修复,确保现在可以仅通过键盘导航无缝编辑 figcaption,从而提高了无障碍访问性和整体编辑效率。
使用 & 编码插入的链接现在会在插入前解码为 &
此前,将包含编码和号 & 的 URL 粘贴到 TinyMCE 中时,编码值会被保留,导致链接插入到内容中时出现双重编码。例如,一个类似如下的粘贴链接:
https://example.com/search?&query=example
在编辑器源代码中会显示为:
https://example.com/search?&amp;query=example
这在打开此类链接时会导致问题,因为 URL 会变为无效。在 8.1 版本中,TinyMCE 现在会在插入链接前自动将 & 解码回 &,从而确保粘贴的 URL 在编辑器和源代码中都保持有效和可用。
已弃用
TinyMCE 8.1 包含以下弃用项:
content_css_cors 配置选项已被弃用
从 TinyMCE 8.1 开始,content_css_cors 配置选项已被标记为弃用。它将在即将发布的 TinyMCE 9.0 版本中被完全移除。作为替代,我们建议改用 crossorigin。
已知问题
本节描述了 TinyMCE 8.1 用户可能遇到的问题以及这些问题的可能变通方法。
TinyMCE 8.1 中有一个已知问题。
Full Page HTML 插件与 Suggested Edits 和 Revision History 不兼容
Full Page HTML 插件允许设置文档属性和元数据。然而,这些属性和元数据无法被 Suggested Edits 和 Revision History 插件识别,并且在这些插件中执行的操作会覆盖由 Full Page HTML 插件设置的值。
变通方法:请避免将 Full Page HTML 插件与 Suggested Edits 或 Revision History 插件结合使用,以防止文档元数据和属性的数据丢失。