Opened 12 years ago

Closed 10 years ago

Last modified 9 years ago

#5111 closed defect (fixed)

Slider: disabled slider should not be a tab stop

Reported by: ptbrunet Owned by: Douglas Hays
Priority: high Milestone: 1.4
Component: Dijit - Form Version: 0.9
Keywords: a11y Cc: brunet@…, Becky Gibson
Blocked By: Blocking:

Description (last modified by bill)

Open http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/tests/form/test_Slider.html

and tab to the disabled slider. It shouldn't be a tab stop.

Fails in FF2 and FF3. OK in IE6, IE7.

Attachments (1)

5111.patch (2.5 KB) - added by Douglas Hays 10 years ago.
remove disabled from attributeMap so _setDisabledAttr runs after tabIndex is set, and add autoamted test

Download all attachments as: .zip

Change History (10)

comment:1 Changed 12 years ago by ptbrunet

To see this you can use the MSAA inspect tool and turn on the focus highlight button.

comment:2 Changed 12 years ago by bill

Owner: set to Douglas Hays

comment:3 Changed 12 years ago by Douglas Hays

Resolution: fixed
Status: newclosed

(In [11878]) Fixes #5111. Remove tabIndex on disable, re-add on enable.

comment:4 Changed 10 years ago by bill

Description: modified (diff)
Milestone: 1.11.5
Resolution: fixed
Status: closedreopened
Summary: Slider, FF2 and FF3 only: disabled slider should not be a tab stop.Slider: disabled slider should not be a tab stop

This isn't working completely:

  • it's still not working on Safari4 [and FF3?]
  • setting disabled initially (as a parameter to the constructor) doesn't work, only setting it after initialization via attr("disabled", ...)
  • doing attr("tabIndex", "5") (for example) on a disabled slider will make the tab key navigate to the slider

The underlying issues are:

  • disabled is still in attributeMap even though there's a _setDisabledAttr() method in _FormWidget. It should be removed from attributeMap
  • the removeAttribute("tabIndex") call in _setDisabledAttr() should be changed to set tabIndex to -1, as removeAttribute("tabIndex") is buggy on safari4
  • if we allow changing the tabIndex after initialization then we need a _setTabIndexAttr() method too. That would also make the code more robust. Right now we are just "lucky" that the _setDisabledAttr() method is called after that code that applies tabIndex through attributeMap.

Anyway we should have a test case for an initially disabled slider.

comment:5 Changed 10 years ago by bill

PS: after this is fixed probably the _setTabIndexAttr() method I added to Select.js in [20570] won't be necessary anymore, please remove if so.

Changed 10 years ago by Douglas Hays

Attachment: 5111.patch added

remove disabled from attributeMap so _setDisabledAttr runs after tabIndex is set, and add autoamted test

comment:6 Changed 10 years ago by bill

Milestone: 1.51.4

We'll put this into 1.4 after all.

comment:7 Changed 10 years ago by Douglas Hays

Cc: Becky Gibson added
Keywords: a11y added

comment:8 Changed 10 years ago by Douglas Hays

Resolution: fixed
Status: reopenedclosed

(In [20790]) Fixes #5111. Remove disabled from attributeMap since there's already a _setDisabledAttr function. This will allow tabIndex to be set before disabled is set, which forces tabIndex to -1. Add automated test.

comment:9 Changed 9 years ago by bill

Component: DijitDijit - Form
Note: See TracTickets for help on using tickets.