Opened 10 years ago

Closed 10 years ago

#9430 closed defect (fixed)

Unable to tab through dialog

Reported by: Adam Peller Owned by: Becky Gibson
Priority: high Milestone: 1.4
Component: Dijit Version: 1.3.0
Keywords: a11y keyboard Cc:
Blocked By: Blocking:

Description

Load dijit/tests/test_Dialog.html and hit the 'show dialog' button.

On Safari3: The focus remains on the 'show dialog' button. I'd expect the first control in the dialog to gain focus. On FF3, I'm not sure where the focus is -- it looks like it might be on the Time: field?

Now, try tabbing until you reach the dialog or click on the first field in the dialog and keep tabbing.

Safari3: tabs through the 4 text boxes, skips the time control and the button, and then proceeds to tab through the browser's controls (should it stay in the dialog?) There appears to be no way to tab to the button to cancel or submit the dialog. I guess cancel has a key equiv?

FF3: If I tab around the browser, I get to the description field in the dialog only, then out of the dialog and around the browser. If I click on the first dialog field, I can tab through the first 3 text boxes, then it seems to get stuck on the Time: field. Hitting 'return' to popup the time selector then tabbing gets me out of that, but I'd expect to be able to tab directly out of the field. Keep tabbing, I go to description, but never get to the submit button.

Change History (9)

comment:1 Changed 10 years ago by bill

Hmm this is working fine for me on safari 4 (it's been released officially now and it auto-downloaded to my machine), and working on FF3/mac too. I can't reproduce those tabbing problems you mentioned.

There's an automated test for this, BTW, in Dialog_a11y.html.

comment:2 Changed 10 years ago by Becky Gibson

I don't expect this to work in Safari 3 as we don't claim full keyboard support. As for FF, check your Keyboard & Mouse system preferences on the Mac. On the Keyboard shortcuts tab make certain that the all controls radio is selected in the full keyboard access section.

comment:3 Changed 10 years ago by Adam Peller

Ok, user error on my part. That makes it much better. And I agree, Safari 3 isn't important. Here's what I see now on FF3.0.10:

Hit 'show dialog'

The focus is on the time field, not the first field as I would have expected, the popup does not appear unless you hit 'return', and you cannot tab beyond this field (tab or shift-tab) without forcing the popup first.

Keep tabbing and it will tab around the browser controls. When it comes back to the page, it only tabs through 'description' and 'ok' but not the other text controls.

comment:4 Changed 10 years ago by Becky Gibson

Works in the 06/11/09 build (which is after the ondijitclick changes :)but is broken in 06/14/09 build.

comment:5 Changed 10 years ago by Becky Gibson

he focus problem was caused by [17931] - hasAttr() for "disabled" no longer works the same with this change.

The fact that you now have to press enter to make the time popup appear is that someone changed the test to use an inlineEditBox for the time field.

comment:6 Changed 10 years ago by Becky Gibson

also dojo.hasAttr(elem, "tabindex") is not working in IE 8 (haven't tested IE 6 nor 7)

comment:7 Changed 10 years ago by bill

Milestone: tbd1.4
Owner: changed from Becky Gibson to Eugene Lazutkin

[16530] changed the time drop down to InlineEditBox for testing ESC handling. It's weird to have an InlineEditBox in a form (ie, in the Dialog) but I guess it makes sense for testing.

Note that tabbing through the time field works correctly once [17931] is rolled back. I reopened #8991 a few days ago to get this all fixed.

comment:8 Changed 10 years ago by Becky Gibson

Owner: changed from Eugene Lazutkin to Becky Gibson

comment:9 Changed 10 years ago by Becky Gibson

Resolution: fixed
Status: newclosed

(In [18297]) fixes #9430 due to changes made to fix #8991, can no longer use hasAttr(node, "disabled") to test for the disabled attr set on an input field. Better to use dojo.attr(node,"disabled") as that will return the correct boolean value. !strict

Note: See TracTickets for help on using tickets.