我对JAWS屏幕阅读器有一个奇怪的问题。我正在一个SharePoint网站上托管的页面,我正在使用bootstrap的标签。当我使用JAWS更改标签时,它会读取“已删除”,然后是上一个标签的内容,再次“删除”,然后是您单击的标签的内容。奇怪的是,当我在本地运行相同的页面时,它不会这样做。
在下面的示例中(在SharePoint上)如果我在第一个选项卡上,并单击第二个选项卡,JAWS将宣布“已删除,内容1,已删除,内容2”。
它不会在下面执行,但它在SharePoint上执行。 SharePoint可能会导致什么不同?
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<nav>
<div class="nav nav-tabs" id="nav-tab" role="tablist">
<a class="nav-item nav-link active" id="nav-home-tab" data-toggle="tab" href="#nav-home" role="tab" aria-controls="nav-home" aria-selected="true">Home</a>
<a class="nav-item nav-link" id="nav-profile-tab" data-toggle="tab" href="#nav-profile" role="tab" aria-controls="nav-profile" aria-selected="false">Profile</a>
<a class="nav-item nav-link" id="nav-contact-tab" data-toggle="tab" href="#nav-contact" role="tab" aria-controls="nav-contact" aria-selected="false">Contact</a>
</div>
</nav>
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">CONTENT 1 </div>
<div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab">CONTENT 2 </div>
<div class="tab-pane fade" id="nav-contact" role="tabpanel" aria-labelledby="nav-contact-tab">CONTENT 3 </div>
</div>
我发现了这个问题。 SharePoint站点具有以下Aria属性:aria-live =“polite”aria-relevant =“all”
“所有”是宣布“删除”项目的原因。我将其更改为“文本”,现在它宣布所选标签的内容,而不会宣布上一个标签的内容。