Accessibility support
CKEditor 5 incorporates various accessibility features, including keyboard navigation, screen reader support (ARIA attributes), and robust semantic output markup. This guide provides a detailed overview and presents the current status of editor accessibility.
# Conformance with WCAG 2.x and Section 508
CKEditor 5 is compliant with Web Content Accessibility Guidelines 2.2 (WCAG) 2.2 levels A and AA and Section 508 of the Rehabilitation Act unless stated otherwise in the Accessibility Conformance Report.
- Web Content Accessibility Guidelines 2.2 (WCAG) provides international standards for making web content accessible to individuals with disabilities, ensuring that web applications are perceivable, operable, understandable, and robust for all users.
- Section 508 of the Rehabilitation Act mandates that federal agencies’ electronic and information technology is accessible to people with disabilities, establishing guidelines to achieve this goal.
CKEditor 5 strives for conformance with these standards and we welcome your feedback on the accessibility of our software.
# Recommended software
For optimal screen reader experience, we recommend using Google Chrome and NVDA (Windows) or Safari and VoiceOver (macOS).
# Accessibility Conformance Report (VPAT)
In our ongoing commitment to accessibility, we provide a report based on the ITI Voluntary Product Accessibility Template (VPAT®), a standardized format for evaluating the accessibility of computer software. This document serves as a comprehensive resource detailing the accessibility features of CKEditor 5, including compliance with accessibility standards and guidelines: Web Content Accessibility Guidelines 2.2 (WCAG) 2.2 levels A and AA and Section 508 of the Rehabilitation Act.
We continuously update the VPAT® report to reflect any changes or improvements. You can download the latest version of the VPAT® document below.
# Keyboard shortcuts
CKEditor 5 supports various keyboard shortcuts that boost productivity and provide necessary accessibility to screen reader users.
Keyboard support is enabled by default for all editor types and core editor features.
Below is a list of the most important keystrokes supported by CKEditor 5 and its features.
# Content editing keystrokes
These keyboard shortcuts allow for quick access to content editing features.
Action | PC | Mac |
---|---|---|
Insert a hard break (a new paragraph) | Enter | |
Insert a soft break (a <br> element) |
Shift+Enter | ⇧Enter |
Copy selected content | Ctrl+C | ⌘C |
Paste content | Ctrl+V | ⌘V |
Paste content as plain text | Ctrl+Shift+V | ⌘⇧V |
Undo | Ctrl+Z | ⌘Z |
Redo | Ctrl+Y, Ctrl+Shift+Z | ⌘Y, ⌘⇧Z |
Bold text | Ctrl+B | ⌘B |
Change text case | Shift+F3 | ⇧F3 (may require Fn) |
Create link | Ctrl+K | ⌘K |
Move out of a link | ←←, →→ | |
Move out of an inline code style | ←←, →→ | |
Select all | Ctrl+A | ⌘A |
Find in the document | Ctrl+F | ⌘F |
Copy text formatting | Ctrl+Shift+C | ⌘⇧C |
Paste text formatting | Ctrl+Shift+V | ⌘⇧V |
Italic text | Ctrl+I | ⌘I |
Strikethrough text | Ctrl+Shift+X | ⌘⇧X |
Underline text | Ctrl+U | ⌘U |
Revert autoformatting action | Backspace |
# Keystrokes for interacting with annotation threads (such as comments or track changes suggestions)
Action | PC | Mac |
---|---|---|
Move focus to the thread when the selection is anchored in its marker | Ctrl+Shift+E | ⌘⇧E |
Exit the annotation and move focus back to the edited content | Esc | |
Browse the focused annotation thread or thread comment | Enter | |
Move across internals of the annotation thread | ⇥, Shift+⇥ | ⇥, ⇧⇥ |
Submit the reply while writing a comment | Ctrl+Enter | ⌘Enter |
Move to the previous or next thread in the annotations sidebar or comments archive | ↑, ↓ |
# Keystrokes that can be used when a widget is selected (such as image, table, etc.)
Action | PC | Mac |
---|---|---|
Insert a new paragraph directly after a widget | Enter | |
Insert a new paragraph directly before a widget | Shift+Enter | ⇧Enter |
Move the caret to allow typing directly before a widget | ↑, ← | |
Move the caret to allow typing directly after a widget | ↓, → | |
After entering a nested editable, move the selection to the closest ancestor widget. For example: move from an image caption to the whole image widget. | Tab then Esc |
# Keystrokes that can be used in a list
Action | PC | Mac |
---|---|---|
Increase list item indent | ⇥ | |
Decrease list item indent | Shift+⇥ | ⇧⇥ |
# Keystrokes for navigating through documents
Action | PC | Mac |
---|---|---|
Go to the previous page (also move selection) | Shift+Page Up | ⇧Page Up (may require Fn) |
Go to the next page (also move selection) | Shift+Page Down | ⇧Page Down (may require Fn) |
# Keystrokes that can be used in a table cell
Action | PC | Mac |
---|---|---|
Move the selection to the next cell | ⇥ | |
Move the selection to the previous cell | Shift+⇥ | ⇧⇥ |
Insert a new table row (when in the last cell of a table) | ⇥ | |
Navigate through the table | ↑, →, ↓, ← |
# User interface and content navigation keystrokes
Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.
Action | PC | Mac |
---|---|---|
Close contextual balloons, dropdowns, and dialogs | Esc | |
Open the accessibility help dialog | Alt+0 | ⌥0 |
Move focus between form fields (inputs, buttons, etc.) | ⇥, Shift+⇥ | ⇥, ⇧⇥ |
Move focus to the toolbar, navigate between toolbars | Alt+F10 | ⌥F10 (may require Fn) |
Navigate through the toolbar or menu bar | ↑, →, ↓, ← | |
Navigate to the next focusable field or an element outside the editor | Tab, Shift+Tab | |
Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content. | Enter, Space | |
Move focus to the menu bar, navigate between menu bars | Alt+F9 | ⌥F9 (may require Fn) |
Move focus in and out of an active dialog window | Ctrl+F6 | ⌘F6 (may require Fn) |
# Source Editing Enhanced (plugin)
Keystrokes introduced by Source Editing Enhanced plugin, to streamline code editing experience.
# Keystrokes related to the built-in code completion mechanism
Action | PC | Mac |
---|---|---|
Accept completion | Enter | |
Close completion | Esc | |
Move completion selection backward | ↑ | |
Move completion selection backward by one page | Page Up | |
Move completion selection forward | ↓ | |
Move completion selection forward by one page | Page Down |
# Keystrokes related to the built-in code folding mechanism
Action | PC | Mac |
---|---|---|
Fold all | Ctrl+Alt+[ | ⌃⌥[ |
Fold code | Ctrl+Shift+[ | ⌘⌥[ |
Unfold all | Ctrl+Alt+] | ⌃⌥] |
Unfold code | Ctrl+Shift+] | ⌘⌥] |
# Keystrokes that change the selection in the code editor
Action | PC | Mac |
---|---|---|
Select all | Ctrl+A | ⌘A |
Select character left | Shift+← | ⇧←, ⌃⇧B |
Select character right | Shift+→ | ⇧→, ⌃⇧F |
Select document end | Shift+Ctrl+End | ⌘⇧↓, ⌘⇧End |
Select document start | Shift+Ctrl+Home | ⌘⇧↑, ⌘⇧Home |
Select group left | Shift+Ctrl← | ⌥⇧← |
Select group right | Shift+Ctrl→ | ⌥⇧→ |
Select line | Alt+L | ⌃L |
Select line boundary backward | Shift+Home | ⇧Home |
Select line boundary forward | Shift+End | ⇧End |
Select line down | Shift+↓ | ⇧↓, ⌃⇧N |
Select line up | Shift+↑ | ⇧↑, ⌃⇧P |
Select page down | Shift+Page Down | ⌃⇧↓, ⇧Page Down |
Select page up | Shift+Page Up | ⌃⇧↑, ⇧Page Up |
Select parent syntax | Ctrl+I | ⌘I |
Select syntax left | Shift+Alt+← | ⌃⇧← |
Select syntax right | Shift+Alt+→ | ⌃⇧→ |
Select line boundary left | ⌘⇧← | |
Select line boundary right | ⌘⇧→ | |
Select line end | ⌃⇧E | |
Select line start | ⌃⇧A |
# Keystrokes that move the cursor (caret) in the code editor
Action | PC | Mac |
---|---|---|
Move cursor to character left | ← | ←, ⌃B |
Move cursor to character right | → | →, ⌃F |
Move cursor to document end | Ctrl+End | ⌘↓, ⌘End |
Move cursor to document start | Ctrl+Home | ⌘↑, ⌘Home |
Move cursor to group left | Ctrl+← | ⌥← |
Move cursor to group right | Ctrl+→ | ⌥→ |
Move cursor to line boundary backward | Home | |
Move cursor to line boundary forward | End | |
Move cursor to line down | ↓ | ↓, ⌃N |
Move cursor to line up | ↑ | ↑, ⌃P |
Move cursor to matching bracket | Shift+Ctrl\ | ⌘⇧\ |
Move cursor to page down | Page Down | ⌃↓, ⌃V, Page Down |
Move cursor to page up | Page Up | ⌃↑, Page Up |
Move cursor to syntax left | Alt+← | ⌃← |
Move cursor to syntax right | Alt+→ | ⌃→ |
Move line down | Alt+↓ | ⌥↓ |
Move line up | Alt+↑ | ⌥↑ |
Move cursor to line boundary left | ⌘← | |
Move cursor to line boundary right | ⌘→ | |
Move cursor to line end | ⌘E | |
Move cursor to line start | ⌘A |
# Keystrokes that modify the code in the editor
Action | PC | Mac |
---|---|---|
Copy line down | Shift+Alt+↓ | ⇧⌥↓ |
Copy line up | Shift+Alt+↑ | ⇧⌥↑ |
Delete bracket pair | Backspace | |
Delete character backward | Backspace, Shift+Backspace | Backspace, ⌃H, ⇧Backspace |
Delete character forward | Delete | ⌃D, Delete |
Delete group backward | Ctrl+Backspace | ⌥Backspace, ⌃⌥H |
Delete group forward | Ctrl+Delete | ⌥Delete |
Delete line | Shift+CtrlK | ⌘⇧K |
Indent less | Ctrl+[ | ⌘[ |
Indent more | Ctrl+] | ⌘] |
Indent selection | Ctrl+Alt+\ | ⌘⌥\ |
Insert blank line | Ctrl+Enter | ⌘Enter |
Insert new line and indent | Enter, Shift+Enter | Enter, ⇧Enter |
Redo | Ctrl+Shift+Z, Ctrl+Y | ⌘⇧Z, ⌘Y |
Redo selection | Alt+U | ⌘⇧U |
Simplify selection | Esc | |
Toggle block comment | Shift+Alt+A | ⇧⌥A |
Toggle comment | Ctrl+/ | ⌘/ |
Undo | Ctrl+Z | ⌘Z |
Undo selection | Ctrl+U | ⌘U |
Delete line boundary backward | ⌘Backspace | |
Delete line boundary forward | ⌘Delete | |
Delete to line end | ⌃K | |
Split line | ⌃O | |
Transpose characters | ⌃T |
# Miscellaneous code editor shortcuts
Action | PC | Mac |
---|---|---|
Switch between "focus with tab" and "indent with tab" mode | Ctrl+M | ⌥⇧M |
# Displaying keyboard shortcuts in the editor
CKEditor 5 offers a dedicated Accessibility help plugin that displays a list of all available keyboard shortcuts in a dialog. It can be opened by pressing Alt + 0 (on Windows) or ⌥0 (on macOS). Alternatively, you can use the toolbar button to open the dialog.
Press Alt+0 (⌥0 on Mac) while editing to display the list of available keyboard shortcuts.
The Accessibility help plugin is enabled by the Essentials plugin from the @ckeditor/ckeditor5-essentials package (which also enables other common editing features).
Learn how integrators can add keyboard shortcuts to their features and supply shortcut information to the Accessibility help dialog.
# Accessibility feedback and bugs
We welcome your feedback on the accessibility of CKEditor 5. You can find the current list of accessibility issues on GitHub. Learn how to report issues.
Every day, we work hard to keep our documentation complete. Have you spotted outdated information? Is something missing? Please report it via our issue tracker.
With the release of version 42.0.0, we have rewritten much of our documentation to reflect the new import paths and features. We appreciate your feedback to help us ensure its accuracy and completeness.