Web Content Accessibility Guidelines

This website contains links to software which is either no longer maintained or will be supported only until the end of 2019 (CKFinder 2). For the latest documentation about current CKSource projects, including software like CKEditor 4/CKEditor 5, CKFinder 3, Cloud Services, Letters, Accessibility Checker, please visit the new documentation website.

If you look for an information about very old versions of CKEditor, FCKeditor and CKFinder check also the CKEditor forum, which was closed in 2015. If not, please head to StackOverflow for support.

The full WCAG 1.0 checklist can be viewed in W3C's website.

Priority 1 Checkpoints

In General (Priority 1)
1.1 Provide a text equivalent for every non-text element (e.g., via "alt", "longdesc", or in element content). This includes: images, graphical representations of text (including symbols), image map regions, animations (e.g., animated GIFs), applets and programmatic objects, ascii art, frames, scripts, images used as list bullets, spacers, graphical buttons, sounds (played with or without user interaction), stand-alone audio files, audio tracks of video, and video.
Yes
Important images, such as toolbar buttons and frequently used smiley icons, are provided with screenreader accessible alternate text.
2.1 Ensure that all information conveyed with color is also available without color, for example from context or markup.
Yes
Toolbar buttons will appear as textual buttons in Windows high contrast mode. Selection of text and background colors is still possible with textual labels in the color selection panels.
4.1 Clearly identify changes in the natural language of a document's text and any text equivalents (e.g., captions).
No

6.1 Organize documents so they may be read without style sheets. For example, when an HTML document is rendered without associated style sheets, it must still be possible to read the document.
Yes
The editor and its dialogs are still usable without cascading style sheets. Toolbar buttons appear as textual links without CSS.
6.2 Ensure that equivalents for dynamic content are updated when the dynamic content changes.
Yes
  • IFrames in the editor, such as the WYSIWYG editing area and combo boxes, are given screenreader accessible labels.
  • An equivalent text-only page with a <textarea> element can be created by not activating CKEditor's replace API, if JavaScript is not an option.
7.1 Until user agents allow users to control flickering, avoid causing the screen to flicker.
Yes
There are no blinking or flickering contents in the editor. Moveable UI elements such as dialogs can only be moved in a smooth fashion by the user.
14.1 Use the clearest and simplest language appropriate for a site's content.
Yes
Accessible labels are kept as concise and simple simple as possible.
And if you use images and image maps (Priority 1)
1.2 Provide redundant text links for each active region of a server-side image map.
NA
There are no image maps in the editor.
9.1 Provide client-side image maps instead of server-side image maps except where the regions cannot be defined with an available geometric shape.
NA
There are no image maps in the editor.
And if you use tables (Priority 1)
5.1 For data tables, identify row and column headers.
NA
There are no data tables in the editor UI.Tables are used for layout purpose only.
5.2 For data tables that have two or more logical levels of row or column headers, use markup to associate data cells and header cells.
NA
There are no data tables in the editor UI.Tables are used for layout purpose only.
And if you use frames (Priority 1)
12.1 Title each frame to facilitate frame identification and navigation.
Yes
IFrames in the editor, such as the WYSIWYG editing area and combo boxes, are given screenreader accessible labels.
And if you use applets and scripts (Priority 1)
6.3 Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page.
Yes
An equivalent text-only page with a <textarea> element can be created by not activating CKEditor's replace API, if JavaScript is not an option.
And if you use multimedia (Priority 1)
1.3 Until user agents can automatically read aloud the text equivalent of a visual track, provide an auditory description of the important information of the visual track of a multimedia presentation.
NA
There are no video or audio contents in the editor.
1.4 For any time-based multimedia presentation (e.g., a movie or animation), synchronize equivalent alternatives (e.g., captions or auditory descriptions of the visual track) with the presentation.
NA
There are no video or audio contents in the editor.
And if all else fails (Priority 1)
11.4 If, after best efforts, you cannot create an accessible page, provide a link to an alternative page that uses W3C technologies, is accessible, has equivalent information (or functionality), and is updated as often as the inaccessible (original) page.
Yes
An equivalent text-only page with a <textarea> element can be created by not activating CKEditor's replace API, if JavaScript is not an option.


Priority 2 Checkpoints

In General (Priority 2)
2.2 Ensure that foreground and background color combinations provide sufficient contrast when viewed by someone having color deficits or when viewed on a black and white screen. [Priority 2 for images, Priority 3 for text].
Yes
  • Image elements in the editor UI are designed with good contrast to insure visibility in black and white screens.
  • Textual elements in the editor UI have good contrast against the background color.
3.1 When an appropriate markup language exists, use markup rather than images to convey information.
Yes

3.2 Create documents that validate to published formal grammars.
Yes
IFrame documents created by the editor are always displayed in standards compliant mode rather than quirks mode.
3.3 Use style sheets to control layout and presentation.
Yes

3.4 Use relative rather than absolute units in markup language attribute values and style sheet property values.
No
px is used for sizing most UI elements.
3.5 Use header elements to convey document structure and use them according to specification.
NA

3.6 Mark up lists and list items properly.
NA

3.7 Mark up quotations. Do not use quotation markup for formatting effects such as indentation.
NA

6.5 Ensure that dynamic content is accessible or provide an alternative presentation or page.
Yes
An equivalent text-only page with a <textarea> element can be created by not activating CKEditor's replace API, if JavaScript is not an option.
7.2 Until user agents allow users to control blinking, avoid causing content to blink (i.e., change presentation at a regular rate, such as turning on and off).
Yes
There are no blinking or flickering contents in the editor. Moveable UI elements such as dialogs can only be moved in a smooth fashion by the user.
7.4 Until user agents provide the ability to stop the refresh, do not create periodically auto-refreshing pages.
Yes
There is no auto-refresh logic in the editor.
7.5 Until user agents provide the ability to stop auto-redirect, do not use markup to redirect pages automatically. Instead, configure the server to perform redirects.
Yes
There is no auto-redirect markup in the editor.
10.1 Until user agents allow users to turn off spawned windows, do not cause pop-ups or other windows to appear and do not change the current window without informing the user.
Yes
All dialogs in the editor UI are floating dialogs displayed within the same page.
11.1 Use W3C technologies when they are available and appropriate for a task and use the latest versions when supported.
Yes

11.2 Avoid deprecated features of W3C technologies.
Yes

12.3 Divide large blocks of information into more manageable groups where natural and appropriate.
Yes
Complicated dialogs are split into screenreader accessible tabbed pages.
13.1 Clearly identify the target of each link.
Yes

13.2 Provide metadata to add semantic information to pages and sites.
NA

13.3 Provide information about the general layout of a site (e.g., a site map or table of contents).
NA

13.4 Use navigation mechanisms in a consistent manner.
Yes
Same or similar set of hotkeys (Tab, Shift-Tab, Alt-F10) are used in similar navigating actions in different UI elements.
And if you use tables (Priority 2)
5.3 Do not use tables for layout unless the table makes sense when linearized. Otherwise, if the table does not make sense, provide an alternative equivalent (which may be a linearized version).
No
Tables are used for layout in dialogs. Some of the current table layouts may not make sense when linearized.
5.4 If a table is used for layout, do not use any structural markup for the purpose of visual formatting.
Yes

And if you use frames (Priority 2)
12.2 Describe the purpose of frames and how frames relate to each other if it is not obvious by frame titles alone.
NA
IFrames in the editor are dynamically generated and so it does not make sense to have a separate description section for them.
And if you use forms (Priority 2)
10.2 Until user agents support explicit associations between labels and form controls, for all form controls with implicitly associated labels, ensure that the label is properly positioned.
Yes
Implicit labels (e.g. checkbox labels in dialogs) are always positioned next to the input widgets.
12.4 Associate labels explicitly with their controls.
No
Some UI elements in the editor use implicit labels.
And if you use applets and scripts (Priority 2)
6.4 For scripts and applets, ensure that event handlers are input device-independent.
Yes
Most or all UI elements in the editor can be interacted with via mouse or keyboard.
7.3 Until user agents allow users to freeze moving content, avoid movement in pages.
Yes
UI element or content movements in the editor can only be effected by the user.
8.1 Make programmatic elements such as scripts and applets directly accessible or compatible with assistive technologies [Priority 1 if functionality is important and not presented elsewhere, otherwise Priority 2.]
Yes

9.2 Ensure that any element that has its own interface can be operated in a device-independent manner.


9.3 For scripts, specify logical event handlers rather than device-dependent event handlers.