.icon { user-select: none; }
<button aria-label='关闭'><svg aria-hidden='true'>...</svg></button>

用户选中按钮上的图标复制,粘贴出来是一个 U+E600 私用区字符,读屏软件念成未定义,站内搜索也搜不到。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:图标字体把图标塞进 Unicode 私用区,本质还是文字,会被选中、被朗读、被翻译。加 aria-hidden 只能挡住读屏,挡不住复制。

围绕「图标字体复制」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

处理上按这个顺序:交互按钮里的图标换成内联 SVG 并加 aria-hidden;必须保留字体的给图标加 user-select: none 减少误选;按钮本身补 aria-label 让读屏念出功能名。

确认没问题再收工,选中按钮复制不再出现乱码,读屏软件念出的是按钮名称。

作者 9823189