JAWS不会将ul和li元素读取为列表

时间:2018-08-20 12:16:15

标签: accessibility jaws-screen-reader nvda

NVDA正确读取。 JAWS仅读取链接1,链接2(内容为链接1,链接2),但不读取其为列表

list-style-type: none;

html:

<ul role="list" class="content-links">
        <sly data-sly-list.link="${model.links}">
            <li role="listitem">
                <a href="${link.href @ context='html'}" aria-label="${link.label}" rel="${link.rel}"
                   tms-dblclick="${link.tracking.tmsDblClick}" data-pid="${link.tracking.vadm.pin}" data-pid-action="${link.track.vadm.pinAction}">
                    ${link.label}
                </a>
            </li>
        </sly>
</ul>

2 个答案:

答案 0 :(得分:4)

您的代码是正确的(@shannon指出的,您指定的多余角色除外)。不幸的是,JAWS就是这样工作的。当您 tab 到列表中包含的链接时,将读取链接文本,并且读取链接包含在列表中的事实。但是,如果您使用JAWS中的向上/向下箭头键导航DOM,则在导航到链接时,您会在听到链接文本之前 听到“三项列表”。当您向下滑动列表时,您会听到“列表结束”的声音。本地JAWS用户已经习惯了(并不是说它提供了正确的用户体验。)

答案 1 :(得分:1)

链接文本应自行提供足够的信息,以使用户知道单击链接后会发生什么。 JAWS用户可以发现该链接是相关列表的一部分。不用担心,JAWS不会在用户浏览时提及它在列表中,因为这不是预期的行为。