Accessibility Shortfalls in the Cookie Banner
-
Hi,
First I wanted to say thank you for providing such as thorough wizard. It educated me with questions that I didn’t know I needed to consider.
For that reason I want to use your plugin, but I also have to consider how it’s usable for all of my users including those with disabilities.
I noticed a few problems that should be addressed. I’ll list them below and provide references to WCAG Success Criteria (SC) so that the evidence for these issues is clear.
#1 Missing HTML Headings
This fails SC 1.3.1 Info & Relationship for visually conveying structure that is not programmatically perceivable to other users.The “Text on the manage consent tab” setting is used to add text that summarises the consent banner information. For instance, adding “Manage consent” then adds visually boldened text at the top of the source order, summarising the following paragraph and call to action controls.
While sighted users can perceive the heading, blind screen reader users do not receive that structure. In addition, screen reader users cannot reach the banner through the Heading Navigational shortcuts available to them.
To resolve this, we should implement a HTML Level 2 heading around the text. If we want to achieve a smaller font size, we can do so via CSS that either comes with the plugin itself or the “Use Custom CSS” option.
#2 Checkbox Is Not Named
This fails SC 4.1.2 Name, Role, Value for missing an accessible name.
When viewing preferences within the banner, a checkbox is present inside each applicable consent category, for instance, “Statistics” has a checkbox. Beside the checkbox is a visual label “Statistics”, but this is not programmatically associated. As a result, the checkbox is missing an accessible name.
Screen reader users are not told what is being expected of them when reaching the control. In addition, Voice Control users cannot navigate to the control using direct commands.
Use aria-labelledby to programmatically associate the label (e.g. “Statistics”) with the checkbox for each category.
Simplified example:
<span id=”checkbox1-name”> Statistics </span>
<input type=”checkbox” aria-labelledby=”checkbox1-name”>
You must be logged in to reply to this topic.