Skip to content
Permalink
Browse files

Dialog: Giving the content area and button pane priority over the tit…

…le bar for which element should gain focus on open.
  • Loading branch information
scottgonzalez committed Jan 17, 2009
1 parent 0ce1fa2 commit 60856ea46146ad93e173fe1cddff9f882c73d916
Showing with 19 additions and 6 deletions.
  1. +19 −6 ui/ui.dialog.js
@@ -207,15 +207,18 @@ $.widget("ui.dialog", {
open: function() {
if (this._isOpen) { return; }

this.overlay = this.options.modal ? new $.ui.dialog.overlay(this) : null;
(this.uiDialog.next().length && this.uiDialog.appendTo('body'));
var options = this.options,
uiDialog = this.uiDialog;

this.overlay = options.modal ? new $.ui.dialog.overlay(this) : null;
(uiDialog.next().length && uiDialog.appendTo('body'));
this._size();
this._position(this.options.position);
this.uiDialog.show(this.options.show);
this._position(options.position);
uiDialog.show(options.show);
this.moveToTop(true);

// prevent tabbing out of modal dialogs
(this.options.modal && this.uiDialog.bind('keypress.ui-dialog', function(event) {
(options.modal && uiDialog.bind('keypress.ui-dialog', function(event) {
if (event.keyCode != $.ui.keyCode.TAB) {
return;
}
@@ -235,7 +238,17 @@ $.widget("ui.dialog", {
}
}));

this.uiDialog.find(':tabbable:first').focus();
// set focus to the first tabbable element in:
// - content area
// - button pane
// - title bar
$([])
.add(uiDialog.find('.ui-dialog-content :tabbable:first'))
.add(uiDialog.find('.ui-dialog-buttonpane :tabbable:first'))
.add(uiDialog.find('.ui-dialog-titlebar :tabbable:first'))
.filter(':first')
.focus();

this._trigger('open');
this._isOpen = true;
},

0 comments on commit 60856ea

Please sign in to comment.
You can’t perform that action at this time.