diff --git a/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_actions.vue b/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_actions.vue
index 6d8eb952e644dfe200452016b0e8d35e39b098b3..47aee91a8c7798aa50848f3e41b9f127d47f5f80 100644
--- a/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_actions.vue
+++ b/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_actions.vue
@@ -1,6 +1,6 @@
 <script>
 import { GlButton, GlTooltipDirective } from '@gitlab/ui';
-import { __ } from '~/locale';
+import { __, s__, sprintf } from '~/locale';
 
 export default {
   name: 'StageFieldActions',
@@ -28,6 +28,12 @@ export default {
     hideActionTooltip() {
       return this.canRemove ? __('Remove') : __('Hide');
     },
+    hideActionAriaLabel() {
+      return sprintf(s__('CreateValueStreamForm|%{action} stage %{index}'), {
+        action: this.hideActionTooltip,
+        index: this.index + 1,
+      });
+    },
     hideActionIcon() {
       return this.canRemove ? 'remove' : 'eye-slash';
     },
@@ -43,7 +49,7 @@ export default {
       v-gl-tooltip
       category="tertiary"
       :title="hideActionTooltip"
-      :aria-label="hideActionTooltip"
+      :aria-label="hideActionAriaLabel"
       :data-testid="hideActionTestId"
       :icon="hideActionIcon"
       @click="$emit(hideActionEvent, index)"
diff --git a/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_move.vue b/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_move.vue
index 8e4b29732452fc1f1baf47291d07fb08e4e1f273..332c44e9a2466b3c7c47b5b10655e562d512da10 100644
--- a/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_move.vue
+++ b/ee/app/assets/javascripts/analytics/cycle_analytics/vsa_settings/components/stage_field_move.vue
@@ -1,6 +1,6 @@
 <script>
 import { GlButton, GlButtonGroup } from '@gitlab/ui';
-import { __ } from '~/locale';
+import { __, s__, sprintf } from '~/locale';
 import { STAGE_SORT_DIRECTION } from '../constants';
 
 export default {
@@ -33,6 +33,18 @@ export default {
     isLastActiveStage() {
       return this.index === this.lastStageIndex;
     },
+    moveDownAriaLabel() {
+      return sprintf(s__('CreateValueStreamForm|%{action} stage %{index}'), {
+        action: this.$options.i18n.moveDownLabel,
+        index: this.index + 1,
+      });
+    },
+    moveUpAriaLabel() {
+      return sprintf(s__('CreateValueStreamForm|%{action} stage %{index}'), {
+        action: this.$options.i18n.moveUpLabel,
+        index: this.index + 1,
+      });
+    },
   },
   STAGE_SORT_DIRECTION,
 };
@@ -46,7 +58,7 @@ export default {
         :disabled="isFirstActiveStage"
         icon="chevron-up"
         :title="$options.i18n.moveUpLabel"
-        :aria-label="$options.i18n.moveUpLabel"
+        :aria-label="moveUpAriaLabel"
         @click="$emit('move', { index, direction: $options.STAGE_SORT_DIRECTION.UP })"
       />
       <gl-button
@@ -55,7 +67,7 @@ export default {
         :disabled="isLastActiveStage"
         icon="chevron-down"
         :title="$options.i18n.moveDownLabel"
-        :aria-label="$options.i18n.moveDownLabel"
+        :aria-label="moveDownAriaLabel"
         @click="$emit('move', { index, direction: $options.STAGE_SORT_DIRECTION.DOWN })"
       />
     </gl-button-group>
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index f349c22b1a253fb38d9f3646863bf44cacbeb4b2..bd5b9207b78342f011975352405934b60243c31c 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -17418,6 +17418,9 @@ msgstr ""
 msgid "CreateTimelogForm|Time spent"
 msgstr ""
 
+msgid "CreateValueStreamForm|%{action} stage %{index}"
+msgstr ""
+
 msgid "CreateValueStreamForm|%{name} (default)"
 msgstr ""