From b6617e4dff3b2d991c850a7a0ff0a1b9b9a4c366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabr=C3=ADcio=20Matt=C3=A9?= Date: Sun, 25 Nov 2012 16:09:33 -0200 Subject: [PATCH 1/5] Button: Let change handler handle display and aria update. Fixed #5518 - Button: Incorrect state after double click in Firefox --- ui/jquery.ui.button.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ui/jquery.ui.button.js b/ui/jquery.ui.button.js index d6eed67dcc2..d630b6f06ad 100644 --- a/ui/jquery.ui.button.js +++ b/ui/jquery.ui.button.js @@ -147,8 +147,9 @@ $.widget( "ui.button", { if ( options.disabled || clickDragged ) { return false; } - $( this ).toggleClass( "ui-state-active" ); - that.buttonElement.attr( "aria-pressed", that.element[0].checked ); + // Fix #5518 - let change handler handle display and aria update + //$( this ).toggleClass( "ui-state-active" ); + //that.buttonElement.attr( "aria-pressed", that.element[0].checked ); }); } else if ( this.type === "radio" ) { this.buttonElement.bind( "click" + this.eventNamespace, function() { From e44444f61cdb1acc32c19e77e446113cb98308d8 Mon Sep 17 00:00:00 2001 From: UltCombo Date: Sun, 25 Nov 2012 17:58:35 -0200 Subject: [PATCH 2/5] Added Visual Test for #5518 --- tests/visual/button/tickets.html | 27 +++++++++++++++++++++++++++ tests/visual/index.html | 1 + 2 files changed, 28 insertions(+) create mode 100644 tests/visual/button/tickets.html diff --git a/tests/visual/button/tickets.html b/tests/visual/button/tickets.html new file mode 100644 index 00000000000..348e3894cae --- /dev/null +++ b/tests/visual/button/tickets.html @@ -0,0 +1,27 @@ + + + + + Button Visual Test: Tickets + + + + + + + + +

#5518 - Incorrect state after double click in Firefox

+ +

Checked state:

+

Aria state:

+ + diff --git a/tests/visual/index.html b/tests/visual/index.html index d8c8751f6ee..17ddd382d40 100644 --- a/tests/visual/index.html +++ b/tests/visual/index.html @@ -29,6 +29,7 @@

Button

Dialog

From dbdebd2cb12015477009342a1319bfb3e1b60d10 Mon Sep 17 00:00:00 2001 From: UltCombo Date: Sun, 25 Nov 2012 18:01:13 -0200 Subject: [PATCH 3/5] Corrected Visual Test #5518 --- tests/visual/button/tickets.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/visual/button/tickets.html b/tests/visual/button/tickets.html index 348e3894cae..937e96723ab 100644 --- a/tests/visual/button/tickets.html +++ b/tests/visual/button/tickets.html @@ -10,10 +10,9 @@ From 32ab12fdf40b59540d02b1a0e63a31fa670da267 Mon Sep 17 00:00:00 2001 From: UltCombo Date: Sun, 25 Nov 2012 18:08:05 -0200 Subject: [PATCH 4/5] Prefixed IDs --- tests/visual/button/tickets.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/visual/button/tickets.html b/tests/visual/button/tickets.html index 937e96723ab..ba9b2153c08 100644 --- a/tests/visual/button/tickets.html +++ b/tests/visual/button/tickets.html @@ -10,17 +10,17 @@

#5518 - Incorrect state after double click in Firefox

- -

Checked state:

-

Aria state:

+ +

Checked state:

+

Aria state:

From cd5be5e257ec24bed074e73d6f72d92d85f3a3f9 Mon Sep 17 00:00:00 2001 From: UltCombo Date: Mon, 26 Nov 2012 01:12:16 -0200 Subject: [PATCH 5/5] Button: added checkbox single click unit tests --- tests/unit/button/button.html | 1 + tests/unit/button/button_events.js | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/tests/unit/button/button.html b/tests/unit/button/button.html index 38820999192..ebdc7647055 100644 --- a/tests/unit/button/button.html +++ b/tests/unit/button/button.html @@ -68,6 +68,7 @@

+
diff --git a/tests/unit/button/button_events.js b/tests/unit/button/button_events.js index 7b79c41ea21..26fb3ab24a8 100644 --- a/tests/unit/button/button_events.js +++ b/tests/unit/button/button_events.js @@ -23,4 +23,16 @@ test( "when button loses focus, ensure active state is removed (#8559)", functio }).focus().simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ).simulate( "keypress", { keyCode: $.ui.keyCode.ENTER } ); }); +test( "ensure checked and aria after single click on checkbox label button", function() { + expect( 3 ); + + $( "#check2" ).button().change( function() { + var lbl = $( this ).button( "widget" ); + ok( this.checked, "checked ok" ); + ok( lbl.attr( "aria-pressed" ) === "true", "aria ok" ); + ok( lbl.hasClass( "ui-state-active" ), "ui-state-active ok" ); + }).button( "widget" ).simulate( "click" ); + +}); + })(jQuery);