Skip to content
Permalink
Browse files

Menu: Fix unit tests and set the right menu1-activedescendant attribute

  • Loading branch information
jzaefferer committed Feb 11, 2011
1 parent 1cb1b9c commit e69839ae6aee20fcb4f8dee7938bceeb8672671d
Showing with 12 additions and 6 deletions.
  1. +2 −0 tests/unit/index.html
  2. +8 −2 tests/unit/menu/menu_core.js
  3. +1 −3 tests/unit/menu/menu_defaults.js
  4. +1 −1 ui/jquery.ui.menu.js
@@ -46,8 +46,10 @@ <h2>Widgets</h2>
<li><a href="button/button.html">Button</a></li>
<li><a href="datepicker/datepicker.html">Datepicker</a></li>
<li><a href="dialog/dialog.html">Dialog</a></li>
<li><a href="menu/menu.html">Menu</a></li>
<li><a href="progressbar/progressbar.html">Progressbar</a></li>
<li><a href="slider/slider.html">Slider</a></li>
<li><a href="spinner/spinner.html">Spinner</a></li>
<li><a href="tabs/tabs.html">Tabs</a></li>
<li><a href="tooltip/tooltip.html">Tooltip</a></li>
</ul>
@@ -8,13 +8,19 @@
module("menu: core");

test("accessibility", function () {
expect(3);
expect(5);
var ac = $('#menu1').menu();
var item0 = $("li:eq(0) a");

ok( ac.hasClass("ui-menu ui-widget ui-widget-content ui-corner-all"), "menu class");
equals( ac.attr("role"), "listbox", "main role");
equals( ac.attr("aria-activedescendant"), "ui-active-menuitem", "aria attribute");
equals( ac.attr("aria-activedescendant"), undefined, "aria attribute not yet active");
var item = ac.find( "li:first" ).find( "a" ).attr( "id", "xid" ).end();
ac.menu( "activate", $.Event(), item );
equals( ac.attr("aria-activedescendant"), "xid", "aria attribute, id from dom");
var item = ac.find( "li:last" );
ac.menu( "activate", $.Event(), item );
equals( ac.attr("aria-activedescendant"), "menu1-activedescendant", "aria attribute, generated id");
});

test("items class and role", function () {
@@ -3,9 +3,7 @@
*/

var menu_defaults = {
disabled: false,
navigationFilter: function() {}

disabled: false
};

commonWidgetTests('menu', { defaults: menu_defaults });
@@ -146,7 +146,7 @@ $.widget("ui.menu", {
.end();
// need to remove the attribute before adding it for the screenreader to pick up the change
// see http://groups.google.com/group/jquery-a11y/msg/929e0c1e8c5efc8f
this.element.removeAttr("aria-activedescenant").attr("aria-activedescenant", self.itemId);
this.element.removeAttr("aria-activedescendant").attr("aria-activedescendant", self.itemId);
this._trigger( "focus", event, { item: item } );
},

1 comment on commit e69839a

@jzaefferer

This comment has been minimized.

Copy link
Member Author

jzaefferer commented on e69839a Feb 13, 2011

Yuck, at least I got the code change right, the commit message not so much.

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