JOOA11Y - The Joomla Accessibility Checker
Jooa11y is an accessibility and quality assurance tool that visually highlights common accessibility and usability issues.
Features
Geared towards content authors, Jooa11y identifies many errors or warnings and provides guidance on on how to fix them. Jooa11y is not a comprehensive code analysis tool - it exclusively highlights content issues.
- Over 50 test conditions.
- Free and open source.
- Included by default in Joomla 4.1
- Concise tooltips explain issues right on the page.
- Low tech: No complex API or integrations.
- Additional (toggleable) checks: Contrast, form labels, readability, links (Advanced).
- Dark mode.
Keyboard Navigation and Shortcuts
There are several keyboard shortcuts that can be used with Jooa11y.
- Alt + A(ccessibility) - Toggle the panel
- Esc - Close the panel
- Alt + S(kip) - Skip to the next issue
- Alt + . - Skip to the next issue
States
Jooa11y has three simple states.
Errors
Accessibility and usability issues are detected. Jooa11y highlights common WCAG 2.1 Level A and AA accessibility issues.
Warnings
Warns you of potential accessibility or usability issues, and prompts you to manually review an element.
Pass
No apparent accessibility or usability issues are detected. A "thumbs up" to let you know you're good.
Checks
Jooa11y checks for the following content related issues and warnings.
Errors
- Images
- Missing alternative text.
- Alt text contains a file extension.
- Alt text contains only placeholder text.
- Links
- Generic link text such as "learn more" or "click here".
- Empty hyperlinks.
- Links that only contain an icon font without an accessible name or label.
- Tables
- Missing table headers.
- Empty table headers.
- Table contains semantic headings.
- Headings
- Headings that skip levels.
- Page does not start with a Heading 1 or Heading 2.
- Empty headings.
- Missing Heading 1.
- Poor text contrast.
- Inputs missing labels.
- Page language not declared.
Warnings
- Headings
- Blockquotes incorrectly used as headings.
- Headings that are too long (Not a WCAG 2.1 requirement).
- Bolded text used as headings.
- Images
- Hyperlinked images: ensure alt text describes link location.
- Images containing redundant words in alt text like "image of" or "graphic of".
- Use of ALL CAPS/Uppercase.
- Contrast that cannot be programatically determined, such as text with an image background.
- Closed captions for videos.
- Transcripts for podcasts and audio content.
- Check PDF for accessibility or recommend to convert into HTML.
- Links (Advanced)
- Links that open in a new tab without warning.
- Links with identical names should have an equivalent purpose.
- Links to PDF and other files without warning.
Additional Checks
Jooa11y has four optional checks and a dark mode setting that can be enabled in the "Show Settings" tab. Although these checks are "optional", it does not imply they are not important!
- Contrast
- Checks the contrast of various text elements.
- Form labels
- Checks all form inputs for a corresponding label.
- Usability recommendation to remove "Reset" buttons on forms.
- Links (Advanced)
- Links that open in a new tab without warning.
- Links with identical names should have equivalent purpose.
- Links to PDF and other files without warning.
- Readability
- Estimates the readability score of all paragraph and list content.
Outline
The Show Outline button displays the page's heading structure, similar to the table of contents for a book. The page outline gives you a visual idea of how each part is interconnected.
Quality Assurance
Creating an inclusive experience requires intention. Content authors have the ability to easily review their work. For example, Jooa11y does not only flag images missing alternative (alt) text, but content authors can also easily review the alt text on images for relevance and quality. Jooa11y has several test conditions to ensure alt and link text follow best practices.
The first image has a Good button with a tooltip that says: Good, the alt text for this image is: "Large mountains of sand in the Nambia desert. The second image is a flower with a red error border whose tooltip says: Error, non descript or placeholder alt text within the linked image found. Ensure the alt text describes the destination of the link.
Readability
Jooa11y can estimate the readability score from all paragraphs and list content within the main content area. A good readability score is an indication that your writing is understandable and easy to digest. It is based on the average length of sentences and words on your page, using a formula known as the Flesch reading-ease test (Wikipedia).
A "good" reading score is between 60 and 100. Sometimes it may be difficult to achieve a good readability score. Most of your pages may say "difficult". Remember that this feature is only used to estimate the readability of your content. It should only be used as a reference, and not an indication of conformance.
You can enable the readability feature in the settings panel.
Tips to improve score
- Keep sentences around 15 words on average.
- Avoid sentences greater than 25 words.
- Split long sentences up, or use bullet points.
- Avoid complex words or words with many syllables.
Technical details about readability score
Jooa11y calculates the readability score based on all paragraph (<p> tags) and list content (<li> tags). A low score does not affect the pass or fail state of Jooa11y. This feature works for English content only (at the moment).
Acknowledgements
Jooa11y began as a vanilla js fork of the Sa11y library, which was created by Digital Media Projects, Computing and Communication Services (CCS) at Ryerson University in Toronto, Canada.
Sa11y itself began as a fork of Tota11y by Khan Academy
License
Jooa11y is open source software released under the "GPL-2.0-or-later" License. Copyright Open Source Matters, Inc