From edf5f9fc7c1082308c9932c1d784f41baa078b04 Mon Sep 17 00:00:00 2001 From: kay delaney <45561153+kaydelaney@users.noreply.github.com> Date: Wed, 4 Jun 2025 10:58:11 +0100 Subject: [PATCH] Dashboards: Improve a11y for dashboard title/description inputs (#106294) --- .../edit-pane/DashboardEditableElement.tsx | 22 ++++++++++++++----- .../PanelEditor/OptionsPaneItemDescriptor.tsx | 15 ++++++++----- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/public/app/features/dashboard-scene/edit-pane/DashboardEditableElement.tsx b/public/app/features/dashboard-scene/edit-pane/DashboardEditableElement.tsx index f370087b35a..3ccdf843e82 100644 --- a/public/app/features/dashboard-scene/edit-pane/DashboardEditableElement.tsx +++ b/public/app/features/dashboard-scene/edit-pane/DashboardEditableElement.tsx @@ -32,17 +32,21 @@ export class DashboardEditableElement implements EditableDashboardElement { const { body } = dashboard.useState(); const dashboardOptions = useMemo(() => { + const dashboardTitleInputId = 'dashboard-title-input'; + const dashboardDescriptionInputId = 'dashboard-description-input'; const editPaneHeaderOptions = new OptionsPaneCategoryDescriptor({ title: '', id: 'dashboard-options' }) .addItem( new OptionsPaneItemDescriptor({ title: t('dashboard.options.title-option', 'Title'), - render: () => , + id: dashboardTitleInputId, + render: () => , }) ) .addItem( new OptionsPaneItemDescriptor({ title: t('dashboard.options.description', 'Description'), - render: () => , + id: dashboardDescriptionInputId, + render: () => , }) ); @@ -76,14 +80,20 @@ export class DashboardEditableElement implements EditableDashboardElement { } } -export function DashboardTitleInput({ dashboard }: { dashboard: DashboardScene }) { +export function DashboardTitleInput({ dashboard, id }: { dashboard: DashboardScene; id?: string }) { const { title } = dashboard.useState(); - return dashboard.setState({ title: e.currentTarget.value })} />; + return dashboard.setState({ title: e.currentTarget.value })} />; } -export function DashboardDescriptionInput({ dashboard }: { dashboard: DashboardScene }) { +export function DashboardDescriptionInput({ dashboard, id }: { dashboard: DashboardScene; id?: string }) { const { description } = dashboard.useState(); - return