Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#2420 closed defect (fixed)

dijit checkbox and radio refactor (a11y)

Reported by: Becky Gibson Owned by: davidb
Priority: high Milestone:
Component: Accessibility Version: 0.4.1
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by davidb)

Update: The checkbox and radio button implementations are being redesigned such that the user interacts with the real html inputs. This will allow dijit to adopt, for free, the browser behaviour (mouse and keyboard), of html checkbox and radio buttons. Accessibility will also be free (regular html form accessibility)

was: "The dojo radio buttons have some a11y support. The ARIA spec supports both a role of radio and ragiogroup. A single Dojo radio button should be given a role of radio and placed in the tab order of the page via tabindex=0. Dojo radio buttons that are grouped should be given the role of radiogroup and keyboard movement within a group of radios should be via the left / right arrow keys rather than the tab key. The behavior should mimic that of an HTML radio group."

Attachments (4)

radiokeynav.diff (3.4 KB) - added by david.bolter@… 13 years ago.
patch for dijit's Checkbox.js
checkboxrefactor.diff (15.6 KB) - added by guest 12 years ago.
Tranparent overlay solution -- patch author: David Bolter
checkboxrefactor2.diff (16.9 KB) - added by davidb 12 years ago.
proposed solution
fixonclick.diff (2.2 KB) - added by davidb 12 years ago.
updated overridable click fix to go into svn.

Download all attachments as: .zip

Change History (14)

comment:1 Changed 13 years ago by Becky Gibson

Owner: changed from Becky Gibson to Douglas Hays

Changed 13 years ago by david.bolter@…

Attachment: radiokeynav.diff added

patch for dijit's Checkbox.js

comment:2 Changed 13 years ago by david.bolter@…

Keyboard navigation fully implemented. One possible remaining loose end: tab navigation of a radio group when none are checked is currently implemented to mimic the Firefox behavior. IE behavior is different (see comment in patch) and I think non trivial to implement. A variation on the IE behavior would be easy to implement (e.g. only make the first radio in an unchecked radio group a tab stop).

It would be nice to use the browser's keyboard navigation implementation rather than mimic it ourselves but I have the feeling there are reasons we are not doing this?

Sorry I haven't attached this here earlier... I've discovered the guest account (thanks Simon).

comment:3 Changed 13 years ago by david.bolter@…

Just noting here that we also need to add posinset and setsize aria information. I have created a test page here for seeing how these aria roles might interact with the current accessibility AT and browsers.

Changed 12 years ago by guest

Attachment: checkboxrefactor.diff added

Tranparent overlay solution -- patch author: David Bolter

comment:4 Changed 12 years ago by davidb

Owner: changed from Douglas Hays to davidb
Summary: updated radio a11y supportdijit checkbox and radio a11y support

Update: Working out some final details. There will be another patch coming next week.

Changed 12 years ago by davidb

Attachment: checkboxrefactor2.diff added

proposed solution

comment:5 Changed 12 years ago by davidb

Description: modified (diff)
Summary: dijit checkbox and radio a11y supportdijit checkbox and radio refactor (a11y)

comment:6 Changed 12 years ago by Becky Gibson

Resolution: fixed
Status: newclosed

(In [8248]) from david bolter fixes #2420

comment:7 Changed 12 years ago by davidb

Resolution: fixed
Status: closedreopened

Since onClick is considered user overridable, I have protected (by "_" convention) the click handler implemented in Checkbox.js (in the fixonclick.diff patch). The patch also removes some value changed work I had done, as I think we will come up with different API (around normalization of state and value changes) and the choice and implementation of this API is still to be decided.

Changed 12 years ago by davidb

Attachment: fixonclick.diff added

updated overridable click fix to go into svn.

comment:8 Changed 12 years ago by bill

Milestone: 0.90.9M2

comment:9 Changed 12 years ago by bill

Resolution: fixed
Status: reopenedclosed

(In [8327]) Fixes #2420. Will file another bug about API to programatically set/get "checked" state of checkbox / radio button.

comment:10 Changed 12 years ago by (none)

Milestone: 0.9M2

Milestone 0.9M2 deleted

Note: See TracTickets for help on using tickets.