<div><div class="hidden">hidden</div></div>
</div>
</div>
+
+ <div id="tabindex-tests">
+ <ol id="listWithTabIndex" tabindex="0">
+ <li id="foodWithNegativeTabIndex" tabindex="-1">Rice</li>
+ <li id="foodNoTabIndex">Beans</li>
+ <li>Blinis</li>
+ <li>Tofu</li>
+ </ol>
+
+ <div id="divWithNoTabIndex">I'm hungry. I should...</div>
+ <span>...</span><a href="#" id="linkWithNoTabIndex">Eat lots of food</a><span>...</span> |
+ <span>...</span><a href="#" id="linkWithTabIndex" tabindex="2">Eat a little food</a><span>...</span> |
+ <span>...</span><a href="#" id="linkWithNegativeTabIndex" tabindex="-1">Eat no food</a><span>...</span>
+ </div>
</div>
</dl>
});
}
+test("attr('tabindex')", function() {
+ expect(5);
+
+ // tabindex 0
+ equals(jQuery('#listWithTabIndex').attr('tabindex'), 0, 'tabindex of 0');
+
+ // positive tabindex
+ equals(jQuery('#linkWithTabIndex').attr('tabindex'), 2, 'tabindex of 2');
+
+ // negative tabindex
+ equals(jQuery('#linkWithNegativeTabIndex').attr('tabindex'), -1, 'negative tabindex');
+
+ // regular element without a tabindex
+ equals(jQuery('#divWithNoTabIndex').attr('tabindex'), undefined, 'no tabindex, not tabbable by default');
+
+ // link without a tabindex
+ equals(jQuery('#linkWithNoTabIndex').attr('tabindex'), undefined, 'no tabindex, tabbable by default');
+});
+
+test("attr('tabindex', value)", function() {
+ expect(9);
+
+ var element = jQuery('#divWithNoTabIndex');
+ equals(element.attr('tabindex'), undefined, 'start with no tabindex');
+
+ // set a positive string
+ element.attr('tabindex', '1');
+ equals(element.attr('tabindex'), 1, 'set tabindex to 1 (string)');
+
+ // set a zero string
+ element.attr('tabindex', '0');
+ equals(element.attr('tabindex'), 0, 'set tabindex to 0 (string)');
+
+ // set a negative string
+ element.attr('tabindex', '-1');
+ equals(element.attr('tabindex'), -1, 'set tabindex to -1 (string)');
+
+ // set a positive number
+ element.attr('tabindex', 1);
+ equals(element.attr('tabindex'), 1, 'set tabindex to 1 (number)');
+
+ // set a zero number
+ element.attr('tabindex', 0);
+ equals(element.attr('tabindex'), 0, 'set tabindex to 0 (number)');
+
+ // set a negative number
+ element.attr('tabindex', -1);
+ equals(element.attr('tabindex'), -1, 'set tabindex to -1 (number)');
+
+ element = jQuery('#linkWithTabIndex');
+ equals(element.attr('tabindex'), 2, 'start with tabindex 2');
+
+ element.attr('tabindex', -1);
+ equals(element.attr('tabindex'), -1, 'set negative tabindex');
+});
+
test("css(String|Hash)", function() {
expect(19);
t( "Selected Option Element", "#form option:selected", ["option1a","option2d","option3b","option3c"] );
t( "Text Contains", "a:contains('Google')", ["google","groups"] );
t( "Text Contains", "a:contains('Google Groups')", ["groups"] );
- t( "Element Preceded By", "p ~ div", ["foo","fx-queue","fx-tests", "moretests"] );
+ t( "Element Preceded By", "p ~ div", ["foo","fx-queue","fx-tests", "moretests","tabindex-tests"] );
t( "Not", "a.blog:not(.link)", ["mark"] );
t( "Not - multiple", "#form option:not(:contains('Nothing'),#option1b,:selected)", ["option1c", "option1d", "option2b", "option2c", "option3d", "option3e"] );
//t( "Not - complex", "#form option:not([id^='opt']:nth-child(-n+3))", [ "option1a", "option1d", "option2d", "option3d", "option3e"] );