Landing a fix for non-link anchor tabIndex (from scott.gonzalez). Fixes ticket #3916.
This commit is contained in:
parent
d6e541426d
commit
96152559e0
|
@ -986,9 +986,11 @@ jQuery.extend({
|
||||||
var attributeNode = elem.getAttributeNode( "tabIndex" );
|
var attributeNode = elem.getAttributeNode( "tabIndex" );
|
||||||
return attributeNode && attributeNode.specified
|
return attributeNode && attributeNode.specified
|
||||||
? attributeNode.value
|
? attributeNode.value
|
||||||
: elem.nodeName.match(/^(a|area|button|input|object|select|textarea)$/i)
|
: elem.nodeName.match(/(button|input|object|select|textarea)/i)
|
||||||
? 0
|
? 0
|
||||||
: undefined;
|
: elem.nodeName.match(/^(a|area)$/i) && elem.href
|
||||||
|
? 0
|
||||||
|
: undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
return elem[ name ];
|
return elem[ name ];
|
||||||
|
|
|
@ -198,7 +198,7 @@ Z</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="tabindex-tests">
|
<div id="tabindex-tests">
|
||||||
<ol id="listWithTabIndex" tabindex="0">
|
<ol id="listWithTabIndex" tabindex="5">
|
||||||
<li id="foodWithNegativeTabIndex" tabindex="-1">Rice</li>
|
<li id="foodWithNegativeTabIndex" tabindex="-1">Rice</li>
|
||||||
<li id="foodNoTabIndex">Beans</li>
|
<li id="foodNoTabIndex">Beans</li>
|
||||||
<li>Blinis</li>
|
<li>Blinis</li>
|
||||||
|
@ -209,6 +209,9 @@ Z</textarea>
|
||||||
<span>...</span><a href="#" id="linkWithNoTabIndex">Eat lots of food</a><span>...</span> |
|
<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="linkWithTabIndex" tabindex="2">Eat a little food</a><span>...</span> |
|
||||||
<span>...</span><a href="#" id="linkWithNegativeTabIndex" tabindex="-1">Eat no food</a><span>...</span>
|
<span>...</span><a href="#" id="linkWithNegativeTabIndex" tabindex="-1">Eat no food</a><span>...</span>
|
||||||
|
<span>...</span><a id="linkWithNoHrefWithNoTabIndex">Eat a burger</a><span>...</span>
|
||||||
|
<span>...</span><a id="linkWithNoHrefWithTabIndex" tabindex="1">Eat some funyuns</a><span>...</span>
|
||||||
|
<span>...</span><a id="linkWithNoHrefWithNegativeTabIndex" tabindex="-1">Eat some funyuns</a><span>...</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
|
@ -552,22 +552,21 @@ if ( !isLocal ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
test("attr('tabindex')", function() {
|
test("attr('tabindex')", function() {
|
||||||
expect(5);
|
expect(8);
|
||||||
|
|
||||||
// tabindex 0
|
// elements not natively tabbable
|
||||||
equals(jQuery('#listWithTabIndex').attr('tabindex'), 0, 'tabindex of 0');
|
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');
|
||||||
|
|
||||||
// positive tabindex
|
// anchor without href
|
||||||
equals(jQuery('#linkWithTabIndex').attr('tabindex'), 2, 'tabindex of 2');
|
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');
|
||||||
// negative tabindex
|
equals(jQuery('#linkWithNoHrefWithNegativeTabIndex').attr('tabindex'), -1, 'anchor without href, no tabindex set');
|
||||||
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'), 0, 'no tabindex, tabbable by default');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("attr('tabindex', value)", function() {
|
test("attr('tabindex', value)", function() {
|
||||||
|
|
Loading…
Reference in a new issue