Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Windows Terminal - Settings]: 'Settings' tab does not open in high contrast 'Aquatic' or 'Desert' themes. #17915

Closed
SaurabhNew opened this issue Sep 12, 2024 · 3 comments
Assignees
Labels
A11ySev1 Accessibility tracking A11yWCAG Accessibility tracking Area-Accessibility Issues related to accessibility HCL-E+D Accessibility tracking HCL-WindowsTerminal Accessibility tracking Issue-Bug It either shouldn't be doing this or needs an investigation. Needs-Repro We can't figure out how to make this happen. Please help find a simplified repro. Needs-Tag-Fix Doesn't match tag requirements Product-Terminal The new Windows Terminal.

Comments

@SaurabhNew
Copy link

Windows Terminal version

1.22.2362.0

Windows build number

27695.1000

Other Software

Test Environment:
OS: Windows 11 Version Dev (OS Build 27695.1000)
App: Windows Terminal Preview

Steps to reproduce

Pre-requisite:
Settings>Accessibility>Contrast themes>Aquatic/Desert theme>Reopen the application.

Repro steps:

  1. Open the 'windows terminal' application.
  2. Follow the above-mentioned pre-requisite step.
  3. Now open any application like 'Windows Terminal'.
  4. Now try to open 'Settings' window by pressing 'Ctrl+,' keys or form drop down.
  5. Observe the issue.

User experience:
Users relying on high contrast themes for better visibility are unable to access the 'Settings' tab, limiting their ability to configure or modify terminal settings. This creates a significant barrier for users who need high contrast for accessibility purposes.

MAS Reference Link:
MAS 4.3.1 – No Disruption of Accessibility Features.docx (sharepoint.com)

Attachment:
Settings window is not opening in high contrast themes.zip

Expected Behavior

The 'Settings' tab should open properly regardless of the theme applied, including high contrast themes such as 'Aquatic' and 'Desert.'

Actual Behavior

The 'Settings' tab does not open when the high contrast 'Aquatic' or 'Desert' themes are applied. The issue is specific to these high contrast themes, as the tab opens normally in simple or dark themes.

@SaurabhNew SaurabhNew added Issue-Bug It either shouldn't be doing this or needs an investigation. Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting labels Sep 12, 2024
@Priyanka-Chauhan123 Priyanka-Chauhan123 added HCL-E+D Accessibility tracking A11yWCAG Accessibility tracking HCL-WindowsTerminal Accessibility tracking A11ySev2 Accessibility tracking Area-Accessibility Issues related to accessibility A11ySev1 Accessibility tracking and removed A11ySev2 Accessibility tracking labels Sep 12, 2024
@carlos-zamora carlos-zamora added this to the Terminal v1.23 milestone Sep 12, 2024
@carlos-zamora carlos-zamora removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Sep 12, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Tag-Fix Doesn't match tag requirements label Sep 12, 2024
@carlos-zamora carlos-zamora removed the Needs-Tag-Fix Doesn't match tag requirements label Sep 12, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Tag-Fix Doesn't match tag requirements label Sep 12, 2024
@carlos-zamora carlos-zamora self-assigned this Sep 12, 2024
@carlos-zamora carlos-zamora added Product-Terminal The new Windows Terminal. and removed Needs-Tag-Fix Doesn't match tag requirements labels Sep 12, 2024
@carlos-zamora
Copy link
Member

Did a bit of research on this. Surprisingly, this does not repro on a Dev build when I have a debugger attached, but it does repro on WT Canary!

I attached a debugger to WT canary and got a repro. Here's some relevant output:

onecore\com\combase\objact\objact.cxx(4070)\combase.dll!00007FF8678FA7ED: (caller: 00007FF8678FA115) ReturnHr(1565) tid(6518) 80040154 Class not registered
onecore\com\combase\dcomrem\resolver.cxx(2217)\combase.dll!00007FF8678F9613: (caller: 00007FF8678FE08B) ReturnHr(1566) tid(6518) 80040154 Class not registered
onecore\com\combase\dcomrem\resolver.cxx(2420)\combase.dll!00007FF8678FE127: (caller: 00007FF8678FF9B9) ReturnHr(1567) tid(6518) 80040154 Class not registered
C:\__w\1\s\src\cascadia\TerminalSettingsEditor\Generated Files\winrt\base.h(2017)\Microsoft.Terminal.Settings.Editor.dll!00007FFF86ABA3EF: LogHr(7) tid(6518) 80004002 No such interface supported
    [struct winrt::Windows::Foundation::IReference<struct winrt::Windows::UI::Color> __cdecl winrt::impl::as<struct winrt::Windows::Foundation::IReference<struct winrt::Windows::UI::Color>,struct winrt::impl::abi<struct winrt::Windows::Foundation::IUnknown,void>::type,0x0>(struct winrt::impl::abi<struct winrt::Windows::Foundation::IUnknown,void>::type *)]
Exception thrown at 0x00007FF866C9138C (KernelBase.dll) in WindowsTerminal.exe: WinRT originate error - 0x80004002 : 'No such interface supported'.
C:\__w\1\s\src\cascadia\TerminalSettingsEditor\Generated Files\winrt\base.h(2017)\Microsoft.Terminal.Settings.Editor.dll!00007FFF86A8AC0F: LogHr(8) tid(6518) 80004002 No such interface supported
    [struct winrt::Windows::Foundation::IReference<struct winrt::Windows::UI::Color> __cdecl winrt::impl::as<struct winrt::Windows::Foundation::IReference<struct winrt::Windows::UI::Color>,struct winrt::impl::abi<struct winrt::Windows::Foundation::IUnknown,void>::type,0x0>(struct winrt::impl::abi<struct winrt::Windows::Foundation::IUnknown,void>::type *)]
Exception thrown at 0x00007FF866C9138C in WindowsTerminal.exe: Microsoft C++ exception: winrt::hresult_no_interface at memory location 0x000000FB352FCB10.
Exception thrown at 0x00007FF866C9138C in WindowsTerminal.exe: Microsoft C++ exception: [rethrow] at memory location 0x0000000000000000.
Microsoft.Terminal.Settings.Editor.dll!00007FFF86C5C21F: ReturnHr(6) tid(6518) 80004002 No such interface supported
    Msg:[winrt::hresult_error: No such interface supported] 
C:\__w\1\s\src\cascadia\TerminalApp\Generated Files\winrt\Microsoft.Terminal.Settings.Editor.h(2352)\TerminalApp.dll!00007FFF96AE218B: LogHr(25) tid(6518) 80004002 No such interface supported
    [auto __cdecl winrt::impl::consume_Microsoft_Terminal_Settings_Editor_IMainPageFactory<struct winrt::Microsoft::Terminal::Settings::Editor::IMainPageFactory>::CreateInstance(const struct winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings &) const]
Exception thrown at 0x00007FF866C9138C in WindowsTerminal.exe: Microsoft C++ exception: winrt::hresult_no_interface at memory location 0x000000FB352FCDD0.
Exception thrown at 0x00007FF866C9138C in WindowsTerminal.exe: Microsoft C++ exception: [rethrow] at memory location 0x0000000000000000.
C:\__w\1\s\src\cascadia\inc\cppwinrt_utils.h(57)\TerminalApp.dll!00007FFF96B641E6: (caller: 00007FFF96B330F3) LogHr(26) tid(6518) 80004002 No such interface supported
    Msg:[winrt::hresult_error: No such interface supported] 
onecore\com\combase\objact\objact.cxx(4070)\combase.dll!00007FF8678FA7ED: (caller: 00007FF8678FA115) ReturnHr(1568) tid(6518) 80040154 Class not registered
onecore\com\combase\dcomrem\resolver.cxx(2217)\combase.dll!00007FF8678F9613: (caller: 00007FF8678FE08B) ReturnHr(1569) tid(6518) 80040154 Class not registered
onecore\com\combase\dcomrem\resolver.cxx(2420)\combase.dll!00007FF8678FE127: (caller: 00007FF8678FF9B9) ReturnHr(1570) tid(6518) 80040154 Class not registered

The suspicious part is IReference<struct winrt::Windows::UI::Color>.

(This part I feel less confident in, but it's still a bit of a lead)
Looks like MainPage::_UpdateBackgroundForMica is the only spot in MainPage that uses a WinUI Color. I wonder if the bug is in there?

As for how to validate that this was fixed, I need to test that changing the branding may repro the bug. To do that, I need to take a look at Directory.build.props.

@carlos-zamora
Copy link
Member

Ok, after some further research, I wasn't able to get this to repro in the following cases:

  • WT Preview 1.22.2912
  • WT Stable 1.21.2701
  • WT Dev or Canary built off of main
  • 1.22.2912 x64 unpackaged
  • Canary on ARM64
  • Canary from app installer in README

Dustin was also unable to get a repro. It's also wild because I did get a repro originally, but the debug output above apparently happens even when it doesn't repro.

All that said, we've done a lot of work in this area:

I've validated that high contrast mode should be working in just about all the major surfaces in Terminal.

@SaurabhNew could you validate that this issue is still occurring currently? Or even after we send you a build with the aforementioned High Contrast PRs merged?

@carlos-zamora carlos-zamora added the Needs-Repro We can't figure out how to make this happen. Please help find a simplified repro. label Nov 1, 2024
@carlos-zamora
Copy link
Member

If anything, it would probably be fixed by #18130, so actually I'll be closing this as a part of that. We can revisit/reopen if it repros.

@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Tag-Fix Doesn't match tag requirements label Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A11ySev1 Accessibility tracking A11yWCAG Accessibility tracking Area-Accessibility Issues related to accessibility HCL-E+D Accessibility tracking HCL-WindowsTerminal Accessibility tracking Issue-Bug It either shouldn't be doing this or needs an investigation. Needs-Repro We can't figure out how to make this happen. Please help find a simplified repro. Needs-Tag-Fix Doesn't match tag requirements Product-Terminal The new Windows Terminal.
Projects
None yet
Development

No branches or pull requests

3 participants