<span class='divider' aria-hidden='true'></span> <svg aria-hidden='true' focusable='false'>…</svg> <!-- 装饰元素一律不进可访问树 -->
读屏读到卡片之间的分隔斜线时念出 slash,读到箭头念 right arrow,一段三行的列表被这些符号拆成七八段,正文反而听不清。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,装饰性元素没有标记隐藏,读屏把它们当成有意义的文本或图形逐个播报。这类元素数量多、出现频繁,朗读节奏被切得很碎,用户很难抓住正文。
这次卡住的地方就在「装饰元素朗读」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
处理上按这个顺序:纯装饰的图标、分隔线、背景图形统一加 aria-hidden 属性,让读屏直接跳过;图标字体生成的符号改用伪元素绘制,别让它进入可访问树;确实承载信息的图形保留说明文字,只隐藏旁边重复的那一份。
改完只确认一件事:读屏连续听三段列表,只念正文文字,中间不再冒出符号名称。
