fix: [Analytics:Visualize Library page]Dialog modal missing title from announcement (#217829)

Closes: #215112

**Description**
Dialog modal, flyout, field visible title should be announced for the
users, especially using assistive technology to know what dialog modal,
flyout opened, what field is active and what is needed to enter in it.

**Changes made:**

1. Added `aria-labelledby={flyoutTitleId}` for mentioned places
This commit is contained in:
Alexey Antonov 2025-04-16 16:19:03 +03:00 committed by GitHub
parent dec6a17ec0
commit bf7389f515
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 9 additions and 17 deletions

View file

@ -58,7 +58,7 @@ class AggBasedSelection extends React.Component<AggBasedSelectionProps, AggBased
return (
<>
<EuiModalHeader>
<EuiModalHeaderTitle>
<EuiModalHeaderTitle id="vis-wizard-modal-title">
<FormattedMessage
id="visualizations.newAggVisWizard.title"
defaultMessage="New aggregation based visualization"

View file

@ -128,7 +128,7 @@ function GroupSelection({
return (
<>
<EuiModalHeader>
<EuiModalHeaderTitle data-test-subj="groupModalHeader">
<EuiModalHeaderTitle data-test-subj="groupModalHeader" id="vis-wizard-modal-title">
<FormattedMessage
id="visualizations.newVisWizard.title"
defaultMessage="Create visualization"

View file

@ -10,7 +10,6 @@
import React from 'react';
import { EuiModal } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { METRIC_TYPE, UiCounterMetricType } from '@kbn/analytics';
import { ApplicationStart, DocLinksStart, IUiSettingsClient } from '@kbn/core/public';
@ -80,19 +79,15 @@ class NewVisModal extends React.Component<TypeSelectionProps, TypeSelectionState
return null;
}
const visNewVisDialogAriaLabel = i18n.translate(
'visualizations.newVisWizard.helpTextAriaLabel',
{
defaultMessage:
'Start creating your visualization by selecting a type for that visualization. Hit escape to close this modal. Hit Tab key to go further.',
}
);
const WizardComponent = this.state.isMainDialogShown ? GroupSelection : AggBasedSelection;
const selectionModal =
this.state.showSearchVisModal && this.state.visType ? (
<EuiModal onClose={this.onCloseModal} className="visNewVisSearchDialog">
<EuiModal
onClose={this.onCloseModal}
className="visNewVisSearchDialog"
aria-labelledby="vis-wizard-modal-title"
>
<SearchSelection
contentClient={this.props.contentClient}
uiSettings={this.props.uiSettings}
@ -105,7 +100,7 @@ class NewVisModal extends React.Component<TypeSelectionProps, TypeSelectionState
<EuiModal
onClose={this.onCloseModal}
className={this.state.isMainDialogShown ? 'visNewVisDialog' : 'visNewVisDialog--aggbased'}
aria-label={visNewVisDialogAriaLabel}
aria-labelledby="vis-wizard-modal-title"
>
<WizardComponent
onVisTypeSelected={this.onVisTypeSelected}

View file

@ -32,7 +32,7 @@ export class SearchSelection extends React.Component<SearchSelectionProps> {
return (
<React.Fragment>
<EuiModalHeader>
<EuiModalHeaderTitle>
<EuiModalHeaderTitle id="vis-wizard-modal-title">
<FormattedMessage
id="visualizations.newVisWizard.newVisTypeTitle"
defaultMessage="New {visTypeName}"

View file

@ -10042,7 +10042,6 @@
"visualizations.newVisWizard.chooseSourceTitle": "Choisir une source",
"visualizations.newVisWizard.filterVisTypeAriaLabel": "Filtrer un type de visualisation",
"visualizations.newVisWizard.goBackLink": "Sélectionner une visualisation différente",
"visualizations.newVisWizard.helpTextAriaLabel": "Commencez à créer votre visualisation en sélectionnant un type pour cette visualisation. Appuyez sur Échap pour fermer ce mode. Appuyez sur Tab pour aller plus loin.",
"visualizations.newVisWizard.learnMoreText": "Envie d'en savoir plus ?",
"visualizations.newVisWizard.legacyTab": "Hérité",
"visualizations.newVisWizard.legacyTabDescription": "Les visualisations héritées devraient être obsolètes à lavenir.",

View file

@ -10033,7 +10033,6 @@
"visualizations.newVisWizard.chooseSourceTitle": "ソースの選択",
"visualizations.newVisWizard.filterVisTypeAriaLabel": "ビジュアライゼーションのタイプでフィルタリング",
"visualizations.newVisWizard.goBackLink": "別のビジュアライゼーションを選択",
"visualizations.newVisWizard.helpTextAriaLabel": "タイプを選択してビジュアライゼーションの作成を始めましょう。ESC を押してこのモーダルを閉じます。Tab キーを押して次に進みます。",
"visualizations.newVisWizard.learnMoreText": "詳細について",
"visualizations.newVisWizard.legacyTab": "レガシー",
"visualizations.newVisWizard.legacyTabDescription": "廃止予定には、今後、レガシービジュアライゼーションが予定されています。",

View file

@ -10049,7 +10049,6 @@
"visualizations.newVisWizard.chooseSourceTitle": "选择源",
"visualizations.newVisWizard.filterVisTypeAriaLabel": "筛留可视化类型",
"visualizations.newVisWizard.goBackLink": "选择不同的可视化",
"visualizations.newVisWizard.helpTextAriaLabel": "通过为该可视化选择类型,开始创建您的可视化。按 Esc 键关闭此模式。按 Tab 键继续。",
"visualizations.newVisWizard.learnMoreText": "希望了解详情?",
"visualizations.newVisWizard.legacyTab": "旧版",
"visualizations.newVisWizard.legacyTabDescription": "计划在未来弃用旧版可视化。",