# Canva AI替代文字：给双栏讲义补图片描述，导出真正按顺序朗读的PDF

本包是apizt原创教学材料。目标SaaS未登录、未运行，未发邮件、未修改云端记录。原生文件和结果为作者本地确定性参考，官方截图仅为来源示例。

1. Canva AI替代文字练习使用原创两页双栏讲义。信息图和示意图要说明传递的意义，纯装饰线条不应喧宾夺主。源PDF、替代文本和reading-order-contract.csv都是可下载教材。

2. 在Canva选择图片，打开Alternative text查看可用AI建议。按实际画面修订，不能编出图片没有的信息；官方示例图只演示入口，本题未运行Canva。

3. 讲义顶部细横线只是装饰分隔，不承担图表数据或房间指引。对这类对象标记decorative，避免读屏重复朗读；两幅有意义的柱图和地图必须保留描述，不能为省事全标装饰。作者PDF以Artifact标记分隔线，图表则有真实Figure和alt。

4. 在Accessibility设置真实标题语义和文档语言。H1/H2不能只靠字体大小判断；本地作者tagged PDF有真实StructTreeRoot与MCID关联，但它不是Canva导出或WCAG认证。

5. 在Layers中按左栏后右栏调整，导出时选择Match reading order to layers。查看本包native-structure.json，里面按页列出真实标签树和关联MCID；这不是从截图推测的结构。

6. 下载PDF选择Digital，不勾Flatten。作者另做flattened-counterexample.pdf：整页真实栅格化，没有结构树与可提取正文，用来对比扁平化会丢掉什么。

7. 用Acrobat或可用读屏复查阅读顺序、标题和图片描述。官方说明macOS Preview/Safari可能跳读，不能仅凭视觉正常就通过。本包只完成结构检查与渲染，没有跑辅助技术朗读。 运行verify.py检查每页标签、MCID、语言、替代文字和扁平反例。再用自己的真实导出补完读屏验收列，保留尚未实测的项目。

## 本地验证

运行 `python3 verify.py`。验证器在临时目录复算教材，不覆盖用户输入。原生PDF结构/页数检查需要pypdf（缺少时运行 `python3 -m pip install pypdf`）；其余脚本使用Python标准库。若本题有单独程序，命令见prompts.md；不含凭据或账号。

## 官方来源

- Canva官方：Accessibility https://www.canva.com/accessibility/
- Canva官方：Create/edit alt text https://www.canva.com/en_au/help/using-alt-text/?query=alt+text
- Canva官方：PDF accessibility https://www.canva.com/en_au/help/pdf-accessibility-features/
