This thread tracks the evolution of Slack's focus management system for keyboard navigation and accessibility. Initial posts detail the problem of inconsistent focus transitions for keyboard and screen reader users, leading to confusion and difficulty navigating the application. This post introduces the `FocusTransitionManager`, a central React component that coordinates focus movements across the app using `focusKey` identifiers and React Context. It details API methods for transitioning focus, handling metadata, and managing focus conditions. The system has been adopted across numerous user flows and integrated into core design system components like Modals, significantly improving the keyboard user experience and scaling accessibility efforts.
All Slack trails