diff --git a/source/appModules/explorer.py b/source/appModules/explorer.py index a279f167852..9ad19359852 100644 --- a/source/appModules/explorer.py +++ b/source/appModules/explorer.py @@ -44,6 +44,12 @@ def _get_container(self): return super(MultitaskingViewFrameListItem, self).container +class SearchBoxClient(IAccessible): + # #20021: File Explorer can fire a redundant MSAA focus event on the search band pane + # immediately after the UIA SearchEditBox gains focus. + shouldAllowIAccessibleFocusEvent = False + + # Class for menu items for Windows Places and Frequently used Programs (in start menu) # Also used for desktop items class SysListView32EmittingDuplicateFocusEvents(IAccessible): @@ -225,6 +231,14 @@ def chooseNVDAObjectOverlayClasses(self, obj, clsList): # NOQA: C901 windowClass = obj.windowClassName role = obj.role + if ( + windowClass in ("Search Box", "UniversalSearchBand") + and role == controlTypes.Role.PANE + and isinstance(obj, IAccessible) + ): + clsList.insert(0, SearchBoxClient) + return # Optimization: return early to avoid comparing class names and roles that will never match. + if windowClass == "ToolbarWindow32": if role != controlTypes.Role.POPUPMENU: try: diff --git a/user_docs/en/changes.md b/user_docs/en/changes.md index b9b38b1655d..c696c828d4b 100644 --- a/user_docs/en/changes.md +++ b/user_docs/en/changes.md @@ -65,6 +65,7 @@ The setting is disabled by default. (#20013, @LeonarddeR) * Capital indicators are now correctly announced when selecting single characters. (#19505, @cary-rowen) * Configuration profile triggers now activate when the Add-on Store is open. (#19583, @bramd) * After cancelling an add-on download and reopening the Add-on Store, downloading another add-on no longer fails. (#20015, @Cary-rowen) +* In File Explorer, pressing `ctrl+f` once again focuses the search box without subsequently reporting a pane. (#20021, @Cary-rowen) * MathML in Chromium is more reliably read after NVDA starts or restarts. (#19813, @RyanMcCleary) * Decorative Unicode letters such as negative squared, negative circled, and regional indicator symbol characters are now normalized to their base Latin letters when Unicode normalization is enabled. (#19608, @bramd) * NVDA no longer crashes when the Add-on Store download directory cannot be cleaned up due to file permission errors. (#19202, @christopherpross)