Created the accessibility help dialog.
Suggested merge commit message (convention)
Feature (ui): Implemented the AccessibilityHelp plugin that brings a dialog displaying keyboard shortcuts available in the editor. Closes #1014.
Feature (core): Brought the editor.accessibility namespace (Accessibility class) that centralizes accessibility features of the editor. See #1014.
Other (essentials): Enabled the AccessibilityHelp plugin by default. See #1014.
Fix (utils): The exported keyCodes object should contain correct codes for keys related to punctuation, brackets, braces, etc. See #1014.
ℹ️ Comes with https://github.com/cksource/ckeditor5-commercial/pull/5941
https://github.com/ckeditor/ckeditor5/assets/1099479/d266ffe0-203c-4c01-b983-33b467227195
When I press Alt+0 on Mac, a character "ľ" is inserted into the editor. Please note, that I have remapped keys on my Mac, so I actually press Cmd+0 but it shouldn't matter. It looks to me that maybe you didn't prevent the event.
Also, most of the time, the dialog content is not focused. Inserting a character may be a reason but IDK. It works randomly, most of the time it doesn't and someties it does.
Also, it looks that because the character is inserted, the Mac VoiceOver gets confused. It usually does not read the content of the dialog. Instead it reads what was just inserted. Then, even if it read the "introduction" part ("Below are...") it didn't read the table and so forth, I am not sure how this is supposed to work.
Also, most of the time, the dialog content is not focused. Inserting a character may be a reason but IDK. It works randomly, most of the time it doesn't and someties it does.
Sorry for confusion - actually, the dialog is focused but there is no outline. Since I have hard time making VoiceOver read contents, I thought it is not focused at all. But when I use arrow down it scrolls and the outline shows.
EDIT: Buuut, when I use VoiceOver, arrow down press is usually captured and does not scroll the dialog, instead some random element is selected.
IDK how it all works with other screen readers.
When I press Alt+0 on Mac, a character "ľ" is inserted into the editor. Please note, that I have remapped keys on my Mac, so I actually press Cmd+0 but it shouldn't matter. It looks to me that maybe you didn't prevent the event.
Also, most of the time, the dialog content is not focused. Inserting a character may be a reason but IDK. It works randomly, most of the time it doesn't and someties it does.
Also, it looks that because the character is inserted, the Mac VoiceOver gets confused. It usually does not read the content of the dialog. Instead it reads what was just inserted. Then, even if it read the "introduction" part ("Below are...") it didn't read the table and so forth, I am not sure how this is supposed to work.
Sorry for confusion - actually, the dialog is focused but there is no outline. Since I have hard time making VoiceOver read contents, I thought it is not focused at all. But when I use arrow down it scrolls and the outline shows.
EDIT: Buuut, when I use VoiceOver, arrow down press is usually captured and does not scroll the dialog, instead some random element is selected.
IDK how it all works with other screen readers.
You're right. I forgot to cancel the event. I addressed that. I also added more meaningful focus styles that correspond to our design system for visual clarity.
I checked the newest changes in API and LGTM.
@scofalik
When it comes to the API (also relates to accessibilityHelpMetadata) -- I thought that you will separately register category, group, and then keystrokes in them. But I can live with what is right now. Might be even better.
👍
Finally a very minor suggestion that you don't have to agree with it, accessibilityHelpMetadata -> accessibilityMetadata?
Good idea.
BTW. the format of accessibilityHelpMetadata will allow adding further types of metadata in future (not related to keystrokes). I like that - was that on purpose, were you thinking about something?
Yes, I wanted to keep this open-ended in case properties arrive in the future. This will avoid breaking changes.