Javascript Angular2-如何在从DOM中删除元素时放下焦点,并重新关注添加的新元素
我使用Javascript Angular2-如何在从DOM中删除元素时放下焦点,并重新关注添加的新元素,javascript,angular,firefox,focus,accessibility,Javascript,Angular,Firefox,Focus,Accessibility,我使用*ngIf语句来打开和关闭手风琴元素中的面板。对于可访问性要求,当一个面板关闭(通过按下“继续”按钮移动到下一个)而下一个面板打开时,我需要将焦点放在一个上,该面板将宣布下一个面板的标题。屏幕阅读器(NVDA)确实读取文本,但在读取之前,它会读取四行我不希望看到的内容。(将网站标题替换为网站名称)其内容如下: 网站名称-Mozilla Firefox 不为人知 网站名称-Mozilla Firefox 网站名称-文件 最后,它将阅读下一节的标题。之所以这样做,是因为我有一些angula
*ngIf
语句来打开和关闭手风琴元素中的面板。对于可访问性要求,当一个面板关闭(通过按下“继续”按钮移动到下一个)而下一个面板打开时,我需要将焦点放在一个
上,该面板将宣布下一个面板的标题。屏幕阅读器(NVDA)确实读取文本,但在读取之前,它会读取四行我不希望看到的内容。(将网站标题替换为网站名称)其内容如下:
- 网站名称-Mozilla Firefox
- 不为人知
- 网站名称-Mozilla Firefox
- 网站名称-文件
,因此被延迟,它会读取4行不需要的文本
我能想到的唯一解决办法是,当面板折叠时,我将焦点放在屏幕外的空div上,该div不会读取任何内容,然后在动画完成后将焦点重置到字幕上,但这似乎有点骇人。这个问题还有其他解决方案吗?将查询放入组件中
@Component({
queries : {
vc : new ng.core.ViewChildren('input') // depends on what you are adding dynamically, replace that with 'input'
}
})
在课堂上加上这个
ngAfterViewInit: function() {
this.vc.changes.subscribe(elements => {
elements.last.nativeElement.focus();
});
}