如何使Number.prototype.toLocaleString()在iOS VoiceOver中具备可访问性?
iOS VoiceOver 负数金额误读的无障碍修复方案
最近在做无障碍适配的时候踩了个坑:iOS的VoiceOver读取负数金额时,比如-$10,居然会直接读成“十美元”,完全忽略了负号的存在!
后来折腾了半天,终于找到正确的处理方式:要让VoiceOver准确识别负数金额,必须把普通的短横线替换成Unicode减号,也就是将格式改成$\u221210或者$−10。
这里还要提醒大家一个容易踩的坑:我们本来以为用JavaScript的i18n库做区域设置标准化格式化就能解决问题,但没想到默认生成的格式还是用的普通短横线,导致在VoiceOver里依然不具备无障碍性——除非手动把短横线替换成Unicode减号,不然像-$5这类字符串还是会被误读成“5美元”。
内容的提问来源于stack exchange,提问作者Damon
相关产品推荐
相关产品推荐

