Improve convergence info and include device types
ClosedPublic

Authored by Arucard on Sep 9 2018, 5:30 PM.

Details

Summary

I've tried to improve the convergence section of the HIG. Most of it is
based on this wiki article:
https://community.kde.org/Plasma/Convergence_Overview

It now includes a list of device types and identifies common UI
components, as well as an entire page describing the optimal UX for
each device type. This should describe the big picture of convergence,
not just looking at single applications but how it effects the entire
system. This should help place the discussions on convergence for each
part of the whole in the proper context. And it should help align those
parts in a consistent way.

The Device Type UX page is strongly related to the rewrite of the
convergence section which is why I made it part of the same commit.

See also: T8146, T2175

Test Plan

Ran "make html" locally to verify the rewritten pages.

Diff Detail

Repository
R985 KDE Human Interface Guidelines
Branch
convergenceDeviceTypes
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 3627
Build 3645: arc lint + arc unit
There are a very large number of changes, so older changes are hidden. Show Older Changes
Arucard requested review of this revision.Sep 9 2018, 5:30 PM
fabianr added a reviewer: colomar.
fabianr added subscribers: ngraham, colomar.

I added some starting comments, but will add more.

@colomar and @ngraham are probably going to add some more comments :)

source/introduction/convergence.rst
6

Maybe we should move these explanations to a more central page, like a glossary, and link the terms there?

30

Please add a link to the page about responsiveness https://hig.kde.org/introduction/responsive.html

80

The HIG for Kirigami got merged into the KDE HIG, there are no longer two different HIGs

82

I don't think we need a disclaimer. And if we want one we should put it right on the start page of the HIG, because every aspect of the HIG is envolving and might change in the future.

fabianr added inline comments.Sep 20 2018, 11:34 AM
source/introduction/convergence.rst
28

Maybe omit Smartwatch and Television for now?
These device types would require a very different UI/UX to Tablet/Smartphone and Netbook/Desktop. Smartwatches needing their own design for the tiny screen size, TVs needing their own design for interaction with a TV remote.

And there are no current projects for Smartwatch and Television I'm aware of.

Arucard updated this revision to Diff 42179.Sep 23 2018, 12:04 PM
Arucard marked 3 inline comments as done.
  • Modified according to review feedback

Thanks for reviewing. I've replied to some of the comments, and fixed the other ones.

source/introduction/convergence.rst
6

That makes sense but I couldn't really find a suitable central page for this. Do you have a suggestion for an existing page? Or if a new page is needed, it might make sense to create one for the entire HIG, if it makes sense to put other terms in there as well.

28

The Smartwatch device type doesn't make much sense for running convergent applications but it would be very interesting for a convergent workspace (e.g. Plasma shell). If the Plasma shell runs on a smartwatch, it would optimize for the tiny screen and only show widgets/plasmoids, focusing primarily on notifications. This is described in the Smartwatch UX (particularly the last sentence of the Optimal UX section).

An interesting addition here, is that since applications can interact with widgets, these applications could show their content on a smartwatch as well, through a widget. But the smartwatch would likely only show one widget at a time, defaulting to a clock widget or something like that, showing notifications as they arrive (possibly auto-hiding them).

The TV device type is intended for things like media centers or presentations (possibly connected as a secondary screen). There was a Plasma Media Center a while back, I'm not sure if this is still active. The design would probably be very close to that of a tablet (as indicated in its UX section), similarly focusing primarily on Application Content, but with some changes to allow interaction with a TV remote instead of touch.

I do agree that smartwatches need their own design but the reason I think they should be included here is to ensure that an application or workspace can transition from one design to the other. This is also what I mean in the next section about going further than just a responsive design. For a smartwatch, the notifications widget from the standard desktop might be replaced with a smartwatch-optimized widget (using the Alternatives system), but everything behind it would be the same.

ngraham requested changes to this revision.Oct 5 2018, 9:16 PM

Nice work overall. I'd like to request some some high-level changes, which I'll bring up here, as well as some more micro-level changes, which I'll put into inline comments.

  1. I agree with @fabianr that we should omit references to TVs and smartwatches. Plasma does not yet target these devices types, so we don't want to mislead anyone into thinking that it does or get people's hopes up that such a thing is planned anytime soon.
  1. The Netbook product category is long dead--having been killed off by tablets--so I don't think there's any need to define a HIG for them. To the extent that these products still exist or can be crudely synthesized by attaching a keyboard to a tablet, they are so insignificant that it is not worth specifically designing for them IMHO. Instead, just make sure that the "Desktop" category becomes "Desktop/Laptop" to emphasize their similarity and the need to design with both in mind. After all, some ultraportable laptops have very small screen sizes that approach what netbooks had.
  1. Please add manual line breaks at the 80-character mark.
  1. In general, the paragraphs are rather wordy. The prose could be tightened up quite a bit. If you don't feel comfortable doing that, I'd be happy to tackle it with another patch after this lands.
source/introduction/convergence.rst
4–105

"KDE's design" -> "The design of KDE software"

28

Yes, we should omit Smartwatch and Televison for now.

37

"plasmoids" -> "widgets, app launchers, files, or folders"

39

"start one" -> "launch one of them"

41

Not sure I like the paradigm of " - *Purpose: ..." sub-items here. I think their sentences could be combined with the ones in the parent bullet points, which would make the list flow and read more smoothly.

43

Add a period at the end of the sentence.

47

Add a period at the end of the sentence.

51

Not sure this category makes sense. On the desktop it has a specific term: the "system tray". On other platforms, it's not at all clear that we would want to replicate the same pattern.

If we need to keep this, using the word "background" is not really accurate since apps that show up the system tray may actually be (and often are) in the foreground.

55

Add a period at the end of the sentence.

61

In your screenshot, you point to a toolbar as an example of an Application Menu. This doesn't work, necause "Menu" has a very specific meaning. Perhaps instead, this category should be "Application Menubar/Toolbar" or even something more generic like "Application Tools"

75

Delete the word "Unfortunately".

The sentence that begins with "So most..." is a fragment and could be combined with the prior sentence using a conjunction or a semicolon.

This revision now requires changes to proceed.Oct 5 2018, 9:16 PM
Arucard updated this revision to Diff 42964.Oct 6 2018, 11:25 AM
Arucard marked 13 inline comments as done.
  • Modified again according to further feedback

I fixed most of what's mentioned in the feedback.

  • I removed the netbook, smartwatch and tv device types.
  • I tried to rephrase everything to be more succinct. Let me know if this is sufficient.
  • I put manual line breaks at 80 characters
  • I created a separate Glossary page (which was still left from feedback by @fabianr)
  • I updated the screenshot with the new component names

I also changed some things that still need more feedback.

  • I changed "Purpose" to "User Story" (see the reply to the inline comment for more detail)
  • I defined the "Background Application Overview" more concretely and renamed it to "Workspace Configuration Shortcuts" (again, see reply to inline comment)
  • I defined all Common Components more concretely (motivated by switching to User Story instead of Purpose). This means that their definition may have changed slightly.
source/introduction/convergence.rst
41

The intent was to separate what the component is from why it exists. The former describes its functionality, the latter describes why this functionality exists (essentially, this would be the user story).

I've now changed "Purpose" to "User Story" and rephrased it as an actual user story. This also forced me to be more concrete about it. I'm using Susan as persona, since she seems the least tech-savvy persona. So if it works well enough for Susan, it should work well enough for the other personas as well.

51

On the desktop, this does refer to the system tray where you can also have foreground applications (e.g. Konversation minimized to system tray). I consider this additional functionality in the system tray, not within scope of this component. Access to things like Bluetooth, network manager, notifications, those are within scope of this component. That is also provided through the system tray. This is also needed on smartphones, usually provided in the topbar. Like the system tray, it shows a subset of icons in the topbar and you can expand it to show all icons. So convergence-wise, this indicates that it makes sense to implement this topbar on the smartphone as an alternative to the system tray widget (I'm not sure if this is currently the case).

I've now changed the term to "Workspace Configuration Shortcuts". So I've defined these things like Bluetooth, network manager, etc. as shortcuts for configuring the workspace. I think this makes sense as this is also available in the system settings. But the system tray provides quick access to these settings. But as I explained above, the actual implementation of these common components may not be a 1-on-1 match with what's described for each component.

colomar requested changes to this revision.Oct 7 2018, 11:27 AM

Thank you for this very detailed and comprehensive write-up!
I have a few comments on specific parts, but with these fixed, I believe it's ready to land.

source/introduction/convergence.rst
44

If you use personas, you don't need to write "As Susan I want". The "As a <role>" language was just introduced in agile methodology to make clear that it's not the author of the user story who wants something. With a persona, you can just write "Susan wants", which makes the language much less awkward, and makes it clear that it's the persona who wants something, not you acting like the persona.
Please change this in all of the user stories.

61

Honestly: I don't think Susan really wants that. I hardly ever see users who are represented by Susan who significantly configure their desktop.
I believe the customization options are mainly aimed at other personas.

68

Same here: I don't think this is a typical Susan story.

source/introduction/devicetypeUX.rst
26

Mouse -> Pointing device.
Touchpads might be more common today than mice, and while they are very similar, they are not identical and both need to be considered when designing desktop UX.

35

I'd add here "Pointing devices allow for mouse-over (hover) effects, which allows to show controls when the cursor is placed above an element on the screen, allowing for one-click access without cluttering the UI".

68

Add "Usually used with two hands"

76

I'd add "Swiping inwards from screen edges can be used to access otherwise hidden controls".

109

Add "Used either with one or two hands"

This revision now requires changes to proceed.Oct 7 2018, 11:27 AM
Arucard marked 6 inline comments as done.Oct 7 2018, 4:47 PM

I fixed most of what's mentioned in the feedback. I didn't quite agree that the user stories weren't relevant for Susan which I explained in the reply to those in-line comments.
Based on the feedback about the pointing device, I decided to also explain the benefit of having a keyboard. This could then replace the part about "traditional-style input" which was too vague anyway.

source/introduction/convergence.rst
61

This refers to the most common workspace configuration shortcuts. I think those apply to Susan as well. These are things like notifications, enabling/disabling wifi or disconnecting your USB stick. These seem like they fit within the scope of Susan's persona (or any user for that matter) and does not imply that Susan (permanently) changed the configuration of the desktop in any way. I added this to the description to make it bit clearer.

The name might need some tweaking since displaying notifications may not really be "workspace configuration". It is functionality from the workspace which needs to be highly visible to the user though. So it fits with this component. But I can't really think of a better name for this. And "workspace configuration" does seem to imply the permanent type of change to your workspace, instead of these "runtime" changes.

68

Again, the phrasing of the user story might seem overly complex but this refers to very basic functionality. It includes closing the application window which I think even Susan wants to do.

The technical, somewhat abstract, phrasing is needed to concretely define something that is so obvious that Susan wouldn't even think about wanting it. She just assumes it's already there.

source/introduction/devicetypeUX.rst
35

I ended up replacing the whole traditional-style input section with an explanation of what it means to have a keyboard and pointing device (which includes the feedback above).

109

I phrased this as "usually with one hand" since I think this UX should optimize for one-handed control. I elaborate on this in the optimal UX to indicate that it may be unavoidable that sometimes both hands are required.

Arucard updated this revision to Diff 43058.Oct 7 2018, 4:47 PM
Arucard marked 2 inline comments as done.
  • More changes based on feedback

Thank you for the changes and replies. The changes are good, now all that's left from my perspective is finding a better word for what you call "configuration", because when especially KDE people read "configuration", they think about something entirely different from what you mean here.

source/introduction/convergence.rst
61

Ah okay, now I get what you mean. I agree it's relevant for Susan, and I agree it needs a different wording.
"Workspace configuration" really sounds like configuring Plasma, like changing Plasma layout or theming.

Maybe "Workspace actions"?

68

I now understand what you mean from the examples, but I don't know anybody who considers minimizing a window "configuration", so it needs different wording

ngraham requested changes to this revision.Oct 7 2018, 11:37 PM

Thanks for being so responsive here, @Arucard.

@fabianr has already started the glossary at D15966, so you don't have to do that here. You can probably keep the links though, so they point at that new page once his patch lands.

I'm still not sure about the structure of the Common Components section. The user stories there are completely obvious (e.g. "user story: user uses the application launcher to launch applications":p ) and I don't think they add any value. Also, Susan's persona is not accurately represented: Susan does not care about anything relating to efficiency, especially if it requires deliberate action or configuration. That's a trait common to Matt and Philip, and maybe Santiago. Susan relies almost totally on the system to itself be efficient and streamlined.

I also feel like the acronym "UX" is way overused in this article, and in particular the phrase "UX Context" which just feels sort of detached and excessively technical.

source/introduction/convergence.rst
13

"UX Context which are identified as Device Types" -> "Device Type"

source/introduction/devicetypeUX.rst
17

These paragraphs overuse technical terms of and talk too much about of categories and hierarchy in a manner that that I think impedes its readability. Also, Having So Many Words That Are Capitalized Has A Similar Effect. :)

Both of them could probably be reduced to few short sentences:

"Each device requires that the user interface be optimized for its physical characteristics in order to ensure a pleasant user experience. Some devices defy strict categorization, such as a convertible laptop or a tablet with a keyboard plugged in. In these cases, it is especially important that the user interface respond appropriately."

...Or something like that.

21

I don't think we need "UX" at the end of the device names; it's implicit.

24

For these, I think "UX Context" could be replaced with "Physical characteristics"

35

"The workspace can be configured to maximize applications by default."

This could be taken as a guideline, rather than a simple statement of fact. I would suggest removing it, especially since it does not correspond to our default settings.

44

"Taskbar" is Windows terminology; in Plasma, the thing that widgets such as the Application Launcher live on is called a "Panel".

96

...Or possibly tiled. But never windowed.

This revision now requires changes to proceed.Oct 7 2018, 11:37 PM
Arucard marked 9 inline comments as done.Oct 8 2018, 5:28 AM

I removed the glossary now and changed the reference link to point to the new one. Can someone verify that it's correct? I'm not too familiar with Sphinx.

UX Context is defined concretely in the glossary, maybe that's why it feels detached and technical (because it is). But since the glossary will be removed here, I can ask to have this added in the glossary that's being created. If it should still be used of course. This is what was in the glossary (I'm adding it here because I'm removing the glossary and this information is still needed to to understand this):

  • *UX Context*:
    • this refers to the characteristics of a device through which a user can interact with an application or workspace. Predominantly, these are:
      • the input method
      • the screen size
      • the screen orientation

As for the user stories in the Common Components section, I think you're correct that they are mostly obvious. But these types of obvious things are often the hardest to concretely define. Without that, everyone might interpret it just a bit differently which results in an inconsistent style or difficult discussions to defend those styles. This is intended to provide a base for both the style itself and further discussions about that style.

I also don't agree with this: "Susan does not care about anything relating to efficiency". I think you've countered this yourself with this: "Susan relies almost totally on the system to itself be efficient and streamlined". So Susan does care about efficiency but she expects it to be part of the system itself. So these user stories express functionality that Susan wants, even though it would never occur to her to ask for this.

Another example of this is the user story for the application launcher: "Susan wants to launch any of her applications so she can use its functionality". This has nothing to do with efficiency but is also something that Susan would never think to ask for. She would just expect it to be part of the system. Just like switching between applications.

It's a level of efficiency that has become so common-place that we don't even think about it anymore. But the (inefficient) alternative would be a single-application system, where you would need to close your current application to start another one. Of course, this is so inefficient that it doesn't even exist anymore (I think). But without explicitly saying that this functionality is needed, it might not be included in the consideration for another device type or it might become an afterthought.

In terms of efficiency, you're probably right that the other personas care more about efficiency. But I think even Susan cares about efficiency since she would just want to focus on the creative side of things and not be bogged down by inefficiencies in the workspace or application.

I've fixed most of the other things mentioned in the feedback and added inline comments for some others. The inline comments are starting to diverge from the line they're supposed to point to so if I misunderstood some things, just let me know.

source/introduction/convergence.rst
68

It doesn't say "configuration", it says "interaction". In abstract terms, I consider "minimizing a window" to be a change in how the application is shown in the workspace (and no, it's not a configuration). I'm not sure how else to explain this.

source/introduction/devicetypeUX.rst
17

The reason I wrote this in such technical terms is because the point of this piece of text is to concretely link the terms used below (UX, Device Type, optimal UX) to how they would need to be used to implement the UI for applications on such a device.

To that end, I also capitalize any words that are technical terms, for which the meaning has been described elsewhere. This should allow readers to understand that it's a very specific thing, that should behave in a very specific way that's defined in the HIG. But if that's not clear, I can lower-case them.

While I agree that your version of this text is more readable, it doesn't give concrete guidance on how to use the information described in each Device Type UX.

24

I previously called it that, but some of these aren't really physical characteristics. For example, whether a device is used one-handed or with both hands. That seems to fit more with UX Context (which was defined in the Glossary, which is now removed here).

35

This sentence ("The workspace can be configured to maximize applications by default") is specifically intended to optimize the UX for a more moderate screen size. It doesn't have to be the default provided by KDE but it should be possible for a user to change their own default to this. I'll rephrase it, hopefully that makes it more understandable.

Arucard updated this revision to Diff 43102.Oct 8 2018, 5:28 AM
  • Some more fixes based on feedback
ngraham accepted this revision.Oct 8 2018, 10:00 PM

The whole thing just feels a bit too technical to me, with all of its Capitalized Terms, acronyms, and wordy descriptions of how one class of thing is an instance of another class of thing. Yet at the same time, many part are almost eye-rollingly obvious ("Susan wants to launch any of her applications so she can use its functionality").

I don't want to torture you too much here, and all the inline comments are starting to make the diff hard to read. So if it's okay with you, I'll accept the patch now, and after it's landed, I'll put on my liberal arts degree hat and submit another patch with proposed changes.

fabianr accepted this revision.Oct 9 2018, 6:50 AM

The whole thing just feels a bit too technical to me, with all of its Capitalized Terms, acronyms, and wordy descriptions of how one class of thing is an instance of another class of thing. Yet at the same time, many part are almost eye-rollingly obvious ("Susan wants to launch any of her applications so she can use its functionality").

I don't want to torture you too much here, and all the inline comments are starting to make the diff hard to read. So if it's okay with you, I'll accept the patch now, and after it's landed, I'll put on my liberal arts degree hat and submit another patch with proposed changes.

+1 , let's get this landed and improve it after works. It is a big improvement over the current convergence page!

Thank you very much @Arucard for all the work and of cause you are welcome to add more patches to the HIG ! 😄

So if it's okay with you, I'll accept the patch now, and after it's landed, I'll put on my liberal arts degree hat and submit another patch with proposed changes.

Sounds fair. I look forward to see what you make of it.

I think the technical description is because I consider the HIG to be what designers use to explain to developers how their application should work (from a user-perspective). I'm a developer myself, so I tried to write it in a way that would make it clear to me if I were writing an application that conforms to this HIG. I think this is probably what made it too technical. I hope you can improve this.

Do you need anything from me in order to finish/accept/close this review?

Nope, you're good. After @colomar changes his status to "Accepted", this can land.

colomar accepted this revision.Oct 14 2018, 9:48 AM

Read to land from my perspective, now, thank you again for your work!
And sorry for taking so long to review, I had forgotten that my inaction was blocking the whole process.

This revision is now accepted and ready to land.Oct 14 2018, 9:48 AM
ngraham closed this revision.Oct 14 2018, 4:09 PM