Handling focus in 2024: supporting different navigation ways with Compose
summary
Covers concrete fixes: Compose requires an explicit visible indicator so adding focusability alone is insufficient and the focusable modifier last in the modifier chain matters; tab order follows declaration order while directional navigation follows the usual four directions; use focusRequester for explicit targets or LocalFocusManager.moveFocus for nearest moves; combinedClickable does not trigger navigation focus so use onKeyEvent instead of combinedClickable to handle keyboard/gamepad actions; respect recommended timeouts via the accessibility manager and test with emulator keyboard or device mirroring.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:09Focus navigation importance
- 6:22Navigation focus types
- 8:05Four focus usability rules
- 13:20Common focus issues and fixes
- 17:36Focus timeouts and custom views
- 19:01Gesture actions and focus
- 21:50Focus in Jetpack Compose
- 24:00Making composables focusable
- 26:32Click actions in Compose focus
- 28:42Timeout adjustments for focus
- 29:45Skipping elements in focus flow
- 30:06Customizing focus order
- 31:53Manually moving focus
- 34:03Testing navigation focus
related talks
36mNavigation focus in 2024: Supporting keyboard navigation with Compose
37mIt's All About Focus - and Accessibility
25mStuck in a Focustrap: Mastering Keyboard Accessibility
46mFocusing on Focus
38mStuck in a Focus Trap
40mTV App Development that Puts No One in a Bind — Focus Control Lessons from Compose Internals
39mManaging Focus for Accessible Digital Applications: From the Essential to the Unnecessary
43mBuilding Accessible Apps with Jetpack Compose
