【发布时间】:2019-11-20 01:34:52
【问题描述】:
我在使用 NVDA 屏幕阅读器时遇到了一个问题,它在导航时无法读取链接或文本。
HTML
<nav role="navigation">
<ul class="list">
<li class="list-item">
<a class="link" href="#" aria-haspopup="true" aria-expanded="false">Home</a>
<div class="sub-nav">
<ul class="sub-nav-list">
<li>
<a href="">First list item in home</a>
</li>
<li>
<a href="">Second</a>
</li>
</ul>
</div>
</li>
<li class="list-item">
<a class="link" href="#" aria-haspopup="true" aria-expanded="false">About Us</a>
<div class="sub-nav">
<ul class="sub-nav-list">
<li>
<a href="">First list item in about us</a>
</li>
<li>
<a href="">2nd</a>
</li>
</ul>
</div>
</li>
<li class="list-item">
<a class="link" href="#" aria-haspopup="true" aria-expanded="false">Contact</a>
<div class="sub-nav">
<ul class="sub-nav-list">
<li>
<a href="">First list item in contact</a>
</li>
<li>
<a href="">two</a>
</li>
</ul>
</div>
</li>
</ul>
</nav>
CSS
.sub-nav {
display:none;
background: greenyellow;
}
li.hover .sub-nav {
display:block;
}
.list > li {
float:left;
margin: 0;
background: grey;
text-align: center;
}
ul {
margin: 0;
padding: 0;
list-style-type: none;
}
.list {
margin:20px auto;
padding: 0;
list-style-type: none;
width: 800px;
}
.sub-nav-list a {
padding:20px 10px;
margin-top:10px;
display:inline-block;
background: greenyellow;
}
.sub-nav-list a:first-child {
margin-top: 0;
}
.list-item > a {
display:block;
padding: 20px;
width: 200px;
color: white;
}
JS(使用 jQuery)
$(".list-item").mouseenter((e) => {
$(e.currentTarget).addClass('hover')
$(e.currentTarget).find('a.link').attr('aria-expanded',true)
})
$(".list-item").mouseleave((e) => {
$(e.currentTarget).removeClass('hover')
$(e.currentTarget).find('a.link').attr('aria-expanded', false)
})
$(".list-item").focusin((e) => {
$(e.currentTarget).addClass('hover')
$(e.currentTarget).find('a.link').attr('aria-expanded', true)
})
$(".list-item").focusout((e) => {
if(e.currentTarget.contains(e.relatedTarget))
{
return
}
$(e.currentTarget).removeClass('hover')
$(e.currentTarget).find('a.link').attr('aria-expanded', false)
})
我使用箭头键在 NVDA 中导航,如果我从子菜单移动到下一个菜单,例如,从“主页”移动到其子菜单,移动到“关于我们”菜单旁边,它不会阅读“关于我们”。相反,它会读取“关于我们”的子菜单项 知道可能出了什么问题吗?
内容:
navigation landmark
list with 3 items
collapsed visited subMenu link
Home
list with 2 items
visited link
First list item in home
visited link
Second
out of list
list with 2 items
visited link
First list item in about us
【问题讨论】:
标签: html accessibility