Opened 11 years ago
Last modified 11 years ago
#12260 confirmed Bug
AccessKey works only once
| Reported by: | Olek Nowodziński | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | Accessibility | Version: | |
| Keywords: | Cc: |
Description
- Open http://ckeditor.dev/samples/replacebycode.html
- Click "Checkbox".
- CTRL+S to see that focus is moved and "Selected" checkbox is checked.
- Click OK to close the dialog.
- Re-open the same dialog.
- Press CTRL+S.
Expected:
"Selected" checkbox is toggled.
Actual:
AccessKey feature is broken is completely broken in that dialog. Other accessKeystrokes does not work either.
Change History (6)
comment:2 follow-up: 3 Changed 11 years ago by
Replying to a.delura:
What I have debugged for now:
In dialog/plugin.js private property
accessKeyProcessorsis empty when opening dialog for the second time, but should keep processors for each key.
The problem is that unregisterAccessKey() is called for every dialog.hide() while registerAccessKey() is called only once while CKEDITOR.ui.dialog.uiElement is invoked. registerAccessKey() got to be called every time dialog is shown.
comment:3 Changed 11 years ago by
Replying to a.nowodzinski:
Replying to a.delura:
What I have debugged for now:
In dialog/plugin.js private property
accessKeyProcessorsis empty when opening dialog for the second time, but should keep processors for each key.The problem is that
unregisterAccessKey()is called for everydialog.hide()whileregisterAccessKey()is called only once whileCKEDITOR.ui.dialog.uiElementis invoked.registerAccessKey()got to be called every time dialog is shown.
That is also a solution. And easiest one I guess.
comment:4 Changed 11 years ago by
Changes in branch:t/12260. I didn't put on review because of lack of tests.
comment:5 Changed 11 years ago by
| Status: | new → confirmed |
|---|
comment:6 Changed 11 years ago by
| Milestone: | CKEditor 4.4.4 |
|---|
I don't know why this ticket has been added to 4.4.4 milestone. Let's wait for a patch first.

What I have debugged for now:
In dialog/plugin.js private property
accessKeyProcessorsis empty when opening dialog for the second time, but should keep processors for each key.I think that
accessKeyProcessorsproperty should be moved to CKEDITOR.dialog instance, because we store already created dialogs, but we don't store access key processors for each one. We clean callingunregisterAccessKeymethod in plugin.