You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Web-Workspace- Press ESC select all checkbox is highlighted #104680
Version Number: 9.5.16-0 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#102380 Email or phone of affected tester (no customers):duytestnguyen+dk49@gmail.com Issue reported by: Applause Internal Team Bug source: Pull Request QA execution Device used: Windows 11 Chrome App Component: Workspace Settings
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Causing PR (high confidence):Offer the workspace members bulk actions in the floating bar. It added the bulk action bar to Members, including the Esc handler that's meant to hide this focus ring. Test steps 22–23 in that PR cover this exact case, and they fail.
Recommendation: demote, then fix forward. The bug is cosmetic: Esc still clears the selection, and only a 1px focus ring is left. Reverting a 53-file feature for that isn't worth it.
Root cause:useBulkActionBarFocus/index.ts:146-148 skips the suppression when the checkbox already matches :focus-visible. Pressing Esc is what makes it match, so the check always returns early. markProgrammaticFocus never runs, and the focus-ring CSS draws the ring.
Fix: Replace isShowingFocusRing(active) with getHadTabNavigation() from src/libs/hadTabNavigation.ts. Esc doesn't change that flag. Mouse users lose the ring, and keyboard users who tabbed to the checkbox keep it. Add a unit test for suppressStrayFocusRing.
isShowingFocusRing only runs element.matches(':focus-visible'). The code comment at line 144 says Esc makes the focused element match :focus-visible. By the time the handler runs, the mouse-clicked checkbox already matches, so the guard defeats itself.
hadTabNavigation is set to true only by Tab. Pointer and mouse down set it to false, and Esc isn't counted as a typing key. restoreFocusWithModality already uses this flag.
Other PRs ruled out: None of the 57 App PRs in Deploy Checklist: New Expensify 2026-10-21 touch the focus-ring CSS, the Esc shortcut, the header checkbox, or this hook.
New to this release: Production has no bulk bar on Members, so Esc there leaves the workspace. That matches "N/A in production". The expense report view's bulk bar may show the same ring in production. That's unverified.
No test coverage:tests/unit/useBulkActionBarFocusTest.ts never calls suppressStrayFocusRing.
Not verified: The exact Chrome timing comes from the code comment and the QA result. I didn't reproduce it in a browser.
Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.
Activity
melvin-bot commentedon Oct 22, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #102380
melvin-bot commentedon Oct 22, 2026
@JS00001 @shubham1206agra you have been assigned to this deploy blocker because you reviewed the offending PR: #102380
melvin-bot commentedon Oct 22, 2026
@Krishna2323 you have been assigned to this deploy blocker because you authored the offending PR: #102380
github-actions commentedon Oct 22, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
melvin-bot commentedon Oct 22, 2026
💬 A slack conversation has been started in #expensify-open-source
applause-bot commentedon Oct 22, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/77f196aaa703192c45a6eadcbc6331ae1e914f615a793668574b10f369f700d0
MelvinBot commentedon Oct 22, 2026
Deploy Blocker Investigation
Causing PR (high confidence): Offer the workspace members bulk actions in the floating bar. It added the bulk action bar to Members, including the Esc handler that's meant to hide this focus ring. Test steps 22–23 in that PR cover this exact case, and they fail.
Recommendation: demote, then fix forward. The bug is cosmetic: Esc still clears the selection, and only a 1px focus ring is left. Reverting a 53-file feature for that isn't worth it.
Root cause:
useBulkActionBarFocus/index.ts:146-148skips the suppression when the checkbox already matches:focus-visible. Pressing Esc is what makes it match, so the check always returns early.markProgrammaticFocusnever runs, and the focus-ring CSS draws the ring.Fix: Replace
isShowingFocusRing(active)withgetHadTabNavigation()fromsrc/libs/hadTabNavigation.ts. Esc doesn't change that flag. Mouse users lose the ring, and keyboard users who tabbed to the checkbox keep it. Add a unit test forsuppressStrayFocusRing.Investigation details
BulkActionBar/index.tsx:118-129callssuppressStrayFocusRing()and thenonClearSelection().isShowingFocusRingonly runselement.matches(':focus-visible'). The code comment at line 144 says Esc makes the focused element match:focus-visible. By the time the handler runs, the mouse-clicked checkbox already matches, so the guard defeats itself.hadTabNavigationis set to true only by Tab. Pointer and mouse down set it to false, and Esc isn't counted as a typing key.restoreFocusWithModalityalready uses this flag.tests/unit/useBulkActionBarFocusTest.tsnever callssuppressStrayFocusRing.Next Steps: Reply with
@MelvinBot implement thisto create a draft PR, or@MelvinBot <your feedback>to refine this analysis.view run
JS00001 commentedon Oct 22, 2026
Demoting, @Krishna2323 lets fix this though
Krishna2323 commentedon Oct 26, 2026
I'll have a PR up for this today.
JS00001 commentedon Oct 26, 2026
ty!
Keep the focus ring off a checkbox the selection was made with by mouse
Krishna2323 commentedon Oct 28, 2026
This issue is covered in #105229