aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2012-06-08 10:45:10 -0400
committerScott González <scott.gonzalez@gmail.com>2012-06-08 22:26:06 -0400
commit47a427e5a78e0a00026f93983945f9cdb7853f5f (patch)
tree319215687533314eafd43dcbd92a7b1958fad16b
parent48588d3bef746129aa66e5fa915da2962a1a4014 (diff)
downloadjquery-ui-47a427e5a78e0a00026f93983945f9cdb7853f5f.tar.gz
jquery-ui-47a427e5a78e0a00026f93983945f9cdb7853f5f.zip
Tabs: ARIA tests.
-rw-r--r--tests/unit/tabs/tabs_core.js59
1 files changed, 57 insertions, 2 deletions
diff --git a/tests/unit/tabs/tabs_core.js b/tests/unit/tabs/tabs_core.js
index fb3c306e6..111ee082a 100644
--- a/tests/unit/tabs/tabs_core.js
+++ b/tests/unit/tabs/tabs_core.js
@@ -63,8 +63,63 @@ test( "aria-controls", function() {
});
test( "accessibility", function() {
- // TODO: add tests
- expect( 0 );
+ expect( 49 );
+ var element = $( "#tabs1" ).tabs({
+ active: 1,
+ disabled: [ 2 ]
+ }),
+ tabs = element.find( ".ui-tabs-nav li" ),
+ anchors = tabs.find( ".ui-tabs-anchor" ),
+ panels = element.find( ".ui-tabs-panel" );
+
+ equal( element.find( ".ui-tabs-nav" ).attr( "role" ), "tablist", "tablist role" );
+ tabs.each(function( index ) {
+ var tab = tabs.eq( index ),
+ anchor = anchors.eq( index ),
+ anchorId = anchor.attr( "id" ),
+ panel = panels.eq( index );
+ equal( tab.attr( "role" ), "tab", "tab " + index + " role" );
+ equal( tab.attr( "aria-labelledby" ), anchorId, "tab " + index + " aria-labelledby" );
+ equal( anchor.attr( "role" ), "presentation", "anchor " + index + " role" );
+ equal( anchor.attr( "tabindex" ), -1, "anchor " + index + " tabindex" );
+ equal( panel.attr( "role" ), "tabpanel", "panel " + index + " role" );
+ equal( panel.attr( "aria-labelledby" ), anchorId, "panel " + index + " aria-labelledby" );
+ });
+
+ equal( tabs.eq( 1 ).attr( "aria-selected" ), "true", "active tab has aria-selected=true" );
+ equal( tabs.eq( 1 ).attr( "tabindex" ), 0, "active tab has tabindex=0" );
+ equal( tabs.eq( 1 ).attr( "aria-disabled" ), null, "enabled tab does not have aria-disabled" );
+ equal( panels.eq( 1 ).attr( "aria-expanded" ), "true", "active panel has aria-expanded=true" );
+ equal( panels.eq( 1 ).attr( "aria-hidden" ), "false", "active panel has aria-hidden=false" );
+ equal( tabs.eq( 0 ).attr( "aria-selected" ), "false", "inactive tab has aria-selected=false" );
+ equal( tabs.eq( 0 ).attr( "tabindex" ), -1, "inactive tab has tabindex=-1" );
+ equal( tabs.eq( 0 ).attr( "aria-disabled" ), null, "enabled tab does not have aria-disabled" );
+ equal( panels.eq( 0 ).attr( "aria-expanded" ), "false", "inactive panel has aria-expanded=false" );
+ equal( panels.eq( 0 ).attr( "aria-hidden" ), "true", "inactive panel has aria-hidden=true" );
+ equal( tabs.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab has aria-selected=false" );
+ equal( tabs.eq( 2 ).attr( "tabindex" ), -1, "inactive tab has tabindex=-1" );
+ equal( tabs.eq( 2 ).attr( "aria-disabled" ), "true", "disabled tab has aria-disabled=true" );
+ equal( panels.eq( 2 ).attr( "aria-expanded" ), "false", "inactive panel has aria-expanded=false" );
+ equal( panels.eq( 2 ).attr( "aria-hidden" ), "true", "inactive panel has aria-hidden=true" );
+
+ element.tabs( "option", "active", 0 );
+ equal( tabs.eq( 0 ).attr( "aria-selected" ), "true", "active tab has aria-selected=true" );
+ equal( tabs.eq( 0 ).attr( "tabindex" ), 0, "active tab has tabindex=0" );
+ equal( tabs.eq( 0 ).attr( "aria-disabled" ), null, "enabled tab does not have aria-disabled" );
+ equal( panels.eq( 0 ).attr( "aria-expanded" ), "true", "active panel has aria-expanded=true" );
+ equal( panels.eq( 0 ).attr( "aria-hidden" ), "false", "active panel has aria-hidden=false" );
+ equal( tabs.eq( 1 ).attr( "aria-selected" ), "false", "inactive tab has aria-selected=false" );
+ equal( tabs.eq( 1 ).attr( "tabindex" ), -1, "inactive tab has tabindex=-1" );
+ equal( tabs.eq( 1 ).attr( "aria-disabled" ), null, "enabled tab does not have aria-disabled" );
+ equal( panels.eq( 1 ).attr( "aria-expanded" ), "false", "inactive panel has aria-expanded=false" );
+ equal( panels.eq( 1 ).attr( "aria-hidden" ), "true", "inactive panel has aria-hidden=true" );
+ equal( tabs.eq( 2 ).attr( "aria-selected" ), "false", "inactive tab has aria-selected=false" );
+ equal( tabs.eq( 2 ).attr( "tabindex" ), -1, "inactive tab has tabindex=-1" );
+ equal( tabs.eq( 2 ).attr( "aria-disabled" ), "true", "disabled tab has aria-disabled=true" );
+ equal( panels.eq( 2 ).attr( "aria-expanded" ), "false", "inactive panel has aria-expanded=false" );
+ equal( panels.eq( 2 ).attr( "aria-hidden" ), "true", "inactive panel has aria-hidden=true" );
+
+ // TODO: aria-live and aria-busy tests for ajax tabs
});
test( "#3627 - Ajax tab with url containing a fragment identifier fails to load", function() {