Skip to content

fix(bindx-ui): preserve keyboard navigation in cell tooltips - #120

Merged
matej21 merged 1 commit into
mainfrom
fix/tooltip-keyboard-navigation
Sep 22, 2026
Merged

matej21 merged 1 commit into
mainfrom
fix/tooltip-keyboard-navigation

Conversation

@matej21

@matej21 matej21 commented Sep 21, 2026

Copy link
Copy Markdown
Member

Closes #119.

Summary

Fix the keyboard-navigation regression introduced by the portaled cell filter panel in 0.1.52.

  • Focus reveals the panel without moving focus away from the cell label or its interactive children.
  • ArrowDown on the label enters the panel explicitly. Labels expose the shortcut through aria-keyshortcuts.
  • Escape restores focus to the originating cell without reopening the panel, including when the panel was opened by hover.
  • Tab and Shift+Tab at the panel edges bypass Radix's focus loop and let native navigation continue from the originating cell.
  • Preserve hover grace periods and coordinated pointer/focus behavior.

Use tabbable to identify eligible focus targets instead of maintaining a custom focusability selector. Add a link to the playground's relation cell to exercise real navigation.

Verification

  • Full unit/integration suite: 2107 passed, 0 failed.
  • Chromium browser tests for keyboard navigation and the existing datagrid: 21 passed, 0 failed.
  • Browser coverage includes native Tab/Shift+Tab, following the cell link with Enter, explicit ArrowDown entry, Escape restoration, reopening, and hover-opened panel dismissal.
  • bun run typecheck passed.
  • bun run lint --ignore-pattern '.claude/**' passed with 0 errors and 16 existing warnings. The ignored directory contains unrelated nested worktrees.

@matej21
matej21 merged commit 78c1712 into main Sep 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Relation cell filter panel traps keyboard focus and drops it on Escape (regression in 0.1.52)

1 participant