ngraham requested review of this revision.
ngraham added a comment.
Awesome, thanks for introducing that additional information. It seems like we
have some inconsistency here in our Plasma search fields; I will summarize:
| Interface | Search field has keyboard focus by default? | Search
field visible by default? | Search field visibly focused by default? | When
does it become visibly focused? | After gaining keyboard focus, when does it
lose it? |
| --------------- | ------------------------------------------- |
-------------------------------- | ---------------------------------------- |
------------------------------------ |
--------------------------------------------------- |
| Discover | Yes | Yes
| No | After typing
or clicking on it | When you click on anything else |
| Klipper | Yes | Yes
| No | After typing
or clicking on it | Never |
| Widget Explorer | Yes | No
| No | After typing
or clicking on it | Never |
| Kickoff | Yes | No
| No | After typing
or clicking on it | Never |
| System Settings | Yes | Yes
| Yes | N/A; always
focused | After navigating to a KCM |
| Kicker | Yes | Yes
| Yes | N/A; starts
out focused | After you start to navigate the list |
|
It seems like for the most part the interfaces that make the search field
invisible or have a different appearance by default are in the minority and are
being inconsistent with everyone else. So I'm glad that we generally have
consensus that fixing that for Kickoff here is a good idea. I may do the same
for the Widget Explorer too; then we'll have 100% consistent visible-by-default
search fields!
After performing this investigation and all the accompanying behavioral
tests, I realize now that there's a very good reason to keep keyboard focus on
the search field even after the list of search results is being navigated with
the up and down arrow keys: it's so you can edit your search query even after
navigating the list. The only reason why Kickoff doesn't do this is because it
has multiple lists that can be navigated between with the left and right arrow
keys. Kickoff doesn't do that, so I think we have to keep that with this patch.
So onto the next subject: whether or not to have the search field //visibly
focused// by default, or instead to only show the focus when you click on it or
start typing. All of the clients throughout Plasma give the search field
keyboard focus by default, even if the visual appearance doesn't reflect this,
but we are very inconsistent with the visual appearance: System Settings and
Kickoff have it visible and focused by default; klipper and Discover have it
visible but not visibly focused until you click or type; Kickoff and the Widget
explorer have it invisible until you click or type.
I'll admit that I have a preference for giving the search field visible focus
when it actually has keyboard focus. From that perspective, this patch
implements that preference, though I'm willing to continue the conversation to
achieve consensus, because right now the HIG doesn't say anything about this
subject, and it should. In fact it does not address the use case of using
LineEdit controls as search fields, or even anything about focus behavior at
all.
However, regardless of what we choose, I would like to move towards unifying
the interfaces in the above table, because inconsistency in something basic
like this is not good. So if we decide to make search fields that have keyboard
focus by default not visibly focused until clicked on or text is typed, then we
should do it everywhere to maintain consistency. This is another reason why I
prefer the shows-focus-when-it-has-focus approach, because deviating from this
consistently requires custom code in every client. I feel like we are not
really objecting to this concept behaviorally, but rather to the visual
consequences of implementing it consistently.
Thoughts?
REPOSITORY
R119 Plasma Desktop
REVISION DETAIL
https://phabricator.kde.org/D15011
To: ngraham, #plasma, #vdg, davidedmundson, abetts
Cc: huftis, rooty, sharvey, romangg, broulik, safaalfulaij, oysteins, filipf,
abetts, davidedmundson, michaeltunnell, plasma-devel, ragreen, Pitel, ZrenBot,
lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart