Closed Bug 286079 Opened 19 years ago Closed 19 years ago

Tabindex not working with XUL elements

Categories

(Core :: DOM: UI Events & Focus Handling, defect)

x86
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: aaronlev, Assigned: aaronlev)

References

Details

(Keywords: access)

Attachments

(1 file)

Spun off from bug 281545, where it was noticed that using tabindex on some
elements in the page setup dialog was actually removing them from the tab cycle.

> ------- Additional Comment #9 From neil@parkwaycc.co.uk  2005-03-12 15:54 PST  
> A possible issue is that SendFocusBlur assumes that once tabbing is successful,
> the tabbed to element's tabindex attribute is accurate (or empty for zero).

> However the major issue is that none of our xbl bindings implements
> nsIDOMXULControlElement's tabIndex attribute.
Spoke with Neil on IRC, perhaps we should have base impls of disabled and
tabIndex in a base binding xulcontrol binding in general.xml.
Attachment #177378 - Flags: superreview?(neil.parkwaycc.co.uk)
Comment on attachment 177378 [details] [diff] [review]
Create basecontrol binding which implements disabled & tabIndex

>+      <property name="tabIndex"   onget="return this.getAttribute('tabindex');"
>+                                  onset="this.inputField.tabIndex = val;
>+                                         if (val) this.setAttribute('tabindex', val);
>+                                         else this.removeAttribute('tabindex'); return val;"/>
This got me thinking. For the <textbox> binding, the <html:input> inherits the
tabindex attribute. This means that you shouldn't need to set the tab index
directly on the input field. However, neither the multiline textarea nor the
editable menulist do this. In fact, you don't seem to be able to set the tab
index of an editable menulist. If inheriting the tabindex attribute works then
you probably don't have to override the property.

As for reading the tabindex attribute, you should probably parseInt the result
for JavaScript consumers.
Comment on attachment 177378 [details] [diff] [review]
Create basecontrol binding which implements disabled & tabIndex

OK, so change the textbox tabIndex getter to use this.inputField.tabIndex so
it's consistent with what we've currently got.
Attachment #177378 - Flags: superreview?(neil.parkwaycc.co.uk) → superreview+
Attachment #177378 - Flags: review?(vladimir)
Comment on attachment 177378 [details] [diff] [review]
Create basecontrol binding which implements disabled & tabIndex

Nothing immediately jumps out at me (more Neil's area of experties), so
r=vladimir with Neil's suggestions
Attachment #177378 - Flags: review?(vladimir) → review+
Checking in xpfe/global/resources/content/bindings/colorpicker.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/colorpicker.xml,v  <-- 
colorpicker.xml
new revision: 1.18; previous revision: 1.17
done
Checking in xpfe/global/resources/content/bindings/general.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/general.xml,v  <-- 
general.xml
new revision: 1.34; previous revision: 1.33
done
Checking in xpfe/global/resources/content/bindings/listbox.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/listbox.xml,v  <-- 
listbox.xml
new revision: 1.24; previous revision: 1.23
done
Checking in xpfe/global/resources/content/bindings/menulist.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/menulist.xml,v  <-- 
menulist.xml
new revision: 1.35; previous revision: 1.34
done
Checking in xpfe/global/resources/content/bindings/radio.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/radio.xml,v  <--  radio.xml
new revision: 1.39; previous revision: 1.38
done
Checking in xpfe/global/resources/content/bindings/text.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/text.xml,v  <--  text.xml
new revision: 1.15; previous revision: 1.14
done
Checking in xpfe/global/resources/content/bindings/textbox.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/textbox.xml,v  <-- 
textbox.xml
new revision: 1.31; previous revision: 1.30
done
Checking in xpfe/global/resources/content/bindings/tree.xml;
/cvsroot/mozilla/xpfe/global/resources/content/bindings/tree.xml,v  <--  tree.xml
new revision: 1.45; previous revision: 1.44
done
Checking in toolkit/content/widgets/colorpicker.xml;
/cvsroot/mozilla/toolkit/content/widgets/colorpicker.xml,v  <--  colorpicker.xml
new revision: 1.9; previous revision: 1.8
done
Checking in toolkit/content/widgets/general.xml;
/cvsroot/mozilla/toolkit/content/widgets/general.xml,v  <--  general.xml
new revision: 1.11; previous revision: 1.10
done
Checking in toolkit/content/widgets/listbox.xml;
/cvsroot/mozilla/toolkit/content/widgets/listbox.xml,v  <--  listbox.xml
new revision: 1.12; previous revision: 1.11
done
Checking in toolkit/content/widgets/menulist.xml;
/cvsroot/mozilla/toolkit/content/widgets/menulist.xml,v  <--  menulist.xml
new revision: 1.19; previous revision: 1.18
done
Checking in toolkit/content/widgets/preferences.xml;
/cvsroot/mozilla/toolkit/content/widgets/preferences.xml,v  <--  preferences.xml
new revision: 1.9; previous revision: 1.8
done
Checking in toolkit/content/widgets/radio.xml;
/cvsroot/mozilla/toolkit/content/widgets/radio.xml,v  <--  radio.xml
new revision: 1.17; previous revision: 1.16
done
Checking in toolkit/content/widgets/text.xml;
/cvsroot/mozilla/toolkit/content/widgets/text.xml,v  <--  text.xml
new revision: 1.13; previous revision: 1.12
done
Checking in toolkit/content/widgets/textbox.xml;
/cvsroot/mozilla/toolkit/content/widgets/textbox.xml,v  <--  textbox.xml
new revision: 1.20; previous revision: 1.19
done
Checking in toolkit/content/widgets/tree.xml;
/cvsroot/mozilla/toolkit/content/widgets/tree.xml,v  <--  tree.xml
new revision: 1.17; previous revision: 1.16
done
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Component: Keyboard: Navigation → User events and focus handling
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: