From 0e573f67800c053975fbf048f32e5badd41970fc Mon Sep 17 00:00:00 2001 From: Jordan Lorho Date: Tue, 27 Oct 2026 17:44:33 +0100 Subject: [PATCH 1/3] fix(a11y): give DataTable row action buttons an accessible name Icon-only row actions only referenced their tooltip through aria-describedby, and several actions had no title at all, so screen readers announced them as "button". The title is now required on TableAction and used as the button's aria-label. Co-Authored-By: Claude Opus 5.5 --- src/components/DataTable.vue | 9 ++------- src/components/comp_def.ts | 3 ++- src/components/tables/AppTable.vue | 1 + src/components/tables/BundleTable.vue | 2 ++ src/components/tables/ChannelTable.vue | 3 ++- src/pages/settings/organization/Members.vue | 1 + 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/components/DataTable.vue b/src/components/DataTable.vue index 16e6f5955d..96bbc0d107 100644 --- a/src/components/DataTable.vue +++ b/src/components/DataTable.vue @@ -431,10 +431,6 @@ function isActionDisabled(action: NonNullable[number], e return Boolean(action.disabled && action.disabled(elem)) } -function tooltipIdFor(rowIndex: number, actionIndex: number): string { - return `datatable-action-tooltip-${rowIndex}-${actionIndex}` -} - const displayElemRange = computed(() => { if (props.elementList.length === 0) return '0' @@ -807,7 +803,7 @@ const paginationClass = computed(() => props.mobileFixedPagination