+test("attr('tabindex')", function() {
+ expect(8);
+
+ // elements not natively tabbable
+ equals(jQuery('#listWithTabIndex').attr('tabindex'), 5, 'not natively tabbable, with tabindex set to 0');
+ equals(jQuery('#divWithNoTabIndex').attr('tabindex'), undefined, 'not natively tabbable, no tabindex set');
+
+ // anchor with href
+ equals(jQuery('#linkWithNoTabIndex').attr('tabindex'), 0, 'anchor with href, no tabindex set');
+ equals(jQuery('#linkWithTabIndex').attr('tabindex'), 2, 'anchor with href, tabindex set to 2');
+ equals(jQuery('#linkWithNegativeTabIndex').attr('tabindex'), -1, 'anchor with href, tabindex set to -1');
+
+ // anchor without href
+ equals(jQuery('#linkWithNoHrefWithNoTabIndex').attr('tabindex'), undefined, 'anchor without href, no tabindex set');
+ equals(jQuery('#linkWithNoHrefWithTabIndex').attr('tabindex'), 1, 'anchor without href, tabindex set to 2');
+ equals(jQuery('#linkWithNoHrefWithNegativeTabIndex').attr('tabindex'), -1, 'anchor without href, no tabindex set');
+});
+
+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');
+});
+