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

Tooltips show on keyboard focus #4172

Closed
batzen opened this issue Feb 10, 2021 · 7 comments
Closed

Tooltips show on keyboard focus #4172

batzen opened this issue Feb 10, 2021 · 7 comments
Assignees
Labels
Accessibility An issue related to accessibility enhancements or blockers. .NET Framework

Comments

@batzen
Copy link
Contributor

batzen commented Feb 10, 2021

  • .NET Core Version: 5.0
  • Windows version: 20H2
  • Does the bug reproduce also in WPF for .NET Framework 4.8?: Yes

Problem description:
Tooltips started to show on keyboard focus with no way to disable this, without also disabling other accessibility features.
ToolTip only has internal virtual bool ShouldShowOnKeyboardFocus and not, as one would expect, an override able dependency property.
This is a massive breaking change in behavior and also affects .NET 4.8.
I say "massive breaking" because:

  1. Tooltips may be expensive to show/render
  2. Tooltips may cover other content

IMHO: I think it's a sad decision from Microsoft to introduce new behavior and then only allow internal consumers to change that behavior while affecting every app which uses tooltips. As the internal usage shows you fully understood that this behavior is not always the desired behavior, but still decided to make it impossible for everyone else to opt out of it.

Actual behavior:
Tooltips show on keyboard focus.

Expected behavior:
Tooltips should not show on keyboard focus by default, IMHO.
The behavior must be controllable through a dependency property.

Minimal repro:

  1. Add a button to a window and set it tooltip to some string
  2. Select the button via keyboard
  3. Tooltip shows up
@elyoh
Copy link

elyoh commented Feb 10, 2021

Is it possible to get the earlier behaviour using the AppContextSwitch Switch.UseLegacyToolTipDisplay?

@batzen
Copy link
Contributor Author

batzen commented Feb 10, 2021

This would also disable other accessibility features related to tooltips.

@ryalanms ryalanms added .NET Framework Accessibility An issue related to accessibility enhancements or blockers. and removed Untriaged labels Feb 11, 2021
@ryalanms
Copy link
Member

Thank you for the report, @batzen.

@SamBent
Copy link
Contributor

SamBent commented Feb 19, 2021

@batzen - The change was driven by an internal team responsible for accessibility issues across all Microsoft products, who are in turn driven by various consortiums and organizations such as WCAG that set accessibility standards and guidelines for all software producers. In other words, it wasn't WPF's or even Microsoft's decision, and we can't do what you suggest without violating internal rules and putting WPF apps at risk of failing to be eligible for use by agencies with strong accessibility requirements (e.g. governments).

I understand your concerns, but you should raise them with WCAG et al.

@SamBent SamBent closed this as completed Feb 19, 2021
@batzen
Copy link
Contributor Author

batzen commented Feb 19, 2021

@SamBent @ryalanms That's a very strange and concerning answer.
My main request was "The behavior must be controllable through a dependency property.".

It was Microsofts decision to make this non override-able for everyone except internal users.

The Ribbon violates the WCAG standard then. Microsoft must remove the override in the Ribbon if WCAG standards have to be followed so strictly.
And Microsoft must also change the behavior of other Microsoft products as the Ribbon override says "to keep this consistent with other Microsoft products".

If the Ribbon override stays, Microsoft must add the possibility for everyone to override it.
If there is an exception for Ribbon like controls and Microsoft does not want to add the possibility for everyone to override it, i hereby request Microsoft to add InternalsVisibileTo for Fluent.Ribbon and every other library providing Ribbon Controls.

FYI @punker76 @GeertvanHorrik

@RussKie
Copy link
Member

RussKie commented Feb 22, 2021

@batzen are tooltips shown when a control is hovered by a mouse? Keyboard tooltips provide the same behaviour for users who is unable to use mouse for whatever reason.

@batzen
Copy link
Contributor Author

batzen commented Feb 23, 2021

@RussKie While i totally agree with you that there should be a way to show tooltips with the keyboard, which was made possible with a shortcut, i don't think that it's a good idea to always show them on keyboard focus as it might not always be the desired behavior.
And that's exactly the same thing Microsoft realized and added a way to disable this behavior for internal consumers.
What's wrong with giving everyone this choice?

Mouse and keyboard are two totally different devices/input methods so it's ok, IMHO, for them to lead to different behavior in an application.

Keyboard tooltips provide the same behaviour for users who is unable to use mouse for whatever reason.

I guess you are referring to users with disabilities. Those users usually use assistive tools to improve their ability to use applications. At least that's my experience while talking to them and improving their experience in the applications in develop. Not a single one has asked for tooltips to show on keyboard focus.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Accessibility An issue related to accessibility enhancements or blockers. .NET Framework
Projects
None yet
Development

No branches or pull requests

5 participants