- From: Simon Bates <simon.bates@utoronto.ca>
- Date: Fri, 14 Dec 2007 16:55:25 -0500
- To: wai-xtech@w3.org
- CC: "fluid-work@fluidproject.org" <fluid-work@fluidproject.org>
I have been writing a function for Dojo's DHTML accessibility support
that determines if an element is tab-navigable. The function will use
the extended tabindex usage defined by the current ARIA and HTML5
drafts. That is, tabindex on all elements, and tabindex="-1" for removal
from tab order. I have discovered that there is some variation across
browsers in the value that one gets when retrieving the tabindex value
on an element without a tabindex attribute. This note summaries what I
have seen.
I have looked at two elements: div and input. I am using div as an
example of an element that did not have a tabindex attribute in HTML4
and input as an example of one that did. I document here two mechanisms
for retrieving the tabindex: getAttribute(), and the tabIndex property.
Please see below for a link to my test file and a link to the full results.
Firefox 2.0.0.11 Windows XP
and Minefield nightly 3.0b3pre 2007121405 Windows XP
div with no tabindex:
elem.getAttribute("tabindex") = null
elem.tabIndex = -1
input with no tabindex:
elem.getAttribute("tabindex") = null
elem.tabIndex = 0
Internet Explorer 7.0.5730.11 Windows XP
and Internet Explorer 6 Windows XP
div with no tabindex:
elem.getAttribute("tabindex") = 0
elem.getAttribute("tabindex", 2) = 32768
elem.tabIndex = 0
input with no tabindex:
elem.getAttribute("tabindex") = 0
elem.getAttribute("tabindex", 2) = 32768
elem.tabIndex = 0
On IE it is not possible to determine whether a div has no tabindex or
tabindex="0" using elem.getAttribute("tabindex") or elem.tabIndex
because a default value of 0 is returned. Microsoft provides an
extension to getAttribute() that can be used to determine if the
tabindex is unset. If a second parameter of value "2" is passed to
getAttribute(), a value of 32768 is returned whenever tabindex is not
set. See Microsoft's documentation on getAttribute:
http://msdn2.microsoft.com/en-us/library/ms536429.aspx
I have been unable to find documentation on the value of 32768 as used
for tabIndex but it is outside of the range of 0 to 32767 specified by
HTML 4:
http://www.w3.org/TR/html401/interact/forms.html#adef-tabindex
Safari 3.0.4 Mac
div with no tabindex:
elem.getAttribute("tabindex") = null
elem.tabIndex = undefined
input with no tabindex:
elem.getAttribute("tabindex") = null
elem.tabIndex = 0
Test file used to gather results:
http://trac.bitstructures.com/browser/collected/trunk/html-test-cases/getting-tabindex.html?format=raw
Collected test results:
http://trac.bitstructures.com/browser/collected/trunk/html-test-cases/getting-tabindex-results.html?format=raw
Please let me know if you see any shortcomings in the test file or results.
Simon Bates
Adaptive Technology Resource Centre
University of Toronto
Received on Friday, 14 December 2007 21:58:01 UTC