From cee0dcd36a9c50bfd418117c35af73eed05753f5 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Tue, 14 Jul 2026 13:18:11 -0700 Subject: [PATCH] fix: give each kanban board tab a persistent tabpanel for ARIA compliance Inactive tabs' aria-controls pointed at an ID that only existed for the active board, and the one existing tabpanel wrapped just the breadcrumb text instead of the actual columns/cards. Render all four board panels always in the DOM with v-show instead of v-if so every tab's aria-controls resolves to a real, persistent panel wrapping its real content, per the WAI-ARIA Tabs pattern. --- frontend/src/components/KanbanBoard.vue | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/KanbanBoard.vue b/frontend/src/components/KanbanBoard.vue index 0f3e0de..bddae72 100644 --- a/frontend/src/components/KanbanBoard.vue +++ b/frontend/src/components/KanbanBoard.vue @@ -79,7 +79,7 @@ function labelFor(stage) { -
+
{{ activeBoard.label }} › {{ labelFor(activeStage) }}
@@ -97,16 +97,24 @@ function labelFor(stage) {
-
+
-

{{ labelFor(stage) }} ({{ itemsForStage(activeBoardKey, stage).length }})

+

{{ labelFor(stage) }} ({{ itemsForStage(board.key, stage).length }})

-

Nothing here

+

Nothing here