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.
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.
For optimal screen reader experience, we recommend using Google Chrome and NVDA (Windows) or Safari and VoiceOver (macOS).
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.
📎 Download VPAT® report for CKEditor 5 v44.3.0 (Mar 5, 2025)
- 📎 VPAT® report for CKEditor 5 v43.0.0 (Aug 7, 2024)
- 📎 VPAT® report for CKEditor 5 v41.4.2 (May 17, 2024)
- 📎 VPAT® report for CKEditor 5 v41.3.0 (Apr 10, 2024)
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.
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)
Copy linkAction | 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 | ↑, ↓ |
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 |
Action | PC | Mac |
---|---|---|
Increase list item indent | ⇥ | |
Decrease list item indent | Shift+⇥ | ⇧⇥ |
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) |
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 | ↑, →, ↓, ← |
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) |
Keystrokes introduced by Source Editing Enhanced plugin, to streamline code editing experience.
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 |
Action | PC | Mac |
---|---|---|
Fold all | Ctrl+Alt+[ | ⌃⌥[ |
Fold code | Ctrl+Shift+[ | ⌘⌥[ |
Unfold all | Ctrl+Alt+] | ⌃⌥] |
Unfold code | Ctrl+Shift+] | ⌘⌥] |
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 |
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 |
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 |
Action | PC | Mac |
---|---|---|
Switch between "focus with tab" and "indent with tab" mode | Ctrl+M | ⌥⇧M |
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.
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.