这是 Tiny Cloud 和 TinyMCE Enterprise 的发行说明。有关 TinyMCE 最新社区版本的信息,请参阅 TinyMCE 更新日志。
概述
TinyMCE 8.1 于 2025年9月17日(星期三)面向 TinyMCE Enterprise 和 Tiny Cloud 发布。本发行说明概述了 TinyMCE 8.1 的变更内容,包括:
新的 Premium 插件
配套的 Premium 插件变更
改进
变更
Bug 修复
已弃用
已知问题
新的 Premium 插件
以下新的 Premium 插件与 TinyMCE 8.1 同步发布。
Full Page HTML
新的 Premium 插件 Full Page HTML 可全面控制文档元数据和属性。它支持用户通过直观的对话框界面编辑 HTML 文档元数据,例如 title、keywords 和 description。与 code 插件结合使用时,它还可在源代码视图中显示完整的 HTML 结构,包括 <head>、<body> 和各种 meta 标签。
有关 Full Page HTML 插件的信息,请参阅 Full Page HTML。
配套的 Premium 插件变更
以下 Premium 插件更新与 TinyMCE 8.1 同步发布。
Spell Checker
TinyMCE 8.1 版本包含 Spell Checker Premium 插件的配套发布。
Spell Checker Premium 插件包含以下修复。
如果文档的第一个元素是 noneditable,拼写检查可能会创建无效选区。
此前,当文档的第一个元素设置为 contenteditable="false" (CEF) 元素时,使用 TinyMCE spellchecker 全选内容可能会导致无效的选区状态。此问题导致无法删除整个内容选区,从而产生干扰正常编辑工作流的边缘案例。
为解决此问题,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 渲染)不匹配,从而对 blur 或 resize 等效果产生不同的视觉结果。
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)的体验,与 accessibility 最佳实践不一致。
在 TinyMCE 8.1 中,Accessibility Checker 的错误消息已更新,可同时显示当前字符数和最大字符数,例如:“151 个字符(允许最多 150 个字符)。”此改进提供了清晰、可操作的错误消息,符合 accessibility 指引,并减少了所有受影响规则下的用户困惑。
在图像修复对话框中,自动建议来自现有 alt、aria-label 和 title 属性的 alt 文本,并具有优先级回退机制。
在 Accessibility Checker 的先前版本中,图像修复对话框仅提供来自 alt 的值,忽略 aria-label 和 title,这迫使手动输入,延缓了 accessibility 修复,并增加了描述不一致的风险。
TinyMCE 8.1 现在会使用基于优先级的回退机制自动建议 alt 文本,按顺序检查现有属性 aria-labelledby、aria-label、alt 和 title,如果都不存在则留空。这确保了用户可以通过利用现有无障碍属性更快、更准确地标记图像,提高修复效率和一致性。
有关 Accessibility Checker 插件的信息,请参阅:Accessibility Checker。
修订历史
TinyMCE 8.1 版本包含 修订历史 高级插件的配套版本。
修订历史 包含以下修复和改进。
同一用户可能会收到两个不同的默认头像
在旧版本的修订历史中,同一用户可能会收到两个不同的默认头像。这种不一致会导致一个用户看起来像两个不同的贡献者,在查看修订日志时造成混淆。
在 TinyMCE 8.1 中,此问题已解决,现在每个用户始终会被分配相同的默认头像,提高了修订历史显示的准确性和一致性。
默认头像现在会根据 user_id 生成一致的颜色
默认头像现在使用 user_id 一致地生成,确保用户获得可靠且可预测的头像颜色。这一改进通过在识别修订历史中的贡献者时提供清晰的视觉一致性,增强了用户体验。
有关 修订历史 插件的信息,请参阅:修订历史。
Comments
TinyMCE 8.1 版本包含 Comments 高级插件的配套版本。
Comments 高级插件包含以下修复和改进。
默认头像生成不一致
此前,TinyMCE 在 Comments 插件中生成默认头像的方式不一致。没有头像的用户在提及下拉列表中看到相同的占位头像,而同一用户在其他上下文中可能会收到不同的默认头像。这种不一致使区分用户变得困难,并且在某些情况下,会让一个用户看起来像两个不同的人。在 8.1 版本中,此问题已修复,默认头像现在根据 user_id 以稳定的颜色一致地生成。这确保了同一用户始终拥有相同的默认头像,提高了清晰度并提供更可靠的用户体验。
插入 @Mention 时 Comments 下拉列表中的键盘导航改进
此前,在 Comments 卡片内输入 @ 打开提及下拉列表时,不支持 Shift+Enter 组合键。例如,当输入 @ 并导航到选定评论卡片中的用户后,按下 Shift+Enter 不会将 @mention 插入评论正文的 <textarea> 中。
在 TinyMCE 8.1 中,此问题已解决,Shift+Enter 的处理方式与普通 Enter 键相同,确保在评论卡片的 @mentions 下拉列表中选择项目时的键盘交互一致且可预测。
有关 Comments 插件的信息,请参阅: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选项的信息,请参阅内容安全策略。
建议编辑
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 级),特别是“可悬停”要求。
Bug 修复
TinyMCE 8.1 还包含以下 Bug 修复:
NVDA 会多次播报 iframe_aria_text
此前,在某些浏览器中,使用NVDA或JAWS等屏幕阅读器时,iframe_aria_text要么完全不被播报,要么被播报两次,导致依赖辅助技术的用户遇到不一致且可能令人困惑的行为。为解决此问题,现已通过调整标签的应用方式实现行为标准化:
在Firefox中,
title属性现在直接设置在iframe元素上,且不使用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,提高了可访问性和整体编辑效率。
使用&编码插入的链接将在插入前解码为&
此前,将包含编码ampersand &的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插件与建议编辑及修订历史的不兼容性
Full Page HTML插件可设置文档属性和元数据。然而,建议编辑和修订历史功能无法获取这些设置,且在这些插件中执行的操作将覆盖Full Page HTML插件设置的值。
解决方法:避免同时使用Full Page HTML插件与建议编辑或修订历史插件,以防止文档元数据和属性丢失。