I'm working with Twitter Bootstrap at the moment, and I'm encountering a strange problem in the tabindex of a modal:
I'm trying to tab through the form elements inside the modal, but after the last button the focus disappeared before coming back to the close button. I added a line in console that logs which element is being focused, and it turned out to be the modal itself, even though it has tabindex="-1"
.
I'm unable to share my code, but a quick look at the Bootstrap docs told me that it also happens in their example modal. The problem is reproducable:
- Visit http://getbootstrap.com/2.3.2/javascript.html#modals
- Open the demo modal ("Launch Demo Modal" button)
- Tab through the fields. You'll lose focus after "Save changes" before it comes back to the close button.
Putting this in console will log whenever the modal (or in fact any element with tabindex="-1"
) gains focus.
$('[tabindex="-1"]').focus(function(){
console.log('Focus is on an element with negative tabindex')
});
(It also logs it when you click on the modal obviously, but that's out of scope).
Why does this happen? How can I prevent this? Is this a browser bug, a bug/feature of Twitter Bootstrap, or something else entirely?