排错指南

为什么 Google Docs 朗读不工作——以及唯一能修的扩展

如果你在 docs.google.com 上用 Chrome 自带 Read Aloud、Speechify、NaturalReader 读不出任何东西,或者读的是五次编辑之前的旧文——不是扩展坏了。2021 年 Google Docs 改用 Canvas 渲染,基于 HTML 的 TTS 工具再也看不到文字。本文讲清技术原因,告诉你怎么修。

2 分钟装好。无需账号,无需信用卡。

问题:Google Docs 里已经没有 HTML 文字了

打开任意 Google 文档,打开 DevTools 检查文档主体。本该是文字的地方,你看到一个 `<canvas>` 元素,没有任何可读文本。这就是所有 TTS 扩展失败的根本原因:

Google Docs 渲染到 Canvas,不再是 HTML

  • 2021 年 5 月之前,Google Docs 用 contenteditable DIV 渲染,所有 TTS 扩展都能遍历 DOM 找到文字。
  • 2021 年 Google 为了"更好的一致性和速度",切到了基于 Canvas 的新渲染器。文档是作为像素画到 `<canvas>` 上的,根本没有 HTML 文字。
  • Chrome 自带 Read Aloud、Speechify、NaturalReader、Edge Read Aloud——全部都是查 DOM 找文字。在 Canvas 渲染的文档上,它们看到的是空白页。
  • 有些工具退回辅助功能树(accessibility tree),但 Google 的 a11y 层只暴露当前视口内的内容。你听到开头第一屏,然后就静默了。

各工具实际表现

在 20 页 Google 文档 + Chrome 140 上测试(2026 年 4 月)

✗ Fails

Chrome 自带 Read Aloud

静默。集成的 Read Aloud 只在"识别为文章"的页面工作——在 docs.google.com 找不到任何文字。

✗ Fails

Speechify Chrome 扩展

读完前 20 行(来自辅助功能树视口)后停止。Speechify 论坛从 2022 年起这个 ticket 一直没关。

✗ Fails

NaturalReader Chrome 扩展

拒绝启动——扩展的文本检测器从 Canvas 返回空,直接弹"no content found"。

✗ Fails

Edge Read Aloud

同根因。要么读不出东西,要么读的是侧边菜单标签而非正文。

✓ Works

CastReader

朗读整个 Google 文档,带段落级高亮。直接 hook Google 的文档模型,不依赖 DOM——完全绕过 Canvas 屏障。

CastReader 怎么做到的

我们不读 Canvas,我们读数据源。

1

Hook Google Docs 的文档模型

Google Docs 把完整文档作为 JavaScript 模型保留在内存里(Canvas 就是从这个模型画出来的)。我们检测到 docs.google.com hostname,在页面加载时 attach 到这个模型。

2

按文档顺序提取文字

模型按真正的阅读顺序(不是视口顺序)暴露段落、标题、列表。我们从头到尾遍历——这意味着第 80 页最后一段和第 1 页第一段同样可达。

3

朗读 + 段落高亮

提取的文字喂给 TTS 管线。每段播放时,CastReader 用 overlay 层在 Canvas 上高亮对应区域。点击段落可跳转音频。全程本地运行——文档绝不离开你的浏览器。

如何朗读任意 Google 文档

1

装 CastReader

Chrome、Edge、Firefox 全免费。无需账号,无需信用卡。

2

打开 Google 文档

docs.google.com,任意你拥有或有查看权限的文档。不需要特殊准备。

3

点 CastReader 图标

1 秒内开始播放。段落级高亮跟随。自动滚动同步。

Google Docs 朗读常见问题

为什么 Chrome 自带 Read Aloud 在 Google Docs 上不工作?

因为 2021 年 5 月 Google 把 Google Docs 从 contenteditable DIV 迁移到了基于 Canvas 的渲染器。Chrome 的 Read Aloud——和所有基于 DOM 的 TTS 一样——是遍历 HTML 找文字,Canvas 页面上没东西可遍历。CastReader 是 hook Docs 的文档模型,所以不管页面怎么画都能用。

Speechify 能用于 Google Docs 吗?

部分能用。Speechify 可以读第一屏(通过辅助功能树),然后碰到虚拟化的 Canvas 区域就停下。如果你的文档超过大约 20 行,Speechify 会读开头然后静默。这是它论坛 2022 年以来的已知限制。

可以听我没有所有权的共享 Google 文档吗?

可以。只要 Google Docs 让你在浏览器里打开这个文档(任意角色——编辑、评论、查看),CastReader 就能朗读。不需要特殊权限。

在暗色模式、Classroom、Workspace 里能用吗?

能。CastReader 会 attach 到 Docs 模型,和主题或容器无关。独立的 docs.google.com、Google Classroom 嵌入、Google Workspace(前 G Suite)部署都可以。

Sheets 和 Slides 支持吗?

Google Sheets 和 Slides 用不同的文档模型。CastReader 当前自带 Docs 支持。Slides 支持在路线图上。Sheets 可能性较低——单元格逐个朗读是另一个 UX 问题。

支持评论和建议吗?

主文档正文会被朗读。评论线程和建议模式的修订会被跳过,让朗读保持干净——如果你想要,去 GitHub 上提 feature request。

支持什么语音和语言?

40+ 自然 AI 语音,覆盖英语、西语、法语、德语、日语、中文等。语言从文档内容自动识别——混合语言文档用主导语言。

想在手机上听怎么办?

Chrome 里开始播放后点"发送到手机",音频通过 Telegram 流到手机——不用装 App,不用配置同步。

有试用期或每日限额吗?

完全免费,无每日限额,无需注册,所有语音全开放。不像 Speechify 每年 139 美元或 NaturalReader 的付费墙。

别再和 Canvas 对抗。装那个真正能读的。

装一次。打开任意 Google 文档。点 ▶。听。