主播
节目简介
来源:小宇宙
Google I/O 2026 上,Chrome 团队推了一个很容易被低估的新 Web 平台特性:HTML-in-Canvas。
很多人第一眼看到这个名字,脑子里会冒出一句话:哦,不就是终于可以在 canvas 里写 HTML 了吗?
这理解不能说错,但太浅了。
HTML-in-Canvas 真正重要的地方,不是“Canvas 能不能塞一个 div”。它动的是前端一条存在了很多年的边界:DOM 负责语义、交互和浏览器能力,Canvas / WebGL / WebGPU 负责像素、图形和 GPU 管线。过去这两套世界像两个国家,边境线画得很硬。你要 DOM 的可访问性、复制、查找、翻译、表单和 DevTools,就老老实实待在 DOM 里。你要 shader、3D、游戏、复杂画布和极致视觉控制,就进 canvas,但很多浏览器能力要自己重造,或者直接放弃。
HTML-in-Canvas 的变化是:浏览器开始给这两个国家修桥。
说白了,它不是让 Canvas 变成 DOM,也不是让 DOM 消失。它更像是让真实 DOM 变成图形管线的一种输入。
这就有意思了。
先说它到底是什么
按 Chrome 官方介绍,HTML-in-Canvas 是一个实验性 API,目前已经进入 origin trial。它允许你把 DOM 内容直接绘制进 2D canvas,或者作为 WebGL / WebGPU texture 使用,同时保留交互、可访问性和浏览器内建能力。
人话版是:
你可以写一个真实的 HTML 组件,比如一个表单、一段富文本、一个设置面板、一个复杂卡片。它不是截图,不是手搓像素,不是用 JS 模拟 CSS。它仍然是 DOM。然后你可以把这个 DOM 的渲染结果画进 canvas,甚至贴到一个 3D 物体表面上。
更关键的是,它还尽量保留浏览器能力。
文本可以被选中,内容可以被复制,页面查找能找到,屏幕阅读器能读,浏览器翻译能处理,DevTools 能检查,扩展也可能继续工作。
以前 canvas 应用最尴尬的地方就在这里:画面看起来很高级,但对浏览器来说经常只是一张大图。用户看到的是文字,浏览器看到的是像素。用户以为这是界面,辅助技术可能只看到一块空白。
这就像你开了一家装修很豪华的店,但门口没有门牌,消防图也没有,导盲系统也进不去。普通人看着炫,真到基础能力上,全是坑。
HTML-in-Canvas 要补的,就是这个坑。
过去为什么这么难?
前端一直有两套 UI 世界。
第一套是 DOM 世界。
DOM 的好处不是“能写 div”这么简单。它真正值钱的是浏览器几十年积累下来的能力:文本布局、换行、国际化、双向文字、表单控件、焦点管理、选择复制、右键菜单、无障碍树、页面查找、浏览器翻译、自动填充、缩放、暗色模式、扩展、DevTools。
这些东西你平时不觉得牛,是因为浏览器替你兜底太久了。
第二套是 Canvas / WebGL / WebGPU 世界。
它的好处也很明显:你可以直接控制像素,进 GPU,做 3D,跑 shader,做游戏,做白板,做设计工具,做复杂可视化。Figma、Miro、Google Docs 这类复杂应用,很多地方都离不开这种底层图形能力。
问题是,这两套世界以前很难同时拿。
你用 DOM,就很难把一个真实按钮贴到 3D 模型上,然后让它被玻璃折射、被 shader 扭曲、跟着模型旋转。
你用 Canvas,就要开始重造很多浏览器已经做好的东西。比如文本换行、光标、输入框、复制粘贴、焦点、可访问性。重造到最后,你会怀疑人生:我不是做一个 3D 面板吗,怎么突然在写半个浏览器?
这就是 HTML-in-Canvas 的背景。
大多数人以为前端缺的是更炫的渲染 API。但真相是,前端真正缺的是一条能把“语义 UI”和“图形管线”接起来的路。
它怎么工作?
HTML-in-Canvas 的核心设计可以拆成几个部分。
第一,在
很多人第一眼看到这个名字,脑子里会冒出一句话:哦,不就是终于可以在 canvas 里写 HTML 了吗?
这理解不能说错,但太浅了。
HTML-in-Canvas 真正重要的地方,不是“Canvas 能不能塞一个 div”。它动的是前端一条存在了很多年的边界:DOM 负责语义、交互和浏览器能力,Canvas / WebGL / WebGPU 负责像素、图形和 GPU 管线。过去这两套世界像两个国家,边境线画得很硬。你要 DOM 的可访问性、复制、查找、翻译、表单和 DevTools,就老老实实待在 DOM 里。你要 shader、3D、游戏、复杂画布和极致视觉控制,就进 canvas,但很多浏览器能力要自己重造,或者直接放弃。
HTML-in-Canvas 的变化是:浏览器开始给这两个国家修桥。
说白了,它不是让 Canvas 变成 DOM,也不是让 DOM 消失。它更像是让真实 DOM 变成图形管线的一种输入。
这就有意思了。
先说它到底是什么
按 Chrome 官方介绍,HTML-in-Canvas 是一个实验性 API,目前已经进入 origin trial。它允许你把 DOM 内容直接绘制进 2D canvas,或者作为 WebGL / WebGPU texture 使用,同时保留交互、可访问性和浏览器内建能力。
人话版是:
你可以写一个真实的 HTML 组件,比如一个表单、一段富文本、一个设置面板、一个复杂卡片。它不是截图,不是手搓像素,不是用 JS 模拟 CSS。它仍然是 DOM。然后你可以把这个 DOM 的渲染结果画进 canvas,甚至贴到一个 3D 物体表面上。
更关键的是,它还尽量保留浏览器能力。
文本可以被选中,内容可以被复制,页面查找能找到,屏幕阅读器能读,浏览器翻译能处理,DevTools 能检查,扩展也可能继续工作。
以前 canvas 应用最尴尬的地方就在这里:画面看起来很高级,但对浏览器来说经常只是一张大图。用户看到的是文字,浏览器看到的是像素。用户以为这是界面,辅助技术可能只看到一块空白。
这就像你开了一家装修很豪华的店,但门口没有门牌,消防图也没有,导盲系统也进不去。普通人看着炫,真到基础能力上,全是坑。
HTML-in-Canvas 要补的,就是这个坑。
过去为什么这么难?
前端一直有两套 UI 世界。
第一套是 DOM 世界。
DOM 的好处不是“能写 div”这么简单。它真正值钱的是浏览器几十年积累下来的能力:文本布局、换行、国际化、双向文字、表单控件、焦点管理、选择复制、右键菜单、无障碍树、页面查找、浏览器翻译、自动填充、缩放、暗色模式、扩展、DevTools。
这些东西你平时不觉得牛,是因为浏览器替你兜底太久了。
第二套是 Canvas / WebGL / WebGPU 世界。
它的好处也很明显:你可以直接控制像素,进 GPU,做 3D,跑 shader,做游戏,做白板,做设计工具,做复杂可视化。Figma、Miro、Google Docs 这类复杂应用,很多地方都离不开这种底层图形能力。
问题是,这两套世界以前很难同时拿。
你用 DOM,就很难把一个真实按钮贴到 3D 模型上,然后让它被玻璃折射、被 shader 扭曲、跟着模型旋转。
你用 Canvas,就要开始重造很多浏览器已经做好的东西。比如文本换行、光标、输入框、复制粘贴、焦点、可访问性。重造到最后,你会怀疑人生:我不是做一个 3D 面板吗,怎么突然在写半个浏览器?
这就是 HTML-in-Canvas 的背景。
大多数人以为前端缺的是更炫的渲染 API。但真相是,前端真正缺的是一条能把“语义 UI”和“图形管线”接起来的路。
它怎么工作?
HTML-in-Canvas 的核心设计可以拆成几个部分。
第一,在
show = true, 100);
timer = setTimeout(() => show = false, $event.detail.toast.timeout);
"
>
加入我们的 Discord
与播客爱好者一起交流
扫描微信二维码
添加微信好友,获取更多播客资讯