diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.cpp b/src/cascadia/TerminalSettingsEditor/MainPage.cpp index 7b082ea53c..2f3cd75db0 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.cpp +++ b/src/cascadia/TerminalSettingsEditor/MainPage.cpp @@ -381,6 +381,28 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation _setThemeOnPopups(SettingsSearchBox(), requestedTheme); } + void MainPage::_AnnounceNavPaneState(bool opened) + { + if (const auto automationPeer{ Automation::Peers::FrameworkElementAutomationPeer::FromElement(SettingsNav()) }) + { + automationPeer.RaiseNotificationEvent( + Automation::Peers::AutomationNotificationKind::ActionCompleted, + Automation::Peers::AutomationNotificationProcessing::MostRecent, + opened ? RS_(L"Nav_PaneOpenedAnnouncement") : RS_(L"Nav_PaneClosedAnnouncement"), + L"SettingsNavPaneState"); + } + } + + void MainPage::SettingsNav_PaneOpened(const MUX::Controls::NavigationView&, const IInspectable&) + { + _AnnounceNavPaneState(true); + } + + void MainPage::SettingsNav_PaneClosed(const MUX::Controls::NavigationView&, const IInspectable&) + { + _AnnounceNavPaneState(false); + } + // Function Description: // - Called when NavigationView items are invoked. Navigates to the corresponding page. // Arguments: diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.h b/src/cascadia/TerminalSettingsEditor/MainPage.h index 81719751c6..60c11f9a90 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.h +++ b/src/cascadia/TerminalSettingsEditor/MainPage.h @@ -56,6 +56,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation void SettingsNav_Loaded(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args); void SettingsNav_ItemInvoked(const Microsoft::UI::Xaml::Controls::NavigationView& sender, const Microsoft::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs& args); + void SettingsNav_PaneOpened(const Microsoft::UI::Xaml::Controls::NavigationView& sender, const Windows::Foundation::IInspectable& args); + void SettingsNav_PaneClosed(const Microsoft::UI::Xaml::Controls::NavigationView& sender, const Windows::Foundation::IInspectable& args); void SaveButton_Click(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args); void ResetButton_Click(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args); void BreadcrumbBar_ItemClicked(const Microsoft::UI::Xaml::Controls::BreadcrumbBar& sender, const Microsoft::UI::Xaml::Controls::BreadcrumbBarItemClickedEventArgs& args); @@ -100,6 +102,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation void _NavigateToColorSchemeHandler(const IInspectable& sender, const IInspectable& args); Microsoft::UI::Xaml::Controls::NavigationViewItem _FindProfileNavItem(winrt::guid profileGuid) const; + void _AnnounceNavPaneState(bool opened); + void _UpdateBackgroundForMica(); void _MoveXamlParsedNavItemsIntoItemSource(); diff --git a/src/cascadia/TerminalSettingsEditor/MainPage.xaml b/src/cascadia/TerminalSettingsEditor/MainPage.xaml index 27ef0043fb..950295a10c 100644 --- a/src/cascadia/TerminalSettingsEditor/MainPage.xaml +++ b/src/cascadia/TerminalSettingsEditor/MainPage.xaml @@ -68,6 +68,8 @@ IsSettingsVisible="False" ItemInvoked="SettingsNav_ItemInvoked" Loaded="SettingsNav_Loaded" + PaneClosed="SettingsNav_PaneClosed" + PaneOpened="SettingsNav_PaneOpened" TabFocusNavigation="Cycle"> diff --git a/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw b/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw index f24f67a0e2..640d67dfd9 100644 --- a/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw +++ b/src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw @@ -669,6 +669,14 @@ Startup Header for the "startup" menu item. This navigates to a page that lets you see and modify settings related to the app's launch experience (i.e. screen position, mode, etc.) + + Navigation pane opened + Screen reader announcement made when the user activates the toggle button that opens the settings navigation pane. + + + Navigation pane closed + Screen reader announcement made when the user activates the toggle button that closes the settings navigation pane. + Open JSON file Header for a menu item. This opens the JSON file that is used to log the app's settings.