From d46dce4dc2a40f40cdead8db794c63658fca2706 Mon Sep 17 00:00:00 2001
From: Alexey Antonov
Date: Wed, 28 Jan 2026 12:19:26 +0200
Subject: [PATCH 1/3] Address @elastic/eui/require-table-caption lint
violations across @elastic/elastic/obs-ux-management-team files
---
.../components/alert_overview/alert_overview.tsx | 10 +++++++++-
.../components/burn_rate_rule_editor/dependencies.tsx | 8 +++++++-
.../components/compact_view/slo_list_compact_view.tsx | 3 +++
.../components/alerts/rule_monitors_table.tsx | 3 +++
.../components/certificates/certificates_list.tsx | 4 ++++
.../components/common/components/stderr_logs.tsx | 1 +
.../common/monitor_test_result/browser_steps_list.tsx | 5 ++++-
.../monitor_summary/test_runs_table.tsx | 6 ++++++
.../management/monitor_list_table/monitor_list.tsx | 3 +++
.../compact_view/components/monitors_table.tsx | 4 ++++
.../settings/data_retention/dsl_retention_tab.tsx | 3 +++
.../test_now_mode/simple/ping_list/ping_list_table.tsx | 3 +++
.../components/certificates/certificates_list.tsx | 4 ++++
.../components/monitor/ping_list/ping_list_table.tsx | 3 +++
.../availability_reporting/availability_reporting.tsx | 4 ++++
.../components/overview/monitor_list/monitor_list.tsx | 6 +++++-
.../components/synthetics/check_steps/stderr_logs.tsx | 1 +
.../components/synthetics/check_steps/steps_list.tsx | 3 +++
.../app/rum_dashboard/impactful_metrics/js_errors.tsx | 3 +++
19 files changed, 73 insertions(+), 4 deletions(-)
diff --git a/x-pack/solutions/observability/plugins/observability/public/components/alert_overview/alert_overview.tsx b/x-pack/solutions/observability/plugins/observability/public/components/alert_overview/alert_overview.tsx
index 481629e26696c..6010229283a75 100644
--- a/x-pack/solutions/observability/plugins/observability/public/components/alert_overview/alert_overview.tsx
+++ b/x-pack/solutions/observability/plugins/observability/public/components/alert_overview/alert_overview.tsx
@@ -223,7 +223,15 @@ export const AlertOverview = memo(
-
+
>
);
}
diff --git a/x-pack/solutions/observability/plugins/slo/public/components/burn_rate_rule_editor/dependencies.tsx b/x-pack/solutions/observability/plugins/slo/public/components/burn_rate_rule_editor/dependencies.tsx
index 929f3a5ad5203..8a38aab499f82 100644
--- a/x-pack/solutions/observability/plugins/slo/public/components/burn_rate_rule_editor/dependencies.tsx
+++ b/x-pack/solutions/observability/plugins/slo/public/components/burn_rate_rule_editor/dependencies.tsx
@@ -160,7 +160,13 @@ export function Dependencies({ currentRuleId, dependencies, onChange }: Dependen
-
+
{sloToAddRule ? (
{
pageSize,
showPerPageOptions: true,
}}
+ tableCaption={i18n.translate('xpack.synthetics.ruleDetails.monitorsTable.caption', {
+ defaultMessage: 'Rule monitors',
+ })}
/>
);
};
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx
index 5d3a99eea947f..e01d10dbc9577 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx
@@ -9,6 +9,7 @@ import React from 'react';
import moment from 'moment';
import type { Direction } from '@elastic/eui';
import { EuiBasicTable } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
import type { Cert, CertMonitor, CertResult } from '../../../../../common/runtime_types';
import { useDateFormat } from '../../../../hooks/use_date_format';
import { CertStatus } from './cert_status';
@@ -104,6 +105,9 @@ export const CertificateList: React.FC = ({ page, certificates, sort, onC
columns={columns}
items={certificates?.certs ?? []}
pagination={pagination}
+ tableCaption={i18n.translate('xpack.synthetics.certificates.certificatesList.tableCaption', {
+ defaultMessage: 'Certificate details',
+ })}
onChange={(newVal) => {
onChange(newVal.page as Page, newVal.sort as CertSort);
}}
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/components/stderr_logs.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/components/stderr_logs.tsx
index 60cfce7e7a64e..5b1d1bf85f234 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/components/stderr_logs.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/components/stderr_logs.tsx
@@ -154,6 +154,7 @@ export const StdErrorLogs = ({
pageSizeOptions: [2, 5, 10, 20, 50],
}}
onTableChange={onTableChange}
+ tableCaption={title ?? TEST_RUN_LOGS_LABEL}
/>
>
);
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx
index b54d6e4fe8b94..19635e1ca8b4a 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx
@@ -324,6 +324,9 @@ export const BrowserStepsList = ({
defaultMessage: 'No data found',
})
}
+ tableCaption={i18n.translate('xpack.synthetics.monitor.browserStepsList.caption', {
+ defaultMessage: 'Step results',
+ })}
tableLayout="auto"
itemId="_id"
itemIdToExpandedRowMap={testNowMode || showExpand ? expandedMap : undefined}
@@ -470,4 +473,4 @@ const STEP_NAME = i18n.translate('xpack.synthetics.monitor.stepName.label', {
const STEP_DURATION = i18n.translate('xpack.synthetics.monitor.step.duration.label', {
defaultMessage: 'Duration',
-});
+});
\ No newline at end of file
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx
index 10be6e0ca9979..bc0aaa2ebb97c 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx
@@ -316,6 +316,12 @@ export const TestRunsTable = ({
}
: undefined
}
+ tableCaption={i18n.translate(
+ 'xpack.synthetics.monitorDetails.summary.testRunsCaption',
+ {
+ defaultMessage: 'Recent test runs',
+ }
+ )}
/>
);
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_list_table/monitor_list.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_list_table/monitor_list.tsx
index b13be3fe05cc4..62193a187b508 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_list_table/monitor_list.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_list_table/monitor_list.tsx
@@ -126,6 +126,9 @@ export const MonitorList = ({
aria-label={i18n.translate('xpack.synthetics.management.monitorList.title', {
defaultMessage: 'Synthetics monitors list',
})}
+ tableCaption={i18n.translate('xpack.synthetics.management.monitorList.caption', {
+ defaultMessage: 'Synthetics monitors',
+ })}
error={error?.body?.message}
loading={loading}
itemId="config_id"
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/compact_view/components/monitors_table.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/compact_view/components/monitors_table.tsx
index 63b2c02e27718..0ee0350297de5 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/compact_view/components/monitors_table.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/compact_view/components/monitors_table.tsx
@@ -4,6 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
+import { i18n } from '@kbn/i18n';
import React, { useCallback } from 'react';
import type { EuiTableRowProps } from '@elastic/eui';
import { EuiBasicTable } from '@elastic/eui';
@@ -74,6 +75,9 @@ export const MonitorsTable = ({
rowProps={getRowProps}
data-test-subj="syntheticsCompactViewTable"
tableLayout="auto"
+ tableCaption={i18n.translate('xpack.synthetics.monitorsTable.tableCaption', {
+ defaultMessage: 'Monitor status',
+ })}
/>
);
};
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/settings/data_retention/dsl_retention_tab.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/settings/data_retention/dsl_retention_tab.tsx
index 612140c2bff5a..c16fca2cf8f63 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/settings/data_retention/dsl_retention_tab.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/settings/data_retention/dsl_retention_tab.tsx
@@ -32,6 +32,9 @@ export const DslRetentionTab = () => {
loading={loading === true}
columns={DSL_RETENTION_COLUMNS}
tableLayout="auto"
+ tableCaption={i18n.translate('xpack.synthetics.dslRetention.table.caption', {
+ defaultMessage: 'Retention overview',
+ })}
/>
);
};
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/test_now_mode/simple/ping_list/ping_list_table.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/test_now_mode/simple/ping_list/ping_list_table.tsx
index bfadb7dbb2e97..304c2c6459f28 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/test_now_mode/simple/ping_list/ping_list_table.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/test_now_mode/simple/ping_list/ping_list_table.tsx
@@ -127,6 +127,9 @@ export function PingListTable({ loading, error, pings, onChange }: Props) {
defaultMessage: 'No history found',
})
}
+ tableCaption={i18n.translate('xpack.synthetics.pingList.pingListCaption', {
+ defaultMessage: 'Ping history',
+ })}
tableLayout="auto"
onChange={onChange}
/>
diff --git a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/certificates/certificates_list.tsx b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/certificates/certificates_list.tsx
index 75c7a6af586f7..6ea0621eb4026 100644
--- a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/certificates/certificates_list.tsx
+++ b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/certificates/certificates_list.tsx
@@ -7,6 +7,7 @@
import React from 'react';
import moment from 'moment';
+import { i18n } from '@kbn/i18n';
import type { Direction } from '@elastic/eui';
import { EuiBasicTable } from '@elastic/eui';
import { CertStatus } from './cert_status';
@@ -113,6 +114,9 @@ export const CertificateList: React.FC = ({ page, certificates, sort, onC
direction: sort.direction,
},
}}
+ tableCaption={i18n.translate('xpack.uptime.certificatesList.caption', {
+ defaultMessage: 'Certificates overview',
+ })}
noItemsMessage={
certificates.loading ? (
LOADING_CERTIFICATES
diff --git a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/ping_list/ping_list_table.tsx b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/ping_list/ping_list_table.tsx
index 6d50bf42438e3..debe1239596fd 100644
--- a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/ping_list/ping_list_table.tsx
+++ b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/ping_list/ping_list_table.tsx
@@ -240,6 +240,9 @@ export function PingListTable({ loading, error, pings, pagination, onChange, fai
defaultMessage: 'No history found',
})
}
+ tableCaption={i18n.translate('xpack.uptime.pingList.pingHistoryCaption', {
+ defaultMessage: 'Ping history',
+ })}
tableLayout="auto"
rowProps={getRowProps}
onChange={onChange}
diff --git a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/status_details/availability_reporting/availability_reporting.tsx b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/status_details/availability_reporting/availability_reporting.tsx
index 3498dde3f756d..89d9525a34eca 100644
--- a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/status_details/availability_reporting/availability_reporting.tsx
+++ b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/monitor/status_details/availability_reporting/availability_reporting.tsx
@@ -8,6 +8,7 @@
import React, { useState } from 'react';
import type { Criteria, Pagination } from '@elastic/eui';
import { EuiBasicTable, EuiSpacer } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import type { StatusTag } from './location_status_tags';
import { TagLabel } from './tag_label';
@@ -81,6 +82,9 @@ export const AvailabilityReporting: React.FC = ({ allLocations }) => {
columns={cols}
items={allLocations.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize)}
onChange={onTableChange}
+ tableCaption={i18n.translate('xpack.uptime.availabilityReporting.tableCaption', {
+ defaultMessage: 'Availability overview',
+ })}
{...paginationProps}
/>
>
diff --git a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx
index 2bfd6d6913104..665a46bbd6995 100644
--- a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx
+++ b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx
@@ -4,6 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
+import { i18n } from '@kbn/i18n';
import React, { useState } from 'react';
import useDebounce from 'react-use/lib/useDebounce';
import {
@@ -224,6 +225,9 @@ export const MonitorListComponent: ({
>
);
diff --git a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/synthetics/check_steps/steps_list.tsx b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/synthetics/check_steps/steps_list.tsx
index ab7e0c1b93238..8d3b49d99325d 100644
--- a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/synthetics/check_steps/steps_list.tsx
+++ b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/synthetics/check_steps/steps_list.tsx
@@ -236,6 +236,9 @@ export const StepsList = ({
>
);
From cca1228ec8380f0c9e71cf324076e252512c9c8a Mon Sep 17 00:00:00 2001
From: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Date: Wed, 28 Jan 2026 10:47:00 +0000
Subject: [PATCH 2/3] Changes from node scripts/eslint_all_files --no-cache
--fix
---
.../common/monitor_test_result/browser_steps_list.tsx | 2 +-
.../monitor_details/monitor_summary/test_runs_table.tsx | 9 +++------
.../components/overview/monitor_list/monitor_list.tsx | 2 +-
3 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx
index 19635e1ca8b4a..7f55146e272eb 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx
@@ -473,4 +473,4 @@ const STEP_NAME = i18n.translate('xpack.synthetics.monitor.stepName.label', {
const STEP_DURATION = i18n.translate('xpack.synthetics.monitor.step.duration.label', {
defaultMessage: 'Duration',
-});
\ No newline at end of file
+});
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx
index bc0aaa2ebb97c..e903eddc9f3f0 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/test_runs_table.tsx
@@ -316,12 +316,9 @@ export const TestRunsTable = ({
}
: undefined
}
- tableCaption={i18n.translate(
- 'xpack.synthetics.monitorDetails.summary.testRunsCaption',
- {
- defaultMessage: 'Recent test runs',
- }
- )}
+ tableCaption={i18n.translate('xpack.synthetics.monitorDetails.summary.testRunsCaption', {
+ defaultMessage: 'Recent test runs',
+ })}
/>
);
diff --git a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx
index 665a46bbd6995..72a4eeb4ac634 100644
--- a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx
+++ b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/overview/monitor_list/monitor_list.tsx
@@ -286,4 +286,4 @@ const WrapperPanel = euiStyled(EuiPanel)`
transition: background-color 3000ms linear;
}
}
-`;
\ No newline at end of file
+`;
From aafebc297067ce6850597891a933985b2c06dc12 Mon Sep 17 00:00:00 2001
From: Alexey Antonov
Date: Thu, 29 Jan 2026 13:02:12 +0200
Subject: [PATCH 3/3] fix JEST
---
.../synthetics/components/certificates/certificates.test.tsx | 2 +-
.../synthetics/components/certificates/certificates_list.tsx | 2 +-
.../uptime/public/legacy_uptime/pages/certificates.test.tsx | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates.test.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates.test.tsx
index 876d040ffb986..9b5123e43e0fc 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates.test.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates.test.tsx
@@ -13,7 +13,7 @@ describe('CertificatesPage', () => {
it('renders expected elements for valid props', async () => {
const { findByText } = render();
- expect(await findByText(/data table \(empty\)/im)).toBeInTheDocument();
+ expect(await findByText(/Certificates overview/im)).toBeInTheDocument();
expect(await findByText('No Certificates found.')).toBeInTheDocument();
});
});
diff --git a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx
index e01d10dbc9577..fc22e3d2a6101 100644
--- a/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx
+++ b/x-pack/solutions/observability/plugins/synthetics/public/apps/synthetics/components/certificates/certificates_list.tsx
@@ -106,7 +106,7 @@ export const CertificateList: React.FC = ({ page, certificates, sort, onC
items={certificates?.certs ?? []}
pagination={pagination}
tableCaption={i18n.translate('xpack.synthetics.certificates.certificatesList.tableCaption', {
- defaultMessage: 'Certificate details',
+ defaultMessage: 'Certificates overview',
})}
onChange={(newVal) => {
onChange(newVal.page as Page, newVal.sort as CertSort);
diff --git a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/pages/certificates.test.tsx b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/pages/certificates.test.tsx
index 86901bc65ac4e..1f7ee6d1d4743 100644
--- a/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/pages/certificates.test.tsx
+++ b/x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/pages/certificates.test.tsx
@@ -13,7 +13,7 @@ describe('CertificatesPage', () => {
it('renders expected elements for valid props', async () => {
const { findByText } = render();
- expect(await findByText(/data table \(empty\)/im)).toBeInTheDocument();
+ expect(await findByText(/Certificates overview/im)).toBeInTheDocument();
expect(await findByText('No Certificates found.')).toBeInTheDocument();
});
});