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
accessKeyProcessors
is 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
accessKeyProcessors
is 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.uiElement
is 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
accessKeyProcessors
is empty when opening dialog for the second time, but should keep processors for each key.I think that
accessKeyProcessors
property 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 callingunregisterAccessKey
method in plugin.