我正在构建一个可访问的网站并尝试管理焦点。我需要打开一个模式,然后将焦点放在模式中的第一个元素上,然后捕获焦点,直到模式关闭(“取消”或“接受”)。
HTML
<a href="" ng-click="modalshow = !modalshow; modal.open();">Open Modal</a>
<div ng-show="modalshow" id="modal">
<h3 id="tofs" >Terms of Service</h3>
<p>Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum </p>
<span>Cancel</span>
<span>Accept/span>
</div>
<h2>Seprate Content</h2>
JavaScript
angular.module('app')
.controller('Controller', modalCtrl);
function modalCtrl() {
$scope.modal = {
open: function() {
angular.element('#tofs').focus();
}
}
}
angular.element("html").on("focusin", "body", function (event) {
if(angular.element("#modal:visible").length>0){
event.preventDefault();
event.stopPropagation();
angular.element('#tofs').focus();
}
});
您可以添加此代码以在模态可见时将所有焦点事件捕获到 h3 标记。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)