Opened 12 years ago
Closed 10 years ago
#9918 closed enhancement (fixed)
DateTextBox: add focus and navigation for Calendar popup
Reported by: | Adam Peller | Owned by: | Becky Gibson |
---|---|---|---|
Priority: | high | Milestone: | 1.6 |
Component: | Accessibility | Version: | 1.3.2 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
Calendar is now accessible. Need to have a way to transfer focus to the popup (up/down arrow key?) and implement escape key to get out.
Change History (18)
comment:1 Changed 12 years ago by
comment:2 Changed 12 years ago by
comment:3 Changed 12 years ago by
would really like to get this into 1.4 but I have to deal with the a11y grid bugs first.
comment:4 Changed 12 years ago by
Milestone: | tbd → 1.5 |
---|
comment:5 Changed 11 years ago by
Milestone: | 1.5 → future |
---|
comment:7 follow-up: 10 Changed 11 years ago by
Milestone: | future → 1.6 |
---|---|
Owner: | changed from Becky Gibson to bill |
Status: | new → assigned |
Summary: | a11y: add focus and navigation to datetextbox popup → DateTextBox: add focus and navigation for Calendar popup |
(In [22556]) Fix Calendar to handle keypress events forwarded from DateTextBox, thus making the DateTextBox's calendar drop down keyboard accessible.
Remaining issues include:
- Needs review for screen reader support (if that's possible to support). One possible modification is to make every keystroke change the value in the <input> field, so that the screen reader knows what happened. But need to worry about how to handle disabled dates in the calendar.
- Automated tests
- ENTER key handling: in Calendar, every arrow key press changes the Calendar's value, firing onChange(). Note the difference from ColorPalette, which only fires onChange() upon the ENTER/SPACE key. The difference is because ColorPalette cells gets focus and using the arrow keys just changes the focused cell, rather than changing the value... whereas Calendar as a drop down doesn't focus at all.
Normally onChange() makes dijit.popup() report an onExecute event, which then makes _HasDropDown close the drop down. Working around this now by adding an explicit onExecute() method to Calendar which is only called on the ENTER/SPACE key. But I only intended the onExecute() callback to be used for fancy drop downs like TooltipDialog. Maybe there's a better way to handle this, perhaps flagging Calendar as an always-fires-onchange type widget and monitoring for ENTER key in _HasDropDown itself.
- Fix key repeat. Typematic never worked for TimeTextBox because of complications with forwarding the key events from the TimeTextBox to the _TimePicker. However, key repeat did work because we were attaching to the onkeypress event. _HasDropDown currently attaches to onkeyup rather than onkeypress. Switching it to onkeypress is not trivial, because _HasDropDown also has an onkeydown handler which calls evt.preventDefault(), which on IE makes the onkeypress event not fire for ENTER/SPACE key. (In other words, need to be careful that we don't break ENTER/SPACE key handling.)
comment:8 Changed 11 years ago by
comment:9 Changed 11 years ago by
comment:10 Changed 11 years ago by
Replying to bill:
(In [22556]) Fix Calendar to handle keypress events forwarded from DateTextBox, thus making the DateTextBox's calendar drop down keyboard accessible.
it seems that this change has stopped the calendar from working as a drop down in a DropDownButton?. clicking on a date no longer closes the drop down. it looks like the fix might be as simple as calling this.onExecute()
from _onDayClick
but not sure if that's right.
comment:12 Changed 11 years ago by
comment:13 Changed 11 years ago by
(In [22665]) Calendar: separate focus and selection handling, so that (like ColorPalette and Tree), arrow keys navigate and ENTER/SPACE selects the date (fixes #10001 !strict). This allows navigation across disabled dates (refs #6430, fixes #11484), and completes keyboard support for DateTextBox, although it still needs screen reader work (refs #9918).
Also seems to have fixed the ctrl-page-up/down problem on FF/mac (fixes #11483).
Also merged in Calendar.set("value", ..., priorityChange) support from neonstalwart (fixes #11331), thanks!
comment:14 Changed 10 years ago by
Owner: | changed from bill to Becky Gibson |
---|---|
Status: | assigned → new |
All this needs now is review/fixes for screen reader support. Becky, can you do that?
comment:15 Changed 10 years ago by
Status: | new → assigned |
---|
Yes - will review and get working with screen reader. Will need to context shift so may be a few weeks.
comment:16 Changed 10 years ago by
I updated the doc at http://docs.dojocampus.org/dijit/Calendar to add the accessibility information for Calendar.
comment:17 Changed 10 years ago by
Also updated doc for DateTextBox?: http://docs.dojocampus.org/dijit/form/DateTextBox
comment:18 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
final fix in [23410] closing.
See #6430