Problem/Motivation
I ran an accessibility audit on the LMS module code output using the Drupal LMS dev repository as a foundation and then running automated tools (axe-core, pa11y, Lighthouse, IBM Equal Access) along with a more manual review of the HTML output. The audit covered course navigation, course catalog, activity pages, course results, the teacher's evaluation form, the student list, and authentication flows and used the student, teacher, and anonymous user roles.
My audit identified 21 distinct findings in the LMS module's upstream code that affect accessibility or markup correctness. Most are accessibility issues affecting screen reader users or keyboard users; a small number are HTML correctness bugs surfaced during snapshot review.
This audit did not include full keyboard or screen reader testing.
Note: I used AI to help me assemble and run the automated testing suite as well as compile and parse the output of those tools. I also used it as a first-pass on the HTML markup to see if it could identify any issues that it recognized from its training. All of the issues I'll be creating will be ones I verified and/or found myself.
Proposed resolution
I'll use this issue as a tracker and put the actual code changes in focused child issues. My current list:
- course_navigation SDC accessibility: sidebar landmark, progress-bar semantics, activity state, current-step indication, score pronunciation, lesson-summary state, and partial-marks contrast.
- course_card SDC double-link pattern: https://www.drupal.org/project/lms/issues/3586911
- course_status SDC malformed class attribute: https://www.drupal.org/project/lms/issues/3586905
- lms_answer_plugins accessibility: feedback heading level, AJAX live region for answer feedback, question-prompt association with the input group, evaluation-form empty-state.
- lms_classes student list accessibility: exposed filter form label and student-list table caption.
- Course results table render-array accessibility: caption, column scope, per-row link context.
- lms_answer_comments: comment field label.
- Default no_answer activity view display: hide name and uid fields to match the pattern used in the other activity bundles.
- Activity question heading markup (might need discussion).
Remaining tasks
- File child issues for each scope above, linked to this issue as the parent.
- Open merge requests against the 1.1.x dev branch for each child issue that includes code.
- Maintainer review of each child as it becomes ready.
User interface changes
Numerous but each is small and per-component. Visible appearance is unchanged in most cases; the changes add programmatic structure and accessible names that assistive tech can use. I'll put specific UI changes in each child issue.
API changes
Minimal. The course_status SDC will gain a working data-status attribute that does not render correctly today; certain hooks will gain new aria attributes on rendered elements. More details likely in the child issues.
Data model changes
None.
Comments
Comment #2
mindewen commented