WCAG/ATAG compliance, or at least better accessibility than today. #1232
Replies: 5 comments 4 replies
-
This seems like a really important thing that the Payload developers can add! I am in the middle of doing another Pull Request and adding my own contributions to the project. After my pull request gets reviewed and merged this will be my next task as a volunteer. Will you be willing to help out and guide me to make things more accessible for everyone? @AndreasJacobsen |
Beta Was this translation helpful? Give feedback.
-
Hey @AndreasJacobsen thanks for bringing this up. The Payload team agrees that this is high priority for us to tackle. We're going to sink some time into bringing the admin UI up to a better spot re: accessibility immediately, and make it a goal of ours to ensure all future development is done so with a mind toward ensuring a high degree of accessibility moving forward. As this is a moving target, and will need to be addressed on an ongoing basis, I am going to convert this to a discussion. But the team and I will report back on the discussion once we have made progress, and we would welcome progress from the community here as well! @TomDo1234 it would be absolutely amazing if you could contribute here as well. We would GREATLY appreciate it! |
Beta Was this translation helpful? Give feedback.
-
Turns out that we cannot use PayloadCMS because it does not support our workflow and structure. So we have stopped the trial project for using Payload. Headings (and heading levels) is one of the most common ways to navigate webpages for blind users. But for web applications (instead of websites) that users use allot landmarks are often used extensively. They let you very quickly jump between distinct sections of a page. For the navbar I see three -landmarks that each could be easily labelled by their "list heading"<!-- Aria-expanded indicates that a button expands something, and expaded state -->
<button aria-expanded={true} id="collections">Collections
<!-- SVG is announced by screen readers, but without a name they are announced without meaning
We communicate expanded state using aria-expanded, so the expanded icon should be hidden using aria-hidden -->
<svg ... aria-hidden="true"> </svg>
</button>
<!-- <nav> creates a navigation landmarks. Announced when you enter/leave the landmark and available through landmark navigaion -->
<!-- By using aria-labelledby instead of aria-label we guarantee that the visual text is the same as the text announced by screen readers -->
<nav aria-labelledby="collections">
<uL>
<li><a href="/forms">Forms</a></li>
<li><a href="/formsSubmit">Form submissions</a></li>
</uL>
</nav> |
Beta Was this translation helpful? Give feedback.
-
I know this is more of a minor part of the WCAG, but I recently created a PR (#3011) to address the lack of keyboard focus styles https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html I'm also pretty familiar with the WCAG and the various ARIA attributes, and would be happy to help work on making some of the components more accessible. |
Beta Was this translation helpful? Give feedback.
-
I created a custom select field based off the How to Create a Custom Select Field youtube video. <div>
<label className="field-label" htmlFor={`field-${dotToDunder(path)}`}>
{`${upperCaseFirstLetterAllWords(
makeSingular(removeDash(tagCollection))
)}`}
</label>
<SelectInput
path={path}
name={path}
options={options}
value={value}
onChange={(e) => {
setValue(e.value);
}}
/>
</div> I was trying to give the label element a "htmlFor" attribute based off the naming schema used for the "SelectInput" component id
|
Beta Was this translation helpful? Give feedback.
-
Documentation Issue
WCAG stands for "Web Content Accessibility Guidelines", ATAG stands for "Authoring Tool Accessibility Guidelines". These guidelines make ICT-solutions more accessible.
In my company we have a blind employee, he is very good as his job and is as excited as me to find a new CMS-system. But upon a quick inspection of we found several issues that make PayloadCMS very hard for him to use.
Some parts of WCAG are difficult to understand and require allot of work to get right, others are easy to fix. The first WCAG breach we found was 4.1.2 Name, Role Value.
The buttons in the rich text field editor lacks alternative text, all the buttons are simply announced as "button"
The fix for this is relatively simple, assign an accessible label for each button using aria-label and allow users to assign aria-label attributed on custom buttons.
Additional Details
We are in the early phases of choosing a new CMS, PayloadCMS ticks allot of the boxes but falls short when it comes to accessibility.
As this is an open source project we could probably fix allot of the issues ourselves and use them in our solution, but this won't help other Payload users. We could create PRs to fix things, but we are accessibility experts; not developers. We do not feel the quality of our code meets the quality found elsewhere in PayloadCMS.
Why should we care about WCAG?
WCAG compliance makes for better solutions for everyone, not just those with a disability. Things like proper focus highlight with sufficient contrast is necessary for keyboard users, but nice for everyone else too.
How can the freeloading author of this issue help?
I am an accessibility auditor, I can help audit PayloadCMS using screen readers and auditing tools. But before I spend god knows how many hours on that I need to know that accessibility is something you care about and want to maintain.
Will this make PayloadCMS money?
Part of my job as an accessibility consultant is to evaluate external ICT solutions. See if the work for employees (current or future) with disabilities. In my country (Norway) all public facing ICT-solutions are required by law to be WCAG compliant, in the EU this only applies for the public sector. If I did this for PayloadCMS the answer would simply be "you cannot use this, it is not accessible enough". Which is sad - the front end code quality is better than allot of others things I've tried.
How can we tell if we follow WCAG?
Automated tools such as Axe Devtools can find around 30-50% of the WCAG-issues. The rest requires manual testing. Writing WCAG compliant code is really just writing "good" proper HTML. In my experience work towards WCAG compliance usually leads to higher quality and more robust HTML/JS code in projects.
Beta Was this translation helpful? Give feedback.
All reactions