From c97a7bc2ce495ded6e2b4069004f5896ad7bf0dc Mon Sep 17 00:00:00 2001 From: jcolladokuri Date: Thu, 18 Sep 2025 08:12:00 -0700 Subject: [PATCH] Prometheus: Add aria labels on query builder options for screen readers (#111271) * add aria labels for screen readers on option gorups * add translation extraction --- .../src/locales/en-US/grafana-prometheus.json | 6 +++++- .../components/PromQueryBuilderOptions.tsx | 20 +++++++++++++++++-- .../components/PromQueryLegendEditor.tsx | 4 ++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/packages/grafana-prometheus/src/locales/en-US/grafana-prometheus.json b/packages/grafana-prometheus/src/locales/en-US/grafana-prometheus.json index a2649536022..34fb4482a0d 100644 --- a/packages/grafana-prometheus/src/locales/en-US/grafana-prometheus.json +++ b/packages/grafana-prometheus/src/locales/en-US/grafana-prometheus.json @@ -413,8 +413,11 @@ } }, "prom-query-builder-options": { - "aria-label-lower-limit-parameter": "Set lower limit for the step parameter", + "aria-label-exemplars": "Exemplars switch.", + "aria-label-format": "Format combobox", + "aria-label-lower-limit-parameter": "Min step text box, set lower limit for the step parameter", "aria-label-select-resolution": "Select resolution", + "aria-label-type": "Type radio button group", "format-options": { "label-heatmap": "Heatmap", "label-table": "Table", @@ -438,6 +441,7 @@ "title-parsing-error-switch-builder": "Parsing error: Switch to the builder mode?" }, "prom-query-legend-editor": { + "aria-label-legend": "Legend combobox", "label-legend": "Legend", "placeholder-select-legend-mode": "Select legend mode", "tooltip-legend": "Series name override or template. Ex. {{templateExample}} will be replaced with label value for {{labelName}}." diff --git a/packages/grafana-prometheus/src/querybuilder/components/PromQueryBuilderOptions.tsx b/packages/grafana-prometheus/src/querybuilder/components/PromQueryBuilderOptions.tsx index 8d1d76351c1..17347c7a20b 100644 --- a/packages/grafana-prometheus/src/querybuilder/components/PromQueryBuilderOptions.tsx +++ b/packages/grafana-prometheus/src/querybuilder/components/PromQueryBuilderOptions.tsx @@ -112,7 +112,7 @@ export const PromQueryBuilderOptions = React.memo( type="text" aria-label={t( 'grafana-prometheus.querybuilder.prom-query-builder-options.aria-label-lower-limit-parameter', - 'Set lower limit for the step parameter' + 'Min step text box, set lower limit for the step parameter' )} placeholder={t('grafana-prometheus.querybuilder.prom-query-builder-options.placeholder-auto', 'auto')} minWidth={10} @@ -128,13 +128,25 @@ export const PromQueryBuilderOptions = React.memo( allowCustomValue onChange={onChangeFormat} options={FORMAT_OPTIONS} + aria-label={t( + 'grafana-prometheus.querybuilder.prom-query-builder-options.aria-label-format', + 'Format combobox' + )} /> - + {shouldShowExemplarSwitch(query, app) && ( ( value={query.exemplar || false} onChange={onExemplarChange} data-testid={selectors.components.DataSource.Prometheus.queryEditor.exemplars} + aria-label={t( + 'grafana-prometheus.querybuilder.prom-query-builder-options.aria-label-exemplars', + 'Exemplars switch.' + )} /> )} diff --git a/packages/grafana-prometheus/src/querybuilder/components/PromQueryLegendEditor.tsx b/packages/grafana-prometheus/src/querybuilder/components/PromQueryLegendEditor.tsx index 2d9cf038bc2..33c2e76733c 100644 --- a/packages/grafana-prometheus/src/querybuilder/components/PromQueryLegendEditor.tsx +++ b/packages/grafana-prometheus/src/querybuilder/components/PromQueryLegendEditor.tsx @@ -117,6 +117,10 @@ export const PromQueryLegendEditor = React.memo( width={22} onChange={onLegendModeChanged} value={legendModeOptions.find((x) => x.value === mode)} + aria-label={t( + 'grafana-prometheus.querybuilder.prom-query-legend-editor.aria-label-legend', + 'Legend combobox' + )} /> )}