diff --git a/app/client/src/utils/hooks/useWidgetFocus/handleTab.ts b/app/client/src/utils/hooks/useWidgetFocus/handleTab.ts index 9c4bc2a889..6478ae7c0e 100644 --- a/app/client/src/utils/hooks/useWidgetFocus/handleTab.ts +++ b/app/client/src/utils/hooks/useWidgetFocus/handleTab.ts @@ -31,7 +31,16 @@ export function handleTab(event: KeyboardEvent) { default: const tabbable = getTabbableDescendants(currentNode, shiftKey); - nextTabbableDescendant = getNextTabbableDescendant(tabbable, shiftKey); + let isNextWidgetElementFocusable = false; + do { + nextTabbableDescendant = getNextTabbableDescendant(tabbable, shiftKey); + if (nextTabbableDescendant) { + isNextWidgetElementFocusable = !!getFocussableElementOfWidget( + nextTabbableDescendant, + ); + } + tabbable.shift(); + } while (!isNextWidgetElementFocusable && tabbable.length > 0); } // if nextTabbableDescendant is found, focus