From 69ebdf46a596de6e6889f9532fdad6ad841cc765 Mon Sep 17 00:00:00 2001 From: Richard Worth Date: Tue, 15 Mar 2011 04:52:24 -0400 Subject: [PATCH] Accordion: set aria-selected to true on selected header, false on others. Fixed #7078 - Accordion: Set aria-selected --- tests/unit/accordion/accordion_core.js | 6 +++++- ui/jquery.ui.accordion.js | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/unit/accordion/accordion_core.js b/tests/unit/accordion/accordion_core.js index 2bef43149b9..2d27f3bc0c5 100644 --- a/tests/unit/accordion/accordion_core.js +++ b/tests/unit/accordion/accordion_core.js @@ -14,7 +14,7 @@ test("handle click on header-descendant", function() { }); test("accessibility", function () { - expect(9); + expect(13); var ac = $('#list1').accordion().accordion("activate", 1); var headers = $(".ui-accordion-header"); @@ -25,9 +25,13 @@ test("accessibility", function () { equals( headers.next().attr("role"), "tabpanel", "tabpanel roles"); equals( headers.eq(1).attr("aria-expanded"), "true", "active tab has aria-expanded"); equals( headers.eq(0).attr("aria-expanded"), "false", "inactive tab has aria-expanded"); + equals( headers.eq(1).attr("aria-selected"), "true", "active tab has aria-selected"); + equals( headers.eq(0).attr("aria-selected"), "false", "inactive tab has aria-selected"); ac.accordion("activate", 0); equals( headers.eq(0).attr("aria-expanded"), "true", "newly active tab has aria-expanded"); equals( headers.eq(1).attr("aria-expanded"), "false", "newly inactive tab has aria-expanded"); + equals( headers.eq(0).attr("aria-selected"), "true", "active tab has aria-selected"); + equals( headers.eq(1).attr("aria-selected"), "false", "inactive tab has aria-selected"); }); })(jQuery); diff --git a/ui/jquery.ui.accordion.js b/ui/jquery.ui.accordion.js index aac9a489198..9419089b5c6 100644 --- a/ui/jquery.ui.accordion.js +++ b/ui/jquery.ui.accordion.js @@ -114,6 +114,7 @@ $.widget( "ui.accordion", { .not( self.active || "" ) .attr({ "aria-expanded": "false", + "aria-selected": "false", tabIndex: -1 }) .next() @@ -126,6 +127,7 @@ $.widget( "ui.accordion", { self.active .attr({ "aria-expanded": "true", + "aria-selected": "true", tabIndex: 0 }); } @@ -173,6 +175,7 @@ $.widget( "ui.accordion", { .removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" ) .removeAttr( "role" ) .removeAttr( "aria-expanded" ) + .removeAttr( "aria-selected" ) .removeAttr( "tabIndex" ); this.headers.find( "a" ).removeAttr( "tabIndex" ); @@ -477,12 +480,14 @@ $.widget( "ui.accordion", { toHide.prev() .attr({ "aria-expanded": "false", + "aria-selected": "false", tabIndex: -1 }) .blur(); toShow.prev() .attr({ "aria-expanded": "true", + "aria-selected": "true", tabIndex: 0 }) .focus();