三个单选按钮包在 div 里,读屏只念选项文字,念完不知道这组是在选配送方式还是支付方式,只能猜。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,一组单选用 div 拼起来,没有 fieldset 也没有 legend,组名只写在旁边的一个 span 里,跟自己这组控件之间没有任何语义关联,读屏只能一项一项地念。
「单选组语义」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
<fieldset><legend>配送方式</legend> <label><input type='radio' name='ship'>次日达</label> </fieldset>
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
具体做法是,用 fieldset 把整组选项包起来,legend 里写清楚这一组在问什么;每个选项都保留自己的标签和名称,别拿 div 硬拼出来;组名不要在每一项的 label 里再重复一遍,读起来很啰嗦。
最后用这个标准收尾,读屏进入这个组时先念组名,再念每个选项和它的选中状态。
