此模块的图块中的标签在按下向下键箭头时未按正确顺序读取

Labels in tiles for this module not reading in correct sequence on down key arrow press

下面的代码包含多个 div,所以 jaws 可以通过 div 正确读取 div,但我想让 jaws 以不同的方式聚焦和阅读。

      <div class="row paddingBottom2Pcnt">
        <div class="col-xs-5">
            <label class="textBold textBold_desktop control-label">Date of Birth</label>
        </div>
        <div class="col-xs-7">
            <label class="textBold textBold_desktop control-label">Social Number
            </label>
        </div>
        <div class="col-xs-5">
            <label class="lblSecondary textTransformNone"> 08/08/1994
            </label>
        </div>
        <div class="col-xs-7">
            <label class="lblSecondary textTransformNone">
             XXX-XX-6745
            </label>
        </div>
    </div>

Jaws 通过 div 关注 div,但我希望第一个关注出生日期和那个值,然后是社会号码和那个值。有什么办法可以这样吗?

带有屏幕 reader 的向下箭头键(JAWS 和 NVDA)基本上会走 DOM (*)(文档 object 模型)所以无论您的 HTML 代码的顺序将是 JAWS 读取它的顺序。

因此,获得所需顺序的一种方法是更改​​代码的顺序,首先是 DOB,然后是日期,然后是 SSN 标签,然后是 SSN 号码。您可以使用 CSS 使事情正确排列。例如,用一个 parent <div> 容器代替四个 sibling <div> 元素,你可以有一个 <div> parent 用于两个 DOB 相关元素和另一个 <div> 容器用于 SSN 信息,这两个 <div> 元素是兄弟。

<div class="row paddingBottom2Pcnt">
  <div id="newParentContainer1">
    <div>
      <label class="textBold textBold_desktop control-label">Date of Birth</label>
    </div>
    <div>
      <label class="lblSecondary textTransformNone"> 08/08/1994</label>
    </div>
  </div>
  <div id="newParentContainer2">
    <div>
      <label class="textBold textBold_desktop control-label">Social Number</label>
    </div>
    <div>
      <label class="lblSecondary textTransformNone">XXX-XX-6745</label>
    </div>
  </div>
</div>

另一种选择是使用 table。您只包含了您想要的内容的小屏幕截图,但它可能是 table,其中第一列 header 是“出生日期”,第二列 header 是“社交号码”然后有两个数据值。

<table>
  <tr>
    <th scope="col">Date of Birth</th>
    <th scope="col">Social Number</th>
  </tr>
  <tr>
    <td>08/08/1994</td>
    <td>XXX-XX-6745</td>
  </tr>
</table>

向下箭头键仍会水平穿过 table,因此您会像原来的 DOM 一样听到两列 header 一个接一个,但屏幕 reader 用户可以选择在他们想要的任何方向上遍历 table。跨行或向下一列(例如,使用 ctrl+alt+arrowkey)。

(*) 屏幕 reader 确实在遍历可访问性树,而不是 DOM,但可访问性树与 DOM 的顺序相同。可访问性树通常是 DOM 的子集,不会包含 DOM 中的每个 元素(例如,具有 [=38= 的元素) ] display:none 在 DOM 但不在可访问性树中)。