From 27003fc6cb777d5ad557bd8e218d241fb4c6aa22 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Mon, 24 Nov 2025 14:19:58 -0700 Subject: [PATCH] Add accessibility labels to the diff file line numbers Changelog: fixed --- app/assets/javascripts/diffs/components/diff_row.vue | 3 +++ spec/frontend/diffs/components/diff_row_spec.js | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/diffs/components/diff_row.vue b/app/assets/javascripts/diffs/components/diff_row.vue index a1c3282cba65da..78cb4452ba10c4 100644 --- a/app/assets/javascripts/diffs/components/diff_row.vue +++ b/app/assets/javascripts/diffs/components/diff_row.vue @@ -292,6 +292,7 @@ export default { v-if="props.line.left.old_line && props.line.left.type !== $options.CONFLICT_THEIR" :data-linenumber="props.line.left.old_line" :href="props.line.lineHrefOld" + :aria-label="props.line.left.old_line" @click="listeners.setHighlightedRow({ lineCode: props.line.lineCode, event: $event })" > @@ -318,6 +319,7 @@ export default { v-if="props.line.left.new_line && props.line.left.type !== $options.CONFLICT_OUR" :data-linenumber="props.line.left.new_line" :href="props.line.lineHrefOld" + :aria-label="props.line.left.new_line" @click="listeners.setHighlightedRow({ lineCode: props.line.lineCode, event: $event })" > @@ -445,6 +447,7 @@ export default { v-if="props.line.right.new_line" :data-linenumber="props.line.right.new_line" :href="props.line.lineHrefNew" + :aria-label="props.line.right.new_line" @click="listeners.setHighlightedRow({ lineCode: props.line.lineCode, event: $event })" > diff --git a/spec/frontend/diffs/components/diff_row_spec.js b/spec/frontend/diffs/components/diff_row_spec.js index 57d39f928aef16..e3804e9a6c781d 100644 --- a/spec/frontend/diffs/components/diff_row_spec.js +++ b/spec/frontend/diffs/components/diff_row_spec.js @@ -194,13 +194,19 @@ describe('DiffRow', () => { it('renders left line numbers', () => { wrapper = createWrapper({ props: { line: testLines[0] } }); const lineNumber = testLines[0].left.old_line; - expect(wrapper.find(`[data-linenumber="${lineNumber}"]`).exists()).toBe(true); + const line = wrapper.find(`[data-linenumber="${lineNumber}"]`); + + expect(line.exists()).toBe(true); + expect(line.attributes('aria-label')).toBe(String(lineNumber)); }); it('renders right line numbers', () => { wrapper = createWrapper({ props: { line: testLines[0] } }); const lineNumber = testLines[0].right.new_line; - expect(wrapper.find(`[data-linenumber="${lineNumber}"]`).exists()).toBe(true); + const line = wrapper.find(`[data-linenumber="${lineNumber}"]`); + + expect(line.exists()).toBe(true); + expect(line.attributes('aria-label')).toBe(String(lineNumber)); }); describe('drag operations', () => { -- GitLab