Moodle is designed to provide equal functionality and information to all people. This means that there should be no barriers for people regardless of disabilities, assistive technologies that are used, different screen sizes and different input devices (for example mouse, keyboard and touchscreen).
As part of our ongoing commitment to provide an accessible platform and to continuously improve compliance with WCAG 2.1 Level AA, Moodle has been working with an external auditor to review the platform since January 2020.
Key pages within Moodle, which are representative of its overall accessibility and functionality, are audited using both automated tools and user journey testing. The WCAG 2.1 Level A and Level AA issues raised from this audit were all addressed in Moodle 3.10 and Moodle 3.9.3 (both released on November 9th 2020). Many of these accessibility improvements where also back-ported to Moodle 3.7.5+ and Moodle 3.8.2+, where possible.
Both Moodle, and the Moodle Mobile App hold a WCAG 2.1 AA accreditation based on the successful resolution of issues identified during audits.
These accreditations are renewed each year.
One of Moodle's biggest features is its ability to create and share content to other users. Where possible a range of accessibility authoring and auditing features have been added to the user interface so that content is as accessible as possible.
One example of this is in the "Atto text editor" which includes an "Accessibility checker" and an "Accessibility helper" which provide additional information for content authors on the accessibility of their content. One example of this is a check to ensure that content meets WCAG AA colour contrast requirements.
All accessibility features of the "MathJax" content filter are enabled as standard, allowing screen readers to read math content directly.
All components in Moodle must be available for use by all users. Accessibility needs to be part of the design of every new feature in Moodle.
For simple features with no requirement for an advanced user interface, simple adherence to standard HTML5 does provide an accessible feature. In this case, advice from W3C is not to use ARIA at all than to use it incorrectly.
All text that is presented needs to be displayed in a colour with sufficient contrast to its background colour so that the text is legible for all users. The foreground and background colours should meet the WCAG requirement for contrast, which varies depending on the size of the text. This can be tested with the WebAIM Web Accessibility Evaluation Tool.
It is worth noting that colour alone must not be used to imply meaning. An example of a failure for this would be to display error messages in "red" with no other information to convey that this is an error message.
See the W3C advice on the use of colour from WCAG 2.1 for more information.
Icons (Images) can be displayed in a variety of ways, and the correct use of icons will depend on the context in which they are used.
See the WCAG 2.1 requirement for text alternatives for more information.
Icons displayed on their own, as part of a link or as informative content must include accessible text to convey the meaning of the icon. For an image tag, this can be the
"alt" attribute for the image tag. It can be valid to include both the
"alt" attribute and the "title" attribute (shown when hovering with the mouse) so that all users can access the textual meaning of the icon.
Icons and Text
When an icon is displayed immediately before or after some text that also describes the meaning of the icon, it is redundant to repeat the same text twice. In this case, it is correct to hide the icon from screen readers by setting the "role" attribute to "presentation" or hiding it with the "aria-hidden" attribute set to "true".
When multiple icons are displayed in a row as links, it is important that each icon is large enough and has sufficient space around it so the icon can be easily clicked with the mouse.
The minimum valid size for a link target is 44 by 44 pixels.
See the WCAG 2.1 requirement for target size for more information.
All components should be entirely operable through a keyboard-only interface.
See the WCAG 2.1 requirement for keyboard accessibility for more information.
Some important things to consider is that all components should be focusable with the keyboard (available in the tab sequence), and should allow the focus to be moved away using only the keyboard.
The element that currently has focus should have a visual focus indicator. The W3C provide information on ARIA focus management as part of it's ARIA best practices.
In some cases, a single component can contain many smaller components. In order to not pollute the page tab sequence, the parent element can exist in the tab sequence once and should maintain focus within its smaller components with arrow key navigation (roving
tabindex or active descendant). The W3C provide information ARIA keyboard navigation inside components as part of it's ARIA best practices.
- All form elements must have a label
- The form must be able to be completed entirely with the keyboard
- Invalid entries in the form fields should be indicated with the "aria-invalid" attribute set to "true"
- Warning messages for invalid form fields should be associated with the invalid field using the "aria-describedby" attribute. See the WCAG 2.1 success criteria for Error Identification for further information on this.
Any component that contains no information or functionality that is not provided by other components on the page can be considered decorative only. Content that meets this description can be hidden from screen readers using a suitable technique (aria-hidden or presentation role).
See the WCAG 2.1 description of pure decoration for more information.
The layout of each page of content should be separated into valid regions where each region has a unique label and the correct landmark role. This is typically done in the layout files of the theme.
See the ARIA best practice advice on landmarks for further information.
All pages should have a unique title that describes the current page.
See the WCAG 2.1 success criteria for web page titles for further information.
Advanced UX Widgets
- Does this component work entirely when accessed only via the keyboard?
- Does this component map to any widget from the ARIA Authoring Practices document and if so, does it implement all of the "Keyboard Interaction" and "WAI-ARIA Roles, States and Properties" listed for that widget?
- W3C Accessibility Standards Overview
- Accessible Rich Internet Applications (WAI-ARIA) 1.1
- WAI-ARIA Authoring Practices 1.1
- Web Content Accessibility Guidelines (WCAG) 2.1
- Authoring Tool Accessibility Guidelines (ATAG) 2.0
- User Agent Accessibility Guidelines (UAAG) 2.0
Moodle officially supports the following screen reader/browser configurations:
- Microsoft Edge, Jaws 15+ (Latest version recommended)
- Mozilla Firefox, NVDA 2014.1+ (Latest version recommended)
- Screen readers:
- Accessibility tools:
Moodle aims to comply with the following international legislation where possible.
- Equality Act 2010
- Public sector equality duty
- SENDA - Special Educational Needs and Disability Act/Bill