Skip to content
This repository has been archived by the owner on Sep 5, 2024. It is now read-only.

Commit

Permalink
fix(tabs): apply ARIA only to dummy tabs
Browse files Browse the repository at this point in the history
  • Loading branch information
Marcy Sutton committed Apr 15, 2015
1 parent 9655945 commit 5ad4472
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
7 changes: 2 additions & 5 deletions src/components/tabs/js/tabsDirective.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,8 @@
tabindex="-1"\
class="md-tab"\
style="max-width: {{ tabWidth ? tabWidth + \'px\' : \'none\' }}"\
role="tab"\
aria-selected="{{tab.isActive()}}"\
aria-disabled="{{tab.scope.disabled}}"\
aria-controls="tab-content-{{tab.id}}"\
ng-repeat="tab in $mdTabsCtrl.tabs"\
role="presentation"\
ng-click="$mdTabsCtrl.select(tab.getIndex())"\
ng-class="{\
\'md-active\': tab.isActive(),\
Expand All @@ -160,7 +157,7 @@
role="tab"\
aria-controls="tab-content-{{tab.id}}"\
aria-selected="{{tab.isActive()}}"\
aria-disabled="{{tab.scope.disabled}}"\
aria-disabled="{{tab.scope.disabled || \'false\'}}"\
ng-focus="$mdTabsCtrl.hasFocus = true"\
ng-blur="$mdTabsCtrl.hasFocus = false"\
ng-repeat="tab in $mdTabsCtrl.tabs"\
Expand Down
17 changes: 10 additions & 7 deletions src/components/tabs/tabs.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ describe('<md-tabs>', function() {
if (!actual.hasClass('md-active')) {
fails.push('does not have active class');
}
if (actual.attr('aria-selected') != 'true') {
fails.push('aria-selected is not true');
}
}

var results = { pass : fails.length === 0 };
Expand Down Expand Up @@ -138,12 +135,16 @@ describe('<md-tabs>', function() {
'<md-tab></md-tab>' +
'</md-tabs>');
var tabItems = tabs.find('md-tab-item');
var dummyTabs = tabs.find('md-dummy-tab');

expect(tabItems.eq(0)).toBeActiveTab();
expect(tabs.scope().current).toBe(0);
expect(dummyTabs.eq(0).attr('aria-selected')).toBe('true');

tabs.scope().$apply('current = 1');
expect(tabItems.eq(1)).toBeActiveTab();
expect(dummyTabs.eq(0).attr('aria-selected')).toBe('false');
expect(dummyTabs.eq(1).attr('aria-selected')).toBe('true');

tabItems.eq(2).triggerHandler('click');
expect(tabs.scope().current).toBe(2);
Expand All @@ -155,18 +156,20 @@ describe('<md-tabs>', function() {
'<md-tab ng-disabled="disabled1"></md-tab>' +
'</md-tabs>');
var tabItems = tabs.find('md-tab-item');
var dummyTabs = tabs.find('md-dummy-tab');

expect(tabItems.eq(0)).toBeActiveTab();
expect(dummyTabs.eq(0).attr('aria-selected')).toBe('true');

tabs.scope().$apply('disabled0 = true');
expect(tabItems.eq(1)).toBeActiveTab();
expect(tabItems.eq(0).attr('aria-disabled')).toBe('true');
expect(tabItems.eq(1).attr('aria-disabled')).not.toBe('true');
expect(dummyTabs.eq(0).attr('aria-disabled')).toBe('true');
expect(dummyTabs.eq(1).attr('aria-disabled')).toBe('false');

tabs.scope().$apply('disabled0 = false; disabled1 = true');
expect(tabItems.eq(0)).toBeActiveTab();
expect(tabItems.eq(0).attr('aria-disabled')).not.toBe('true');
expect(tabItems.eq(1).attr('aria-disabled')).toBe('true');
expect(dummyTabs.eq(0).attr('aria-disabled')).toBe('false');
expect(dummyTabs.eq(1).attr('aria-disabled')).toBe('true');
});

it('swiping tabs', function() {
Expand Down

0 comments on commit 5ad4472

Please sign in to comment.