Considerations on User Interfaces
- Banners
- Splash screens
- Feedback during long operations
- Access to Sublist and submenu
- Transparent background
- Compact interfaces
- Information hiding
- Phrasing tone
- Lists and tabular data
- Undo notifications, confirmation dialogs, and other alternatives
- Popups
- Underlined keyboard shortcuts and access keys
- Check box, radio buttons, and toggles
- Moving elements around
- Microsoft Office Ribbon UI
- Tooltips
- Edges
- Fitts’s Law
- Gestures
- Icons
- Secure and insecure content
- 3D effects
- Search
- Contrast
- Dark patterns
I’m not an "UI expert", but sometimes I have a strong opinion about the user interfaces I have to interact with.
For this reason, I wanted to collect different examples of good UIs, bad UIs, anecdotes, and other information I could find.
This is not a guide on how to design your application or website, far from it.
As a collection, it is also incomplete in many ways.
Many examples are about Windows, although I use other systems daily with different graphical interfaces. The reason is that other systems are less "used".
Windows has a single UI; its settings affect many programs, and the UI cannot be changed as easily.
On Android, there are variations between phones, plus every version introduces numerous changes, which makes it harder to say that users have certain expectations.
On a Linux system, there are more Graphical environments, and if an application was compiled for a different desktop environment, it might behave inconsistently compared to other programs.
Plus, some open source environments can be customized a lot, and different distributions might make some changes anyway. Last but not least, environments I do not like are easier to avoid by installing another one.
This is to say that it is easier to use a Windows version and use that as an example, instead of specifying which version of KDE/GNOME/Mate/… was used on which operating system, which might have changed some default settings. Also, the reason why I tried to make all screenshots and tests in the default environments, without further changes.
Thus, if I found something I did not like, and it is also reproducible in Windows, then I’ve described the behavior in Windows, because their UI with default settings reaches many more users than all graphical desktop environments of all Linux distributions.
During the process of collecting all information, I remember that on many changes my reaction was "I liked how it looked before". In some cases, after many years, I do not even remember how it looked before. So maybe the previous UI was not that better, or the change was not that disruptive. After looking at some examples more in detail, I actually find some of the changes I did dislike or not care about an actual improvement, with the only drawback that one might be accustomed to the older UI. And in other cases, I did not change my opinion, and I still find the new UI worse than the older one.
Banners
Some command-line tools, in particular on Windows, like to show a banner.
This is, for example, what powershell.exe prints:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows
Loading personal and system profiles took 1286ms. cmd.exe prints the following text:
Microsoft Windows [Version 10.0.20348.2966]
(c) Microsoft Corporation. All rights reserved. Far Manager prints a text too, which is shown when the program is closed:
Far Manager, version 3.0.5751.0 x86
Copyright Β© 1996-2000 Eugene Roshal, Copyright Β© 2000-2021 Far Group autorunsc of the Sysinternals suite ποΈ, prints the following banner:
Sysinternals Autoruns v14.11 - Autostart program viewer
Copyright (C) 2002-2024 Mark Russinovich
Sysinternals - www.sysinternals.com Those banners do not really help the end user. Thus, avoid them, and if you really want to provide such banners, at least give an option for turning them off globally.
Similar banners are extremely uncommon on Linux and BSD systems; this makes it much easier to use the output of a program as input for another command.
Imagine having to remove the banner from every command before using it as input for something else.
For PowerShell, I find the banner particularly irritating; there are different workarounds, but all with different disadvantages.
Splash screens
It seems that some applications use a splash screen even without needing it, as it can be used to show off your brand with big pictures and logos that otherwise would not integrate well in the program.
There might be situations where a splash screen makes sense. An example could be a program that needs to load some data over the wire or load some data that requires time to be analyzed. I think it would be better if the application loads instantly, and then uses a simple progress bar for loading the data as a separate step. Maybe I just want to see what the current version displayed in the application is; there should be no need to wait for that.
If the program is just slow to start, then wouldn’t it be better to speed it up? Adding a splash screen might reduce the perceived waiting time, but it’s just an illusion.
Feedback during long operations
Provide some meaningful information.
A spinner (with nothing else) provides no information, although it is the simplest thing to design/develop. A progress bar can help the user to indicate that something is actually happening.
A percentage counter can at least give a feeling that there is some real progress.
Some additional text like "loading foo", "parsing bar", or "analyzing baz" can help to understand what is happening, and eventually troubleshoot faster where the process is hanging, or at least why it is taking so long.
Copy file dialogs are a good example. The operation can take a lot of time depending on the input, so it is important to give the user feedback on how the operation is proceeding.
I believe that simpler command-line tools, like cp, would also benefit from a progress bar with time estimation for longer operations. One could argue that different dedicated tools are better, but I would prefer not to install many programs that do similar things, plus I might not be able to change the environment where I am working, so having more user-friendly defaults would be better.
Another good example are the download dialog and tools like curl and wget. Even if it is not really possible to estimate how long a download will take, as there are many external factors that affect the process, they still show useful information to the end user.
A bad example are most graphical boot screens. Granted, it is more difficult to estimate how much time it will take, as starting the operating system involves a lot of heterogeneous operations, but the current state is to hide any information, and it can be improved.
Before Mac OS Tiger, Apple would show which component of the system was being started ποΈ. With Mac OS Tiger, they replaced the UI with a progress bar ποΈ. The progress bar did not really measure progress, but it used the information how long a boot of the system normally takes. Thus, unless for some reason the boot is slower than usual, it is still providing some meaningful information to the user, as when the progress bar reaches the end, the system will usually be ready to use.
Since in some environments booting up can take a considerable amount of time, showing some information would help the user to understand how much time it will take.
One could refine the approach used on Mac OS Tiger; instead of measuring the complete startup time, measure the startup time of some components, and merge them together in a progress bar. One does not even need to rewrite the startup logic for logging the times; a separate process verifying every N seconds, which processes are running, would be enough. As always, the devil is in the details. Even with such an approach, I would still like to see what is being started; one thing does not have to exclude the other.
In case of issues, in particular if the boot process gets stuck or takes a really long time, some information is better than a progress bar or nothing at all.
If the computer is hung while configuring some particular peripheral (an external drive, the network, etc.), then the user knows why it is taking so long and can act accordingly.
Access to Sublist and submenu
There is no need to stay on track when switching from a list to a sublist. This makes it easier for the user to go with the mouse directly to the desired element.
Transparent background
Wallpaper
Wallpapers have been a thing for a long time, and yet from time to time, the combination of text and background image leads to a situation where the text is hard to read.
The fix is simple; the text should be surrounded by a line of opposite color. Thus, if the text is white, it should be surrounded by a black line.
In Windows (at least Windows 7), the relevant options are called "Use drop shadows for icon labels on the desktop" and "Use visual styles for windows and buttons". You have to deactivate them both to actually remove the shadows for the labels on the desktop.
Other applications
The screenshot of the Windows performance options shows the easiest way to deal with a transparent background inside programs: increase the opacity and make it frosted ποΈ.
Otherwise, except for the Wallpaper, I see little reason to have images as backgrounds or transparent backgrounds in other programs for multiple reasons.
First, if I want to see what’s behind the current application, minimizing the program or moving it to another position is better than reducing the legibility of the current application, and the program that is behind it. I’ve never understood those who want to have a terminal emulator (or editor) with a transparent background; it might look stylish, but isn’t it distracting?
Similar considerations hold for other images as background; consider a chat program. I’ve seen that multiple programs (WhatsApp, Telegram, iMessage, etc.) suggest to the user to set a background image. But if the user opened the chat application, it’s because he wants to write something or see what others have sent to him.
My first assumption was that this particular feature is used to convince the user to keep the application open the whole time, thus a "dark pattern" (more on that at the end). But I’ve found no data to prove my point, so maybe it’s just me.
On the other hand, I guess that a background image can make it easier to recognize the chat instead of looking at the name of the current contact or group name, so it can improve the usability.
Interfaces from Minority Report and other movies
When writing those notes down, I had to chuckle when I thought about the movie Minority Report, which shows the most unusable monitor I’ve ever seen. If you have ever had to deal with glare on your monitor, imagine having to deal with a transparent screen.
I guess they used a transparent screen for multiple reasons that have nothing to do with usability.
The first one is that it looks futuristic. The movie was released in 2002 and takes place in 2054. At that time, we mostly had CRT monitors. Flat-panel displays already existed, but replaced most CRT displays years later (around 2010?).
Second, it looks impressive, or at least something that is expensive and difficult to create.
The audience (of the movie) can see both the computer display and the actors at the same time, without changing position the whole time. A similar technique is used in other movies, where people write with markers on windows (for example, "A Beautiful Mind" from 2001, or on a mirror in "Good Will Hunting", from 1997). I am pretty sure no one would do it in real life, as paper works so much better, and there is, given the context, no shortage of paper.
In the case of a room with multiple people, it is possible to see more or less what everyone is doing without changing the position of the camera every time if screens are placed in the middle of the room.
None of this improves the usability of the monitor; in fact, all those points indicate that seeing the details on the monitor is not that important!
And sometimes it feels the same when changes are made to the user interfaces with gratuitous effects and animations. Instead of letting the user concentrate on the important thing, the content, the new UI is something that looks nice the first time, it looks impressive, cool, but ends up being a distraction, even if you might not realize it.
Compact interfaces
One of the many differences between a computer of the 1990s and today is the size of the monitor.
According to this StatCounter article ποΈ, the screen size 1366x768 overtook 1024x768 for the first time in 2012, and before that, the most used screen resolution was 800x600.
Which means there was less space to waste.
As of today, with different designs putting the focus on "minimalistic" and "clean" interfaces, there is a lot of blank space.
The dialog on the right was introduced in Windows 10, while the dialog on the left is more or less unchanged since Windows XP.
If a PC has been used for multiple years, it will have a lot more programs. The newer interface, on the monitor I’m using, is not even able to enlist more than ten elements.
One cannot even argue that the new interface is cleaner; what is the date that appears on each element? On the right, it’s obvious; it’s the column "Installed On", so it’ll be the date on which the application was installed.
But on the right? Maybe it’s the date when the program was released?
Also, the version number of the program is harder to recognize, especially since not all programs have it. With the tabular data structure on the right, it is obvious what the details are and which are missing.
And yet, the interface on the right is the current paradigm for the last ten years.
I believe the answer is "touch screens", and the fact that fingers are fatter than a mouse pointer.
For most computers, a touch-screen-friendly interface is useless, as they are used with a keyboard and a mouse.
On the other hand, I can understand the desire not to have separate layouts depending on whether the user is using a mouse or their fingers.
One disadvantage is that the user needs to learn two user interfaces.
Another disadvantage is that if there is a second, less-used interface, it will not be as well-known as the first one when searching for help.
Plus associated costs for maintaining and testing both interfaces.
Nevertheless, I’m not convinced that reducing the usability of all interfaces for a peripheral that is mostly unused is the best decision.
Information hiding
Another trending pattern is to hide information.
For example, this is a comparison of Explorer between Windows 11 and Windows XP, side by side.
In Windows XP, it is possible to see immediately where a file is located; it is written in the address bar!
In Windows 11, this information is hidden, unless one clicks on the address bar, where there is no text; otherwise it will change location. In fact, given that there is almost no difference in color between the address bar and the surrounding elements, you might not even realize that you can click there.
While showing too much information is confusing, the job of a file manager is to help the user create, open, delete, and move around files. Hiding where they are actually located does not seem helpful; on the contrary.
Windows, in particular, conditionally hides an important detail about files: the file extension. Since it is used for determining which program to execute, and since executables can have their own icon, it is a nightmare from a security point of view. It is easy to get tricked into double-clicking on what looks like a document, but in reality is an executable. At least it is possible to change the settings, and let explorer always show the file extension, which is, in my opinion, a better default setting.[1]
On Android, the situation is similar. Directories and files are hidden as much as possible from the user.
On iOS, I believe the situation is even worse.
Something similar has been happening at least since 2018 ποΈ with browsers on the desktop. For example, Chrome hides the www. part of the URL from the URL bar. It seems the ultimate goal is (or was) to remove the URL bar completely ποΈ.
Phrasing tone
I’ve just learned that Windows Vista ποΈ defined some official guidelines on how to phrase dialogs:
The guidelines for Vista and its applications suggest messages that present technically accurate advice concisely, objectively, and positively, and assume an intelligent user motivated to solve a particular problem. Specific advice includes the use of the second person and the active voice (e.g., "Print the photos on your camera") and avoidance of words like "please", "sorry", and "thank you".
I like especially this guideline
Write from the user’s perspective and preferably from the perspective of what you can do for the user. Users should feel that they will find information that is relevant and accessible to them.
Unfortunately, even if very short, many applications fail to follow them.
Many programs assume their user are dumb, and that they cannot do anything, so why show a sensible error message?
Instead of providing some useful information, they might show a generic message like "Oops, something went wrong" or "Try again later". How is that helpful? How can the user try to solve an error?
Some programs, not only malware, try to trick their users, but more on that later.
Another change introduced in Windows Vista was renaming "My Computer" to "Computer". I did not like the change at the time; it seemed like the computer was not mine anymore, but after thinking about it, it made the UI a little easier to explain. First, imagine trying to help someone over the phone, without having remote access to the PC (it still happens to me), and telling them "go to my computer" or "click on my computer". It’s their computer, not mine, so the phrase might sound unnatural. But saying "click on your computer" is also wrong, as the label is "My Computer". If the label is "Computer", then saying "go to computer" or "click on computer" avoids the ambiguity.
Granted, as there is only one computer, the risk of not understanding each other, even over the phone, is low.
A more problematic situation might be a webpage, where there is not only your data, but also the data of someone else. If there is, for example, a button labeled "share my story" at the end of an article, to whom does "my" refer? To the person who wrote the story one has just read, or the one who is reading it right now?
Is it a button for sharing a link for the article you have just read, or a button for contacting the author of the article and giving some feedback? In this case, using a label like "share this story" or "share your story" should avoid the ambiguity.
On the other hand, "your" might not sound natural if it is not tied to an action. Imagine a chat or mail client that uses the label "Your Messages". "My messages" might sound better.
In other situations, for example, a webpage with a label like "my pictures", "friend pictures", and so on, one needs to pay attention when it says "my". Is he referring to the label, or is it his data?
Also, another thing to consider is that programs put their files under "My Documents", "My Pictures", and "My Music", which is why I always store my data outside of the predefined directories provided by Windows.
Last but not least, prefixing half the directories with "My" is not very informative; if you want to sort your folders by name and half of them are prefixed with "My", you won’t be happy.
To conclude, it seems that "my" and "your" are at best avoided. If necessary, use "your" together with an action, or if possible, use the (nick)name of the user: instead of "your account", just write "account", or "fekir’s account".
Lists and tabular data
List and tabular data appear in multiple places; the most common one is when using a file manager.
There are multiple instances when people want to sort things. In particular, if the UI shows data in a tabular structure, then people might want to sort the data according to a specific column.
Natural sorting
Something that some file managers have been doing for decades.
If you have a set of files, named from file 1.txt to file 10.txt, chances are you want them to be sorted like this:
file 1.txt
file 2.txt
file 3.txt
file 4.txt
file 5.txt
file 6.txt
file 7.txt
file 8.txt
file 9.txt
file 10.txt This way of sorting is called natural sort ποΈ and was introduced in 1996 in MacOS.
On the other hand, most sorting algorithms will give you the file names in the following order:
file 1.txt
file 10.txt
file 2.txt
file 3.txt
file 4.txt
file 5.txt
file 6.txt
file 7.txt
file 8.txt
file 9.txt For example, Midnight Commander does not use natural sorting by default (but I learned that it is supported):
The workaround used in many places is to 0-pad the numbers, so that the files are sorted consistently with most programs:
file 01.txt
file 02.txt
file 03.txt
file 04.txt
file 05.txt
file 06.txt
file 07.txt
file 08.txt
file 09.txt
file 10.txt On the other hand, if you do not know beforehand an upper limit on how many files you will have (100? 1000? even more?), then you cannot pad the filenames once, and might need to rename them all at a certain point.
At least file manager, since many already do it, should offer the option to use the Alphanum Algorithm ποΈ or something equivalent.
In some environments it is called version sort[2], and I also learned that my ls and sort support if out-of-the-box ποΈ.
Stable sorting
Again, some file managers have been doing it for a long time.
If one sorts the filename by creation date, and then by name, it would be a good thing if files are sorted by name first, then by date.
Stable sorting ποΈ avoids unnecessarily changing the position of elements, thus the end-user can find them again faster.
Alternate background colors
When comparing Explorer from Windows 11 and Windows XP, I’ve noticed that in Windows XP the background color of the first column is different than the others.
It is a little difference that can make using lists easier.
Then I noticed that Dolphin alternates the background color of the elements of a list by default.
This helps to make the data easier to scan for humans. Otherwise, the eye might slip from one row to another.
It’s a technique also often used in printed tables and virtual documents.
I wonder why it is not used more, for example, in the Start Menu, menu lists, and so on. I guess that tables with long rows get more benefits than tables and lists with short rows, so it might not be a good idea to alternate the colors everywhere.
Undo notifications, confirmation dialogs, and other alternatives
I’ve encountered undo notifications in one application I use on the phone.
This is what I’ve noticed when interacting with them:
-
the notification disappears after some time; if I’m too slow, I cannot undo my operation anymore
-
there is only one undo notification. A new notification replaces the older one: if I delete two elements, one after another, I cannot recover the older element
-
it does not always work; it happened more than once that the system did not recover an element I deleted by accident, even when clicking on the notification on time
You might be tempted to dismiss the last point; surely it’s the application’s fault if they cannot implement a working undo notification. Also, the other points can surely be improved; my application must be a bad one.
This is why I decided to test something else and see how it behaves. This is what I’ve observed with the online interface of Gmail:
-
the notification disappears after some time; if I’m too slow, I cannot undo my operation anymore
-
there is only one undo notification. A new notification replaces the older one: if I delete two elements, one after another, I cannot recover the older element
-
if I delete multiple emails at once, and I have accidentally deleted one mail too much, I can undo the whole operation, but not undo the deletion of a single mail
-
it does not always work; sometimes you cannot undo an operation, but the notification is still there
Here is the failed undo after sending an email
Obviously, it is not possible to undo the sending of an email, so why does Gmail show this notification? It creates a false sense of security. One knows that it can undo the sending of an email (at least for a short amount of time), because there is a notification, and then it does not work when one needs it.
I assume that Gmail normally postpones the sending of a mail for some time, thus the "Undo" is in reality a "Stop the action in progress", but in my case, the notification was still there while the mail arrived on the other mail account, so it was clear even without clicking on the notification that it would not work. And no, I did not try to trick Gmail by blocking JavaScript, disconnecting my device, or something else.
I searched a little bit about why "undo notifications" are used and found different resources proposing them as an alternative to confirmation dialogs.
I get the intention; confirmation dialogs are distracting, and during some operations you might need to confirm your actions a lot of times, which is frustrating.
The undo notification does not break your workflow, but it also works poorly if you make an error.
I believe the metaphor of the recycle bin is a much better interface.
First, it’s not timed. I can still recover data I’ve deleted decades ago.
Second, there is a more granular control for the restoration process. If I deleted multiple elements, I can restore a subset of them. I can even restore them at a different location.
Third, even if restoring fails (for example, you cannot undo the deletion because the drive is full), the data is still there in the bin. Granted, explorer.exe on Windows will not let you open it directly.
The undo notification is beneficial if one acts quickly. Instead of opening the recycle bin and searching for the deleted element, just click on the notification. But it should not be the only method for recovering some deleted data.
The application I’m using on the phone uses this "undo notification pattern" when one deletes a conversation or a note. In this case, I believe the recycle bin interface can be applied without causing confusion and provides a better experience.
For other use-cases, like sending an email, the recycle bin does not make sense. In that case, a list with the operation in progress, with a countdown and a stop button, is a more sensible abstraction. But the interface should also be honest; if the action is still on the list, the mail should not have been sent!
While I was thinking about the recycle bin interface, I realized that Windows does not ask for confirmation anymore when deleting a file. I just learned that the Recycle Bin of Windows has an option named "Display delete confirmation dialog", which was active by default until Windows 7, and has been turned off by default in Windows 8. Since files are recoverable by default, one wonders why it was not off by default the whole time, as the confirmation dialog is, in fact, disruptive. If you try to delete a file permanently by bypassing the Recycle bin with Shift+Canc, then you will still get a confirmation dialog. Since it is not possible to undo that action, it makes sense.
| Note π | The Dolphin file manager does not present a confirmation dialog when using Shift+Canc to bypass the recycle bin. I find the behavior in Windows better, but I have currently found no way to change the behavior in Dolphin. |
Mozilla Firefox implemented an interesting change to its confirmation dialogs: a delay. If you try to run an executable that has just been downloaded, the corresponding button is greyed out for some seconds. This gives the user a chance to reconsider if he really wants to run the program or not, as it is generally a dangerous action.
In fact, the solution proposed by Firefox is much better than a confirmation dialog alone:
Confirmations also illustrate an interesting quirk of human behavior: They work only when they are unexpected. That doesn’t sound remarkable until you examine it in context. If confirmations are offered in routine places, users quickly become inured to them and routinely dismiss them without a glance.
It surely happened to everyone; you do a certain routine, you know there will come a dialog, and you’ll click on confirm (or press the corresponding key for confirming) without thinking about it.
With the delay, there is no explicit additional action to perform, but similar to an unexpected confirmation dialog, it breaks the flow and gives the user a chance to stop and think. It is also worth noting that the confirmation dialog of Firefox is triggered only when executing a downloaded file, not something that should happen often.
While searching for more information about it, I discovered the change was triggered to avoid tricking the user to execute programs without even noticing ποΈ!
Even if a confirmation dialog is still the right tool to use, some guidelines have changed. Once upon a time, all confirmation dialogs had the "OK" and "Cancel" buttons. "Ok" was for continuing the operation, while "Cancel" (or simply closing the dialog) would stop the operation. Today (it seems at least since Windows 7), the recommended guideline is to use specific labels over generic ones ποΈ
Prefer specific labels over generic ones. Ideally users shouldn’t have to read anything else to understand the label. Users are far more likely to read command button labels than static text.
Exception: Don’t rename the Cancel button if the meaning of cancel is unambiguous. Users shouldn’t have to read all the buttons to determine which button cancels an action. However, rename Cancel if it is unclear what action is being canceled, such as when there are several pending actions.
Acceptable:
<Screenshot that shows the "OK" and "Cancel" buttons.>
In this example, OK and Cancel are acceptable but unspecific labels.
Better:
<Screenshot of "Burn CD" and "Cancel" buttons>
In this example, Burn CD is more specific than OK.
Incorrect:
<Screenshot of "Burn CD" and "Don’t Burn CD" buttons>
In this example, Cancel should be used instead of Don’t Burn CD.
On the other hand, I find the following confirmation dialog of the Android Guidelines ποΈ problematic, because "Cancel" and "Delete" are synonyms.
Granted, by reading the text, one would conclude that "Delete" deletes the data, and "Cancel" does not. But the point was to use specific verbs so that the user does not have to read the text, as many users apparently do not, but in this case, one might have to read it twice to be sure what to click.
I believe that in this case, "OK" and "Cancel" are easier to understand. If you absolutely want to avoid "OK" (or "Yes"), I would propose "Delete Image(s)" / "Delete file(s)" / "Delete data" as an alternative.
By the way, Thunderbird also shows a dialog with "Cancel" and "Delete" when deleting something from the Trash :(
Another thing to avoid is double negation (but that should be avoided everywhere) and changing the position of the "OK" (or more specific label) and "Cancel" buttons.
It might also make sense to use a different color (for example, red) for destructive actions, like Midnight Commander does.
Popups
I do not think I have any good examples of pop-ups, but a lot of bad ones.
In fact, pop-ups are so problematic that all browsers block them by default since Internet Explorer 7. On Windows XP, using Firefox that blocked pop-ups by default was alone a good reason for preferring it over Internet Explorer 6.
Instead of making real pop-ups, websites will render them on the webpage directly.
For example, when I linked the article to Wired ποΈ, I was greeted with a pop-up with two columns.
The first column said:
We Care About Your Privacy
We, and our 221 partners use cookies and similar methods to recognize visitors and remember their preferences. We may also use these technologies to gauge the effectiveness of advertising campaigns, target advertisements, and analyze website traffic. Some of these technologies are essential for ensuring the proper functioning of the service or website and cannot be disabled, while others are optional but serve to enhance the user experience in various ways.
We, in collaboration with our partners, store and/or access information on a user’s device, including but not limited to IP addresses, unique identifiers, and browsing data stored in cookies, in order to process personal data. You have the option to manage your preferences by selecting the 'Manage Preferences' option located in the page’s footer. To review or object to instances where our partners assert a legitimate interest in utilizing your data, please visit our vendors page.
I assume the word "partner" has a different meaning to me. I cannot imagine how over 220 companies need to access some data for nearly 20 different tasks that are all irrelevant to what I want to do: read a piece of non-personalized text. They really do care about my privacy </s>.
Not only that, I need to be bothered with a blocking pop-up. From a usability perspective, it’s a disaster, and to make things worse, a lot of websites are using this pattern, and have even more partners!
Underlined keyboard shortcuts and access keys
On Windows, an underlined letter in the graphical interface means that instead of clicking on the element, the user can use the keyboard to trigger it. There is a global option, and toggle th option "Underline access keys".
If using an older version of Windows (at least Windows 7), the option should be located under the and then mark the checkbox "Underline keyboard shortcuts and access keys".
On Windows XP, it was not even considered an accessibility option. The relevant setting is and then "Hide underlined letters for keyboard navigation until I press the Alt key".
I think marking it as an accessibility option is wrong because the underlined letters help the user discover how to use the program. In particular, there are instances when pressing Alt does not show underlined letters for keyboard navigation. For example, in the context menu of Explorer, pressing Alt closes it.
On KDE Plasma, it is possible to activate this option under and select "Always show" from the drop-down menu.
Assuming that this setting has not been enabled (which is not by default), this is what I’ve noticed:
In the Dolphin file manager and Kate text editor, when pressing Alt, the relevant letters are underlined. The moment I stop pressing Alt, the letters are not underlined anymore. Contrary to Explorer on Windows, it is also possible to use Alt in the context menu.
In Firefox, if I press Alt (or F10), the menu appears and the relevant letters are underlined. I found no way to underline the letters of the menu entries shown in the hamburger menu. Contrary to Dolphin and Kate, there is no need to keep Alt pressed. If you have configured Firefox to always show the menu, then the relevant letters are always underlined.
On VSCodium, Notepad, and I assume most other applications, there is no need to keep Alt pressed, similarly to Firefox. In particular, VSCodium does not respect the KDE Plasma global settings, but it does respect the Windows global settings.
On VLC on Windows, there is no need to keep Alt pressed, while on KDE Plasma it is necessary.
On Thunderbird, the relevant letters are always underlined.
Hints about hotkeys also appear in Games, even though not necessarily as underlined letters, as shown in this case in Age of Empires 2
Check box, radio buttons, and toggles
Before smartphones, the appearance of most, if not all, dialogs:
-
did not change
-
had greyed out options for settings that were not available because of another setting
Since the advent of smartphones, toggles have partially replaced checkboxes, and dialogs have become more "interactive" by changing, for example, the description of the text.
This led to the situation that it is
-
often hard to determine if the toggle is active, not active, or greyed out
-
unclear if text is the current state, or the state to be activated, as the UI is "interactive" and the text changes
Some common improvements ποΈ are using additional colors to distinguish the active state from the others, and/or using "ON" and "OFF" as additional labels to indicate the selected state.
Moving elements around
Do not move elements around depending on how the user interacts with your program and while the program is running.
HTML
The most common offenders are probably websites that change the layout with JavaScript. The browser might have loaded the page, but some JavaScript code is still running in the background. The user wants to click somewhere, but in that moment, the webpage changes asynchronously, and the user clicks on the wrong element.
A similar effect can be achieved without JavaScript. If the browser does not know the size of an image, it will have to restructure the page once the image is loaded. This can be avoided by setting the height and width as HTML tags.
Personalized Menus
In Microsoft Office, some elements would change their position more depending on your usage ποΈ. Fortunately, it was recognized that it did not improve the usability and has been disabled by default ποΈ.
But somehow this feature continues to exist in some products.
I do not use the Office suite, but I have to use Outlook. I really fail to understand why, sometimes, the UI in Outlook (classic) changes, and why one would want it. I do not find what I am searching for, and might click on the wrong button if I do not realize that it has changed. Resetting the UI to how it looked before is also non-intuitive.
Unfortunately, I have not documented how the UI changes, but I have a video of another irritating effect:
This happens every time I change the folder, and it is extremely distracting.
Strangely, on some folders, the elements do not expand and then shrink again, and stay in their expanded form:
Greyed out elements
A greyed-out element typically indicates that it is disabled and that it cannot be interacted with.
I find greyed-out elements a very useful concept. The alternative is to remove the elements from the UI, which has many of the already-mentioned issues. In that case, they cannot know that the element exists.
These are two screenshots of Thunderbird, in two different contexts:
Depending on the context, different options are greyed out.
There are, in general, two possible outcomes.
-
The user realizes the option exists, but that they are currently not available.
-
The user already knows that the option exists and realizes he is in the wrong context.
Note that sometimes the "right context" depends on multiple factors; in that case, greying out an element might not be ideal. For example, there might be a form with different fields. Instead of keeping the "Submit" button greyed out, the button could always be enabled, and provide an error message when clicked if some information is missing or wrong. The error message gives the user better feedback than a greyed-out element.
If the option is not shown at all, either the user does not discover it, or if he already knows it, he might think it has been moved somewhere else or removed altogether.
A tooltip can help to improve the situation further, and explain why an action is greyed out with a text like 'This option is currently not available because <reasons>'.
There are situations where hiding out elements makes more sense; you might not want to let the user know that an option exists, for example, because it is available only to certain users.
There is also something else to consider about hiding elements of the UI. Are the settings simply hidden, or have they been reset?
For example, if you configure the Wi-Fi manually on your device, then turn Wi-Fi off, and the settings you have configured disappear. Does it mean you have to configure it again?
If the setting is greyed out, one can immediately see that they are still there, their values, and that they are not active.
Microsoft Office Ribbon UI
The Microsoft Office Ribbon UI ποΈ was introduced in Microsoft Office 2007.
On Windows, here is a side-by-side between Microsoft Word 365 and LibreOffice Writer:
I wondered why the save button in Microsoft Word 365 was greyed out, as I did not save the document after writing "Hello World". It turns out that when it loses focus, the icons on the title bar are greyed out. LibreOffice does not behave this way, and I think I prefer its behavior, as Microsoft Word 365 seems to be in an inconsistent state, as other icons are still colored.
To me, the classic LibreOffice layout also looks cleaner. In particular, all icons have the same height.
Another advantage of LibreOffice’s layout is that it requires less space and changes less when the application is resized. Here is another screenshot of Microsoft Word 365
And here is a screenshot on a smaller display
The position and form of multiple elements in Microsoft Word 365 changed, but remained consistent in LibreOffice Writer. The only thing that changed is the dimension of the screen; it is otherwise the same machine with the same settings.
While it is already difficult enough to navigate less PC-accustomed people through menus, having to help them when the interfaces are different is harder for both.
I suppose that an argument for bigger icons is that they are easier to find, and that the most used icons (according to a study in 2012 ποΈ paste was the most used icon) are bigger. Personally, I’ve never used the paste icon in any program, as I preferred the keyboard shortcut Ctrl+V, but it seems that I am a minority (emphasis mine):
Here’s an example of where we used this very data to help make a decision in Office 2007. Early on, we were toying with the idea of not having buttons for Cut/Copy/Paste in the Ribbon. Everyone "knew" that people mostly used CTRL+X/C/V to do most clipboard actions (which was true). And that mouse users used the context menu to access these clipboard commands (which was also true).
What we didn’t know until we analyzed the data was that even though so many people do use CTRL+V and do use "Paste" on the context menu, the toolbar button for Paste still gets clicked more than any other button. The command is so incredibly popular that even though there are more efficient ways of using it, many people do prefer to click the toolbar button.
Once we recognized the importance of the Paste toolbar button, it was promoted to the first big button on the left side of Word’s first tab.
Some other people might have never used another option, so to me, there is little appeal to make for everyone some icons bigger than others.
In Microsoft Office 365, bigger icons aren’t there because of touch interfaces. This is how the UI of the Microsoft Word 365 application looks on an Android phone:
And on an Android phone without a virtual keyboard
Note that there are no big icons, although it might be that on a bigger screen, like an Android tablet, the UI might be different again.
Tooltips
Tooltips are user-triggered messages that provide additional information about a page element or feature.
While comparing Microsoft Word 365 and LibreOffice Writer, I’ve noticed that the tooltips behave differently.
It’s a good thing I kept my Microsoft Office 2003 version installed on my Windows XP virtual machine, even if it has been at least a decade since the last time I started it. Even if I still have the license key, I’m not sure it is still possible to activate it today by calling Microsoft.
Both LibreOffice Writer and Microsoft Word 365 show in the tooltip that it is possible to toggle the option with Ctrl+B. This is good for making the UI more discoverable and getting more efficient if one uses the option often. Microsoft Word 2003 only shows "Bold" and not the keyboard shortcut.
At last, the tooltip in LibreOffice Writer and Microsoft Word 2003 is adjacent to the corresponding option, while in Microsoft Word 365, it is far away, under the lowest setting.
I guess the reason for this change is that a tooltip in Microsoft Word 365 can have links to the documentation:
If the tooltip were placed like in LibreOffice Writer and Microsoft Word 2003, then the user might not be able to access the option covered by the tooltip.
Fitts’s Law
It’s not by accident that prior to Windows 11, the start menu was located at a corner (the lower left) of the screen by default.
One of the reasons for the previous location is the Fitts’s law ποΈ.
I suppose that for the same reason, Mac OS places the menu of the programs at the top of the screen, and not at the top of the Window program itself.
Strangely, since Windows 11, the start menu is not located by default at the corner, but somewhere at the bottom.
If there were a Windows 11 Phone that uses the same UI, I would have assumed that placing the start menu in the middle makes it easier to reach with the fingers when using one hand ποΈ. I guess this is also the reason why the Android Menu buttons are not exactly at the corner, although it should have been possible to expand the touch area to the corner.
While one could argue that on a big enough monitor, the centered position makes it easier to reach when the mouse is in the right region, another disadvantage is that the position changes depending on how many programs are open.
Rounded corners
Windows Phone (and Windows 8) distinguished itself from iOS and Android by using "normal" squares instead of squares with rounded corners.
On the other hand, rounded corners have been common for a very long time. For example, Windows XP and subsequent versions until Windows 8 had them, and Apple introduced them in 1981 ποΈ.
The web had to wait at least until 2005 for a cross-platform solution, when CSS3 introduced border-radius. According to MDN ποΈ, it is only "since 2015 that it is well established and works across many devices and browser versions". I’m not sure what browser was holding it back until 2015; I guess some older version of Internet Explorer still had a significant market share.
Even before border-radius was standardized, it was possible to create rounded corners with browser-specific attributes; Firefox supported, for example, -moz-border-radius since its first release.
With Windows 11, Microsoft also introduced rounded corners again in most, if not all, dialogs, although on Windows Server 2025, the squares still have sharp edges by default.
I remember reading somewhere that BΓ©zier curves ποΈ are particularly appealing to the eye, but I cannot find the source anymore.
Another thing to consider is that in the "real" world, most edges are not that sharp. In particular, rounded edges help to make things more resistant. This is obviously irrelevant for things drawn on a monitor, but it can affect how we perceive them.
Width
Another difference between older versions of Windows and the current one is the width of elements.
This is another side-by-side comparison of Explorer, but this time in Windows 7 and Windows 11, and in both cases, the instances are not full screen, and not all elements of a folder fit into the screen:
In Windows 7, the border of every window has a certain width. On Windows 11 too, but it seems to be only one or two pixels. This makes it harder than necessary to resize a window, in particular if you want to click on the edge!
Another element that got much thinner is the scrollbar.
In Windows 7, it is extremely easy to click on it, while on Windows 11, it is much thinner and easier to miss. Plus, on Windows 7, the arrows for scrolling up and down are always shown; in Windows 11, only when the mouse is on the scrollbar. Some applications go the extra mile and hide it unless one is on the correct element. Thunderbird and Firefox do it, for example, and it happened to me more than once that I thought an email was missing something, because I did not notice I could scroll further. The scrollbar is only shown when I move the mouse over the mail content, and considering that there is enough space to always show it, it irritates me a lot.
On Windows, there is a global setting, Settings β "Accessibility" β "Visual Effects", and enable the option "Always show scrollbars". With this change, both Firefox and Thunderbird will always show the scrollbar if there is anything to scroll.
In KDE Plasma ther eis no equivalent settings, but scrollbars are in general always visible, even in Firefox, but not Thunderbird.
At least in Thunderbird, there is an explicit option for always showing the scrollbar (if necessary).
To reiterate: hiding content is problematic.
Gestures
I generally do not like gestures.
Done slightly differently, the movement you’ve made has a different meaning.
At least on Android, they are optional, while on iOS, they are not. Another reason why I do not like it. When I try to use it, I’m often unable to get past the lock screen.
One could claim the same thing when using a keyboard and buttons; if you press the wrong key or button, you’ll get a different outcome.
The difference is that a gesture (on a phone) requires touching the screen, then moving the finger at a certain speed for a given distance in a given direction, and then stopping touching the screen. Compare that to just touching the screen for a moment at a specific location.
Or imagine if you had to drag the pointer on a PC with the mouse to log in or save a file!
This article ποΈ correctly states that on a PC, the double-click is a form of gesture. I guess that’s the reason why the timer for the double-click can be changed, or the double-click can be disabled completely.
On the other hand, some gestures are way better than clicking.
The first example that comes to mind is Mario Kart Wii ποΈ (and subsequent releases for the Wii U and Nintendo Switch). You can use a "conventional controller" and use the analog stick for steering. The (IMHO) preferred way to play is by using the Wii controller’s motion controls to simulate operating a steering wheel, which makes the game easier and more entertaining.
The reason I believe the game is easier is that using the analog stick means using more fingers. This requires a certain type of coordination of the movements of the fingers, as they are used for throwing objects, accelerating, doing tricks, wheelies, and drifting. Moving your arms, or moving the whole body, at the same time while using the fingers seems to require less coordination. At least this is what I’ve observed, especially in children, as they tend to move the whole body even when using a "classic" controller when steering. Using gestures might be less precise than using an analog stick, but requires generally more training/experience.
Another example is Wii Sports ποΈ. Instead of using buttons and an analog stick for playing, you swing the Wiimote around. If you play tennis, swinging the Wiimote as if it were a racket is much more fun than pressing buttons.
If you play bowling, doing the usual movement is more natural than clicking on buttons.
In both cases, it is more intuitive to understand when and for how long you have to do a certain movement instead of when you have to click one or more buttons and move the stick.
This is not to say that for games, some form of gestures is always better. There are many games with gestures where gamers worked hard to create patches ποΈ for playing with classic controllers on the original hardware instead of moving the Wiimote around, as they believe it makes the game better.
For actions like unlocking a lock-screen or deleting a notification, the gesture implemented on the phone has little to no resemblance to a similar action done in the "real world", thus it does not feel that natural or is as error-free.
Some smart TVs use a remote that resembles the Wii Remote. In this case, I find the "classic" remote is generally easier to use; you do not even need to point exactly at the screen for selecting the channel or changing a setting, while with a Wii-like remote, chances of misclicking are, in general, higher. I guess that after a certain screen size, pointing controllers are not that practical.
I am also not claiming that all gestures are bad. I find, for example, pinch and zoom for zooming in and out intuitive, although it is not something one does in "real life". The rotate gesture is another gesture I find intuitive and is also something one does in real life when rotating a relatively small object.
Icons
Icons with a given meaning
Some icons have a meaning that is more or less universally understood.
For example, a floppy disk is for saving data.
You can change those symbols in your application, but you should not.
For example, the Tango project ποΈ uses a disk.
But also a disk is not correct. Many PCs use an SSD. Some devices use SD cards, or something else entirely. Sometimes, you want to save the data on a USB stick, a remote device (via sshfs, samba, etc.), or in RAM with a tmpfs virtual disk.
The exact same arguments can be made for the floppy icon, especially since nearly no one uses floppies anymore. But the floppy as a save icon, without even knowing the origin, is understood, it has momentum, and it is used by most, if not all, user interfaces: Windows, Gnome, KDE, etc. An "Hard drive with an arrow pointing onto it" is not as well understood; it creates unnecessary friction.
There is little reason to use a different symbol.
Too many details
I remember when Ubuntu changed the icon of its software center at the end of 2011, and how strange it looked.
The issue was that it contained too many little details. Plus, no other icon of the Ubuntu system used the same style, so this inconsistency stood out a lot.
I was not the only one unconvinced ποΈ by the, at the time, new icon. After a couple of years, it changed again. The new one looks better, although I still prefer the first revision, but maybe it’s just nostalgia:
What the "A" stands for is not obvious; it’s the Software Center; I assume it stands for Applications?
Honestly, I do not find the icons of other stores, like Google Play Store (a colored triangle, which I assume should resemble the Play icon of a player), the Microsoft Store (a white paper bag with the Windows logo), or the Apple Store (an A on a blue background) necessarily better, as none of them depicts a store, a kiosk, a Gumball machine, a snack vending machine, or another place where you buy thinngs. Maybe something with a shopping cart, like many online stores do (or did)?
Secure and insecure content
Sometimes our system has to interact with external resources, like emails, web pages, or USB sticks.
Those are often considered insecure; if not handled with care, an attacker can gain access to the system.
It is important for components dealing with those resources to help the user identify and mitigate possible risks.
On the monitor
Normally, it is easy to distinguish where the content of a program begins and ends.
For example, in a text editor like Notepad, there is the title bar, the menu, a textual representation of the content of the file, and a status line at the bottom.
An image viewer, or editor, is already more subtle. If the image is a screenshot of an application, you might confuse, for example, the close button shown in the image with a real close button, and try to click on it. If this happens, you might look at the monitor, confused for a moment, then realize your error, and click where you wanted to click.
Normally, nothing bad happens because an image is not interactive. The worst-case scenario is that you have modified the image, but you can undo that with Ctrl+Z, and if you have closed the image, then you can open it again.
In a browser, with dynamic content, the situation is much more problematic.
The main reason is that it is hard, if not impossible, to determine what looks like a program on top of the browser is actually a separate program, or something rendered inside the browser.
This is not something novel; even when Windows XP with Internet Explorer 6 was the most used system, there were websites that were similar to Windows XP dialogs with some warnings, trying to convince the user to click on it.
At the time, it was relatively easy to recognize them; the dialogs could not be moved, and people spent less time with the browser open all the time. Today, the browser is almost always running, and websites are much more interactive. The "Browser In The Browser (BITB) Attack" ποΈ is also more sophisticated.
Unfortunately, as far as I know, there is no automated mitigation in Firefox, Chrome, or any other browser.
The only way to detect such an attack is to move the presumed windows around; if it cannot be moved outside of the browser, then it’s not a real application. Unfortunately, when functionalities like Kiosk Mode are enabled, where the browser runs full-screen, there is, to my knowledge, no way to be certain.
There is this concept of line of death ποΈ, an area where the user can trust is secure, but as the article points out, future features (in the meantime available) reduce that to 0.
Through the keyboard
On Windows, programs cannot intercept the keyboard combination Ctrl+Alt+Del.
Thus if you end in a situation where you do not know if you can trust what is shown to you (are you looking at an image? an actual program, a webpage simulating your computer? a remote connection to another machine? a virtual machine on your system) you can use Ctrl+Alt+Del to exit from such a situation.
This is also a reason why Ctrl+Alt+Del is used for logging in ποΈ , unless disabled.
Unfortunately, even if it cannot be bypassed, I believe it currently does not help much in most situations.
If the user sets up a login mask where you can directly insert username and password, I do not think that most people would press Ctrl+Alt+Del out of habit before inserting the login credentials.
3D effects
Gratuitous 3D effects
Those who used to install Linux distributions 20 years ago will surely remember the project Compiz ποΈ, which brought advanced 3d effects and animations to the desktop.[
Microsoft also released with Windows Vista, in 2006, some fancy 3D effects, in particular, it added the β Win+Tab βΉ shortcut for activating Windows Flip 3D ποΈ as an alternative to Alt+Tab βΉ. Contrary to the Windows Flip, the windows are organized in a three-dimensional stack.
While it had a certain "wow" effect, Windows Flip 3D is, from a usability perspective, worse than the improved Windows Flip of Windows Vista. In particular, in Windows Flip 3D most of the content of the windows is covered by the other windows that come first in the stack, while with the improved Windows Flip, the whole content is visible.
Granted, when switching between different programs, this is not problematic, but if there are multiple instances of the same application, it makes a big difference.
Another disadvantage is that with Windows Flip 3D to select the Window one has to bring it to the first position of the stack, while with Windows Flip one can click with the mouse directly on the desired window, without iterating through them all. Thus, if there are a lot of open programs, with Alt+Tab βΉ it is faster to switch to the desired program compared to β Win+Tab βΉ.
Third, but not last, to select elements on Windows Flip 3D, one cannot use the arrow buttons, while they can be used on Windows Flip.
While some drawbacks can be fixed, I suppose there is little reason for having two different ways for switching applications, and the two-dimensional version is much more practical. Windows Flip 3D has been removed since Windows 7, and β Win+Tab βΉ behaves more similarly to Alt+Tab βΉ.
Another example of gratuitous 3D effects is the parallax effect introduced in iOS 7 in 2013.
I remember that someone told me they got nauseated for this effect; they were not the only one ποΈ, although it is hard to state how many people are affected. At the end of the day, I do not think it improves the user experience, similarly to how Windows Flip 3D did not. It might be something that looks impressive, but there is no new functionality; at best, you will not notice the effect anymore after a while.
Search
In older programs, it is less common to have a search dialog inside the application, for example, in the settings page.
It is a useful addition, although I fear it might be used as an excuse for unorganized menus or making gratuitous changes between versions.
Contrast
There are multiple resources, especially for webpages, that explain how contrast is important to improve legibility; for example, on
There are different tools, especially for webpages, for testing if the contrast is high enough, like the Accessibility Inspector in Firefox ποΈ or an online service like the WAVE Web Accessibility Evaluation Tools.
I wonder if there is a tool that can be run locally to also evaluate native programs, and if not, something that can at least evaluate images.
Dark patterns
Dark patterns are patterns that try to convince you to do something against your interest.
Invisible buttons
I’m accustomed to the fact that many websites try to deceive you.
Most will ask you to store cookies and other metadata, and since some websites break if you do not accept them, I usually just accept everything and delete the data once the session is closed. Except for a short list of websites, I am really not interested in a personalized experience or having an account. I believe that fighting every website, one by one, is a waste of time. With addons for the browser, it is possible to automate this task for most, if not all, websites.
But for applications on the phone, I have no such mechanism. Recently, I noticed the following dialog when opening the application of kleinanzeigen.de on a phone where I just installed the application:
I missed it every time, and I still do. There are three buttons, not two:
-
"Einverstanden", which translates to "Accept"
-
"Datenschutzeinstellungen", which translates to "Privacy Settings", leads to a page where you can toggle all single settings on or off
-
"Ablehnen", which is "Reject", and is for not sharing any data
Obviously, there are thousands of other examples. I opened the first website that popped into my mind; let’s see what Facebook does:
If you do not read the text carefully, you’ll probably click on "Allow all cookies", even if it is not in your best interest. Although I have to admit that both buttons are recognizable.
I clicked on the cookie policy page, and there it is:
The button for declining cookies does not even have a grey-on-white background, just like the app of kleinanzeigen.de!
It’s ironic that I found such an example on a cookie policy page, and it’s sad that I found an example after my first attempt, when I did not even try.
Restoring settings
It happens more often that the choices the users made in the past are questioned from time to time.
If you disable a service, you’ll get reminders.
Sometimes there is not even a button labeled "No", but a "Remind me later".
On Android, Google asks multiple times to configure an online account. On Windows, Microsoft does something similar with OneDrive. On iOS, if you do not configure an account, you are constantly reminded to configure it.
Also, it is not unusual that updates can bring new functionality. What’s irritating is when updates enable functionalities that the user disabled.
For example, Thunderbird enabled its User-Agent header after an update, even if it was explicitly disabled.

































If you have questions, comments, or found typos, the notes are not clear, or there are some errors; then just contact me.