如何将tabindex = 0添加到所有内部元素

时间:2015-11-15 14:57:27

标签: jquery html accessibility nvda

我想将tabindex添加到包含文本的所有元素(包装的父项除外),以便我可以通过它们进行制表并使用屏幕阅读器进行阅读。

<div>
 <table class="blue">
  <tbody>
   <tr>
    <td><span class="">abc</span></td>
    <td><span class="">def</span></td>
    <td><span class="">ghi</span></td>
   </tr>
   <tr>
    <td><span class="">jkl</span></td>
    <td><span class="">lmn</span></td>
    <td><span class="">pqr</span></td>
   </tr>
   <tr>
    <td><span class="">stu</span></td>
    <td><span class="">vwx</span></td>
    <td><span class="">yza</span></td>
   </tr>
  </tbody>
 </table>
</div>

我想标签只能跨越,但是为每个跨度添加tabindex是单调乏味的。这只是一个小例子。 sceanrio可能是一个元素中更深的文本,不需要只是表格格式。

使用下面的内容,无论如何都会为我取文,但不会读取它

$('.blue').text();

是否有任何解决方案可以获取所有最后一个标签并为每个标签添加tabindex attr?

这样我就可以专注并阅读。

2 个答案:

答案 0 :(得分:2)

你完全是误导。

您不需要也不必向元素添加tabindex以使屏幕阅读器读取它。

屏幕阅读器可以在没有它的情况下阅读文本,文本不必是可聚焦的就可以阅读。添加tabindex将导致可访问性问题(暗示可聚焦元素不会导致任何操作)。

答案 1 :(得分:-1)

你可以试试这个:

$("table.blue span").attr("tabindex", "0");