a11y (critical) - grading grade-range editor is unlabelled
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- react, typescript
- Domain
- accessibility, frontend
Research direction
Start in frontend-app-course-authoring at Settings → Grading and locate the grading-scale resize handles and segment-name inputs using the selectors in the report. Rerun axe on a fresh course with the default Pass/Fail range; done means each boundary slider and segment field has an accessible name and the reported button-name and label violations are gone.
Written by the indexing model from the issue text.
Description
Where: frontend-app-course-authoring, Settings → Grading
(${APPS}/<mount>/course/<key>/settings/grading). Measured on Tutor main,
2026-09-08, on a fresh course (default Pass/Fail range).
Finding: axe reports two critical WCAG 2.2 AA violations in the editor's own
controls, independent of authored content:
button-name(1 node per draggable boundary): the range handles
(button.grading-scale-segment-btn-resize[role="slider"]) carry
aria-valuemin/max/nowbut no accessible name, so a screen reader announces
"slider, 50" with no indication of which grade boundary it moves.label(3 nodes on the default range, one per segment): the segment name
fields (input[data-testid="grading-scale-segment-input"]) have no label,
placeholder, oraria-label; the failing bucket's disabled field included.
Suggested fix: give each handle an aria-label naming the boundary it moves
(e.g. "Boundary between A and B"), and each segment field an aria-label
("Grade name") — the range text beside it is not associated with the input.
- Dominant language
- TypeScript
- Stars
- 17
- Forks
- 218
- Avg merge
- 9d 20h
- Merged PRs (30d)
- 20
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openedx/frontend-app-authoring
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
openedx/frontend-app-authoring#3242 · 2 comments ·
-
a11y bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
openedx/frontend-app-authoring#3241 ·
-
a11y bug
Difficulty 1/5 Under an hour Newbie friendliness 88/100
openedx/frontend-app-authoring#3240 ·
-
a11y bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
openedx/frontend-app-authoring#3239 ·
-
a11y bug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
openedx/frontend-app-authoring#3231 ·
All issues in openedx/frontend-app-authoring
Similar issues
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Automattic/studio#4908 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100