首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >屏幕阅读器没有正确读取价格(“47.49美元”)

屏幕阅读器没有正确读取价格(“47.49美元”)
EN

Stack Overflow用户
提问于 2016-06-14 12:53:07
回答 2查看 4K关注 0票数 5

我试图让屏幕阅读器(NVDA)将我的币值(美元)47.49美元解读为"47美元49美分“,但屏幕阅读器将我的货币价值解读为”美元4749美元“。

代码语言:javascript
复制
<div class="perVendorCarDetails">
  <span class="carCurrencySymbol">$</span> 
  <span class="carPriceDollar">38</span>           
  <span class="carPriceDot">.</span> 
  <span class="carPriceCents">57</span>
</div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-16 02:50:11

NVDA/Firefox说你的例子是“美元38点57”。这真是不太好。

如果你把它编码成<p>$38.57</p>,它就会被读为“美元三十八点五七”。尽管这看起来/是令人不快的,但这正是NVDA用户所期望的。

例如,如果我去亚马逊( Amazon ),我只需花1.29美元就能得到“美元一点二九”。塔吉特通过了一场广受关注的无障碍诉讼,聘请了一家无障碍咨询公司,组建了一个无障碍团队,并对屏幕阅读器进行了广泛的测试,宣布售价39.99美元,名为“$399-9”。

因此,你可能想做的最重要的事情是,而不是,当他们想花钱的时候,他们会迷惑NVDA用户。以一种不同于他们预期的方式提出美元价值可以做到这一点。

但是,如果您坚决认为必须发生这种情况,则可以使用aria-hidden对NVDA隐藏不喜欢的值,然后可以将您想要的短语写到页面后面,通过离屏CSS技术将其隐藏起来,使其不受其他用户的影响。

您的新HTML:

代码语言:javascript
复制
<p aria-hidden="true">
  $38.57
</p>
<span>38 dollars and 57 cents</span>

显然,您需要将美元金额分解为两个变量,并将每个变量写两次。

aria-hidden="true"向屏幕阅读器隐藏<p>文本,因此屏幕阅读器将只读取<span>中的内容。

现在,CSS向您的用户隐藏<span>的内容:

代码语言:javascript
复制
p[aria-hidden=true] + span {
  position: absolute;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0;
  border: 0;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

显然,您需要根据元素、ID、类等更改选择器。

票数 8
EN

Stack Overflow用户

发布于 2021-02-11 13:39:01

您可以使用aria-标签属性。

代码语言:javascript
复制
<span aria-label="47 dollars and 49 cents">$47.49</span>

属性

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37812616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档