Skip to content
Permalink
Browse files

Selectmenu: ARIA tweaks for keyboard events and closed menu operation

  • Loading branch information...
robertbeuligmann committed Oct 15, 2012
1 parent c59fbba commit 20d19dbbf1edb9d313d921370b5a934ef40d3a2c
Showing with 14 additions and 0 deletions.
  1. +14 −0 ui/jquery.ui.selectmenu.js
@@ -73,6 +73,10 @@ $.widget( "ui.selectmenu", {

_drawButton: function() {
var tabindex = this.element.attr( 'tabindex' );
var labelSelector = "label[for='" + this.element.attr("id") + "']";

// Find existing label
this.labelElement = $( labelSelector ).uniqueId();

// hide original select tag
this.element.hide();
@@ -85,6 +89,7 @@ $.widget( "ui.selectmenu", {
id: this.ids.button,
width: this.element.outerWidth(),
role: 'combobox',
'aria-labelledby': this.labelElement.attr("id"),
'aria-expanded': false,
'aria-autocomplete': 'list',
'aria-owns': this.ids.menu,
@@ -150,6 +155,10 @@ $.widget( "ui.selectmenu", {
}
}
that.focus = item.index;

// Set ARIA active decendent
that.button.attr( "aria-activedescendant", item.element.uniqueId().attr( "id" ) );

},
// set ARIA role
role: 'listbox'
@@ -330,6 +339,9 @@ $.widget( "ui.selectmenu", {
this._move( "next", event );
}
break;
case $.ui.keyCode.SPACE:
this._toggle( event );
break;
case $.ui.keyCode.LEFT:
this._move( "previous", event );
break;
@@ -372,6 +384,7 @@ $.widget( "ui.selectmenu", {
// change ARIA attr
this.menuItems.find( "a" ).attr( "aria-selected", false );
this._getSelectedItem().find( "a" ).attr( "aria-selected", true );
this.button.attr( "aria-activedescendant", item.element.uniqueId().attr( "id" ) );
},

_setOption: function( key, value ) {
@@ -427,6 +440,7 @@ $.widget( "ui.selectmenu", {
this.menuWrap.remove();
this.buttonWrap.remove();
this.element.show();
this.labelElement.removeUniqueId();
}
});

0 comments on commit 20d19db

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