From 979373983babce7122d98c4f3919426735555d61 Mon Sep 17 00:00:00 2001 From: Felix Nagel Date: Thu, 31 Jul 2014 12:35:42 +0200 Subject: [PATCH] Selectmenu: Copy title attributes Fixes #10435 Closes gh-1298 --- tests/unit/selectmenu/selectmenu_core.js | 24 ++++++++++++++++-------- ui/selectmenu.js | 7 +++++-- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/tests/unit/selectmenu/selectmenu_core.js b/tests/unit/selectmenu/selectmenu_core.js index 2ee963043..b4efb80f2 100644 --- a/tests/unit/selectmenu/selectmenu_core.js +++ b/tests/unit/selectmenu/selectmenu_core.js @@ -3,15 +3,21 @@ module( "selectmenu: core" ); asyncTest( "accessibility", function() { - var wrappers, - element = $( "#speed" ).selectmenu(), - button = element.selectmenu( "widget" ), - menu = element.selectmenu( "menuWidget" ); + var wrappers, button, menu, + element = $( "#speed" ).attr( "title", "A demo title" ); + + element.find( "option" ).each(function( index ) { + $( this ).attr( "title", "A demo title #" + index ); + }); + + element.selectmenu(); + button = element.selectmenu( "widget" ); + menu = element.selectmenu( "menuWidget" ); button.simulate( "focus" ); wrappers = menu.find( "li.ui-menu-item .ui-menu-item-wrapper" ); - expect( 12 + wrappers.length * 2 ); + expect( 13 + wrappers.length * 3 ); setTimeout(function() { equal( button.attr( "role" ), "combobox", "button role" ); @@ -25,6 +31,7 @@ asyncTest( "accessibility", function() { "button link aria-labelledby" ); equal( button.attr( "tabindex" ), 0, "button link tabindex" ); + equal( button.attr( "title" ), "A demo title", "button title" ); equal( menu.attr( "role" ), "listbox", "menu role" ); equal( menu.attr( "aria-labelledby" ), button.attr( "id" ), "menu aria-labelledby" ); @@ -36,9 +43,10 @@ asyncTest( "accessibility", function() { "menu aria-activedescendant" ); $.each( wrappers, function( index ) { - var link = $( this ); - equal( link.attr( "role" ), "option", "menu link #" + index +" role" ); - equal( link.attr( "tabindex" ), -1, "menu link #" + index +" tabindex" ); + var item = $( this ); + equal( item.attr( "role" ), "option", "menu item #" + index +" role" ); + equal( item.attr( "tabindex" ), -1, "menu item #" + index +" tabindex" ); + equal( item.attr( "title" ), "A demo title #" + index, "menu item #" + index + " title" ); }); start(); }); diff --git a/ui/selectmenu.js b/ui/selectmenu.js index a2409bde2..0859a2c2c 100644 --- a/ui/selectmenu.js +++ b/ui/selectmenu.js @@ -94,7 +94,8 @@ return $.widget( "ui.selectmenu", { "aria-expanded": "false", "aria-autocomplete": "list", "aria-owns": this.ids.menu, - "aria-haspopup": "true" + "aria-haspopup": "true", + title: this.element.attr( "title" ) }) .insertAfter( this.element ); @@ -317,7 +318,9 @@ return $.widget( "ui.selectmenu", { _renderItem: function( ul, item ) { var li = $( "
  • " ), - wrapper = $( "
    " ); + wrapper = $( "
    ", { + title: item.element.attr( "title" ) + }); if ( item.disabled ) { li.addClass( "ui-state-disabled" ); -- 2.39.5