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

This commit is contained in:
jzaefferer 2011-02-11 15:42:44 +01:00
parent 1cb1b9cef7
commit e69839ae6a
4 changed files with 12 additions and 6 deletions

View File

@ -46,8 +46,10 @@
<li><a href="button/button.html">Button</a></li> <li><a href="button/button.html">Button</a></li>
<li><a href="datepicker/datepicker.html">Datepicker</a></li> <li><a href="datepicker/datepicker.html">Datepicker</a></li>
<li><a href="dialog/dialog.html">Dialog</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="progressbar/progressbar.html">Progressbar</a></li>
<li><a href="slider/slider.html">Slider</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="tabs/tabs.html">Tabs</a></li>
<li><a href="tooltip/tooltip.html">Tooltip</a></li> <li><a href="tooltip/tooltip.html">Tooltip</a></li>
</ul> </ul>

View File

@ -8,13 +8,19 @@
module("menu: core"); module("menu: core");
test("accessibility", function () { test("accessibility", function () {
expect(3); expect(5);
var ac = $('#menu1').menu(); var ac = $('#menu1').menu();
var item0 = $("li:eq(0) a"); var item0 = $("li:eq(0) a");
ok( ac.hasClass("ui-menu ui-widget ui-widget-content ui-corner-all"), "menu class"); 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("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 () { test("items class and role", function () {

View File

@ -3,9 +3,7 @@
*/ */
var menu_defaults = { var menu_defaults = {
disabled: false, disabled: false
navigationFilter: function() {}
}; };
commonWidgetTests('menu', { defaults: menu_defaults }); commonWidgetTests('menu', { defaults: menu_defaults });

View File

@ -146,7 +146,7 @@ $.widget("ui.menu", {
.end(); .end();
// need to remove the attribute before adding it for the screenreader to pick up the change // 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 // 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 } ); this._trigger( "focus", event, { item: item } );
}, },