Skip to content

fix: keep message navigation aligned with DOM focus - #97

Merged
rodrigogs merged 1 commit into
devfrom
fix/message-focus-sync
Oct 14, 2026
Merged

rodrigogs merged 1 commit into
devfrom
fix/message-focus-sync

Conversation

@rodrigogs

Copy link
Copy Markdown
Owner

Summary

  • synchronize the roving message-list state whenever an article receives DOM focus
  • add a browser regression for direct focus followed by ArrowDown/ArrowUp navigation
  • verify arrow keys remain owned by interactive controls inside messages
  • run the regression in CI on an isolated strict port and ignore local Playwright output

Root cause

The message article could receive focus through Tab, click, script, or assistive technology without updating focusedMessageId. The next arrow key then navigated from stale state rather than from document.activeElement.

Verification

  • RED: focused Playwright regression failed before the onfocus synchronization
  • npm test — 29 files, 241 tests passed
  • npm run check — 0 errors, 0 warnings
  • npm run lint — passed
  • npm run build — passed
  • npm run test:global-search — passed, including privacy E2E
  • npm run test:navigation:e2e — passed on Chromium with isolated --strictPort
  • git diff --check origin/dev — passed

Follow-up hardening for #79.

@rodrigogs
rodrigogs merged commit ad8fec5 into dev Oct 14, 2026
6 checks passed
@rodrigogs
rodrigogs deleted the fix/message-focus-sync branch October 14, 2026 05:09
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.

1 participant