用读屏软件打开通知邮件,会被念成「五行三列表格」,用户要听十几遍「第几行第几列」才能听到正文。日志里能对上时间点,这种反而好排。

邮件布局全靠 table,但没有标 role=presentation,辅助技术把它当成数据表来播报。邮件里又没有 lang 声明,发音规则也会退到默认。这一点先确认清楚,后面就不用反复试。

<html lang='zh-CN'>
<table role='presentation' cellpadding='0' cellspacing='0'>

这次卡住的地方就在「邮件模板无障碍」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

处理上按这个顺序:所有纯布局表格加 role=presentation,数据表保留原语义;html 标签补 lang 属性,正文图片补 alt;开系统读屏把整封邮件听一遍,确认没有多余的表格播报。

结果对不对很好判断,读屏软件直接朗读正文,不再逐行逐列播报布局表格。

作者 9823189