At 05:45 PM 4/23/2006, Ian Anderson wrote:
But tabindex is horrendously cumbersome to apply in real sites - if
you put it on one link or control, you really ought to put it on all
of them on the page.
This is an interesting assertion. It appeals to my sense of
uniformity, but is it normative? I can't find reference to it in the W3C spec.
Which does say:
__________________________
"Elements that may receive focus should be navigated by user agents
according to the following rules:
"1. Those elements that support the tabindex attribute and assign
a positive value to it are navigated first. Navigation proceeds from
the element with the lowest tabindex value to the element with the
highest value. Values need not be sequential nor must they begin with
any particular value. Elements that have identical tabindex values
should be navigated in the order they appear in the character stream.
"2. Those elements that do not support the tabindex attribute or
support it and assign it a value of "0" are navigated next. These
elements are navigated in the order they appear in the character stream.
"3. Elements that are disabled do not participate in the tabbing order."
Ref.: http://www.w3.org/TR/html4/interact/forms.html#h-17.11.1
__________________________
Therefore, if you DID feel compelled to add a tabindex attribute to
every input field, but wanted to begin with one field and progress
thereafter in markup order, you could simply assign tabindex="0" as a
default to all fields and assign tabindex="1" to the one field where
you wanted to begin.
And as soon as you make the tab order different from the visual
reading order, you have created a whole raft of different problems
for other users.
If a whole raft of problems are created by assigning tabindex to even
one field, then I guess this whole discussion is moot. However, I'm
not persuaded that that's the case.
Not to mention a maintenance nightmare in the future as options are
added or removed.
Not really for me -- I generate my pages from server-side script
which just LOVES busy-work like assigning incremental values to
sequences of objects.
tabindex is a complete pain in the bahookie, in other words
...for manual work, perhaps. But if it's a viable method for
bringing focus to a starting field in a form and works well with
Jaws, I'll definitely keep it in my toolbox.
By the way, I'd like to add that the JavaScript solution of assigning
focus() on pageload that we hate so much could be made smarter and
more polite: it could assign that focus to the starting field IFF no
other input field held focus AND nothing had been typed in the starting field.
But the advantages of tabindex remain that it's effortlessly
unobtrusive and it functions in the absence of client-side scripting.
Warm regards,
Paul
******************************************************
The discussion list for http://webstandardsgroup.org/
See http://webstandardsgroup.org/mail/guidelines.cfm
for some hints on posting to the list & getting help
******************************************************