我想我明白你现在的要求了。您的额外解释与动态值无关。听起来您希望将空白值读取为“空白”或“缺失”或某种文本,而不仅仅是沉默。 而且您的值只是纯文本(在定义列表中<dl>
)。
如果这是对您问题的正确解释,那么您可以使用明显隐藏的文本来做您想做的事情。这是视力正常的用户看不到但仍可供屏幕阅读器阅读的文本。
您的简单示例实际上应该是一个具有两个列标题的表格,“付款类型”和“价值”,然后“支票”、“现金”和“dd”应该是行标题。使用定义列表对您的示例并没有真正意义,但在您的真实代码中可能有意义。
那么你有这样的东西吗?
<dl>
<dt>payment type</dt>
<dd>value</dd>
<dt>cheque</dt>
<dd></dd>
<dt>cash</dt>
<dd>20</dd>
<dt>dd</dt>
<dd></dd>
</dl>
同样,对于您的简单示例,如果您的实际代码相似,则应使用表:
<table>
<tr>
<th scope="col">payment type</th>
<th scope="col">value</th>
</tr>
<tr>
<th scope="row">cheque</th>
<td></td>
</tr>
<tr>
<th scope="row">cash</th>
<td>20</td>
</tr>
<tr>
<th scope="row">dd</th>
<td></td>
</tr>
</table>
在任何一种情况下,如果您想让屏幕阅读器读取空<dd>
或空的内容,请使用可视化隐藏文本的类。<td>
请参阅Bootstrap 3 中的 sr-only 是什么?
<dt>dd</dt>
<dd><span class="sr-only">empty</span></dd>
或者
<tr>
<th scope="row">dd</th>
<td><span class="sr-only">missing</span></td>
</tr>
WebAIM 有一篇关于“仅适用于屏幕阅读器用户的隐形内容”的好文章。