Thoughts on GNOME 3.6 UX Changes

GNOME 3.6 has entered Debian Experimental, at least to the point where it’s installable save for a few applications. Here are some of my thoughts on the new experience.

Application Menus

In GNOME 3.6 some applications (specifically Files (previously Nautilus)) move their menus to the spot next to Activities. This spot is occupied by the currently-focused application.

The main thing is to be aware of the change. You now have to go there for those applications, and you have to ensure the application is focused before doing so.

On the whole I don’t think this is that bad. Yes, I do happen to keep my Files instances way on the right of a two-monitor setup, and the menu is way on the left. But how often do I need that menu? Pretty much never. Occasionally I’d get somewhere via bookmarks in the old Nautilus. Every now and then I look over my preferences and tweak them. But neither were remotely a daily occurrence for me.

Assuming other applications that drop their menubars for this global menu spot take similar pains to avoid needing the menu very much, it won’t bother me.

In that, this design is a kind of dare to application developers: try to get all the bang out of the UI itself.

Scrollbars

Now that the Gtk+ 2 theme is closer to the Gtk+ 3 theme, all my scrollbars are normalized. That means my scrollbars are now like one bead abacuses. Formerly I had bookends on them letting me press buttons. Now I only have the slider and non-slider areas.

The mouse buttons changed their meanings. Formerly middle-click would jump to the point in the scrollbar. Now that’s left-click.

Provided the scrollbar semantics don’t change every release, this is passable. While I would occasionally use the buttons, I can live without them.

My main complaint with the current generation (and with 3.4) scrollbars is the color of the inactive thumb and blurred thumb. By those I mean the dragged part of the bar that’s not in active use, and the bar that’s part of an inactive window.

I tend to lose my place, as they don’t stand out particularly well. That’s especially true of the blurred bar, where it probably takes me a full second to find the white on light gray thumb.

Why do I need to know that? Often I am going through a scrollable area in a linear fashion, and deciding how far I am is important to time management. But more importantly, switching to that window means evaluating where I need to scroll to. Before, with easily seen bar positions, I could make that decision as I was making the switch. But now I usually have to make the switch, then decide where to scroll.

In time, maybe I’ll learn to ignore the bar and simply try to discover my position based on the content, but more likely I’ll find an alternative to Adwaita (or modify it).

Still scrollbars on the desktop are a far cry better than what I’ve experienced on Android. There, scrollbars are basically vestigial. They only show you where you are. There are a few applications that have functional scrollbars, but even those don’t really allow for jumping to points in the list.

This is especially annoying when you’ve read to the bottom of a page and need to get to the top. I’ve tried gesturing at it, but it doesn’t seem to understand what that means. So I find myself repeatedly dragging the page until I get to the top (or bottom). Give me a regular scrollbar any day!

New Lock Screen, Shutdown Without Holding Alt, etc.

One of the features people cared about in this release is the new lock screen, which you have to either drag out of the way or press enter to be able to unlock. It doesn’t bother me. I can press enter. The updated lock screen looks nicer.

Same goes for the shutdown with or without alt. I was used to holding alt, but I haven’t accidentally hit suspend so far.

Only things that have really bugged me so far are both in the Activities overview:

Centered Search Field

This just feels like it’s in left field. Like it should belong somewhere, but there wasn’t a spot that was preferred, so it was stuck there. It’s got an unusual sizing, it just feels awkward. Maybe I’ll get used to it.

Show Applications

This is thrown in the iconic application bar in Activities, and it brings up the full listing of applications available to the user. The button is immovable. It doesn’t belong there. Again, it feels like there was a desire to shove this somewhere, but no particularly apt place came forth.

It’s a useful feature. But as any Sesame Street alumnus could tell you, “one of these things is not like the others.” It should be elsewhere.

Conclusions

On the whole this is another solid release of GNOME. While I understand some of the concern by others regarding the direction of the UI, I still think that most of their concern is overreaching.

Specifically, they seem obsessed with the alleged obsession of GNOME developers to make things useful with a tablet. Having never used a tablet, I can’t say how useful the current designs would be.

But I can speak to the usability of a touch-based mobile device. So far it’s a lame experience. Way too many times have I clicked the wrong link. I can’t tell where a link goes, which is important to judging if it’s worth clicking or passing. Typing is difficult to begin with, made worse by ineffective input editing tools (if I misspelled “misspelled” as “nisspelled” then it’s faster for me to erase the whole word than try to get the cursor to the “n” and fix it).

If the GNOME developers are eroding these sorts of problems in a product that will see any tablet/touch device adoption, then they deserve praise, so long as they’re cognizant of the needs of the desktop/laptop platforms as well.

2020: When Computers Will Look “Over There”

Wherever you are right now, go somewhere else in your head. If you’re in your home, think about a different room. If you’re not at home, think about a room in your home. You can probably look around the room a bit, remembering all the parts of it. Now you can probably go to some shelf or drawer and look around there.

You don’t have a perfect replica, but it’s good enough that you can remember, right now, where some remote object is. And if you went there right now, you would find that object where your brain said it would be.

This is a highly developed skill of the brain. So developed, in fact, that quite a few people use mnemonic device called the Memory Palace (Wikipedia: Method of loci) to allow them to memorize information rapidly and recall it with ease. But our computers currently rely upon the use of textual bits to demarcate things like files and folders.

If we’re forced to give the location for something, we tend to speak relatively: “down the hall, third door on the left, the big bookshelf in the corner with the taco bookends, second shelf from the top.” We don’t say, “the room called var, the piece of furniture called games, the shelf called board games, the object called dominoes.” (Okay, we do say roughly the last part.)

That’s all going to change. Let’s say you have a next-generation, non-invasive Brain-computer interface (Wikipedia: Brain-computer interface). Suddenly the computer can listen for you to “say” something like, “open that thing over there.” It can store a mapping for what “over there” means, and it can use your reference to it to trigger the mapping and get the data you want, without you needing to remember the location in the computer’s terms.

This will allow the computer to manage more of the problems that are currently shared between computer and user. And it will make computers easier to use.

But it will do some other things, too. It has the potential to overturn education, by having the computer help in your learning in a way that only the best teachers currently do.

Take, for example Kickstarter: Zombie-Based Learning: Geography taught in Zombie Apocalypse by David Hunter. This looks to be a great example of traditional teaching. The teacher uses their creativity to generate a compelling narrative for the material, setting the proper pacing, activities, etc. so that the kids all learn and retain the knowledge.

With computers, and a BCI (Brain-computer interface), the computer can help people to store memories in ways that will maximize their recall. This will initially happen in some rudimentary ways, like flashing pictures that are composed from a variety of images thought to be uncanny enough to help in memory. For example, a clown in a fish bowl, next to a fish in scuba gear.

But that may give way to better schemes where the computer has image representations of some of the places it knows you remember things, and it could suggest you add the memories in those places. It could also quiz you by flashing the location and asking you to show you remember what you should.

Passwords might consist of a challenge/response, where the computer flashes an image and you have to recall another image at some place in the same sequence.

Brain-computer interfaces represent a major leap forward in what computers will be able to do for humanity. They are on the horizon, and they are undoubtedly an epoch. Just as there is the world before the Internet and after, there is the world before widespread BCI and after.

Web Monsters and Configuration

It’s worth talking about Web Applications. They are the latest greatest grand vision for the Internet Web, and have been for some time now. But they have problems, too.

One of the biggest problems with Web Applications becomes clear if you install a browser add-on that operates just fine on a normal page, but fails on these special, modern “application” pages. For example, SourceForge: Pentadactyl is such an add-on. It lets you use the Mozilla-type browsers using interactions familiar to users of the vi and vim editors (it’s actually a fork of the add-on called Vimperator).

It works pretty well, and I was well on my way to adapting my use to it (ie, relearning browsing using those idioms). Then I tried using it with a few web applications (particularly Google Reader), and had computer collision deja vu. This is a common phenomena for people that use computers enough: you run into the same wall you’ve run into before.

Namely, Web Applications roll their own interactions. And they don’t necessarily do it in a way that matches the platform or browser norms. The result being an uncanny valley in Web Apps, where they look and act close enough to either web pages or regular applications, but are a sufficiently mashed version of both as to offend.

This is especially true when the roll their own widgets, which is unfortunately going to become more common. We have long seen that problem in Flash applications, where authors regularly broke expectations.

It’s not merely a problem with insensitive authors, though. It’s a general problem.

But when you take a step back, it’s not even specific to the web. It’s specific to Human-Computer Interaction.

One of the big gripes about the GNOME desktop is how they limit configurability. You get the same kind of problems with browsers offering different levels of configurability. And, anyone that’s tried to use an Apple Inc. Macintosh computer while using either a computer running Microsoft Inc. Windows OS, a GNU/Linux OS, or other OS knows the pain of switching between radically different keymappings.

The problem comes down to being able to interact with a system in an expected way. A lot of that comes down to being able to configure a system to use what you’re accustomed to. And a lot of the problems come from breaking the expectations of that possibility.

Take, for example, the sites that impose a copy notice into anything you copy from their pages. When you select and copy text, they have a script that appends or prepends some text about where you copied it from. That totally breaks the expectation that what you copied will be verbatim. And they don’t offer any simple way to turn it off, meaning you must resort to either manual removal of the addendum or block loading of the script.

The answer to this problem (disregarding the fact that a company may desire not to give you the power to use its service or device as you please) is abstracting the interaction and configuration so that you can plug in your environmental desire.

It’s a very difficult problem to manage, of course. We have long seen the error of the web in this regard: pages put on so much makeup you’d think they were running for president. The original web was one of serving documents. The original web grew to allow some minimal styling, to allow images. That grew to the web of today, where you can make a webpage that uses WebGL to run a full-on videogame.

It does add to the versatility of the tool, but at a certain point you start feeling like what was a great knife is now one of those Swiss Army demonstration pieces with 100-odd tools. The glory of computing is that you can still eschew the majority of them and stick with a knife without the unwieldiness. But that’s if you’re building the page or site.

It’s trickier to disentangle the sites you visit from their webs of scripts, extraneous content, etc.

Sure, you can write a configuration conversion tool so that your interaction preferences can be synchronized between devices, but it’s harder to get the developers to agree that there’s an abstract set of preferences that two or more applications can feed from without rolling their own.

Ask any gamer that doesn’t like the default bindings and interactions of games, how many times have they inverted the pitch controls? How many times have they remapped their keys? On every single game.

Steam, the Valve game distribution platform, might actually be a prime ground for building a configuration abstraction. You download a game, it asks Steam what your preferences are, and you don’t have to make modifications except where the game has options that are not in the set that Steam provides.

Anyway, at least some areas are seeing progress. Mozilla’s BrowserID project, OpenID, among other open projects attempting to fix one of the most common duplicate configuration systems, the basic service signup requiring a password for every site.

But that’s just one piece of the larger puzzle, which will eventually be recognized.

There’s another side of the coin, of course. Sometimes learning a new system is good. If every piece of software adapts to you, how can you ever learn a better system? That objection’s answer is in the very concept of abstraction. You can simply change your interaction, like you can change your clothes.

And it works better when every piece of technology you touch obeys. If you want to learn the metric temperature system, it’s far easier if every source of temperature data gives you the metric once you check or uncheck a box.

Discoverability in Software

Discoverability

One of the big challenges in writing usable software is making all of the features and options apparent to the user, particularly to the novice.

Menus do a good job, by being visible and readable (including by accessibility tools).  But keyboard shortcuts that are not menuized have poor discoverability, as do some mouse actions (gestures, uncommon or inconsistent button behavior).

For example, you’ve probably repeatedly clicked on a text field in software before and noticed portions of the entered content are selected.  It’s not obvious what happens if you aren’t paying close attention.

The general behavior here is that a single click moves the cursor while a double click will select some portion of the entered text.  The double click rules are basically:

  1. Select the word the cursor is over (if it is a word).
  2. Otherwise, select the surrounding word(s) (if over a space).

But there’s also the triple click here.  Triple clicking will select the entire paragraph.

How would you determine these behaviors, other than having been told or experimented?  Unlike a checkbox, which has some kind of indication that clicking it does something like erase or add a check to it, text gives no such indication.

There are regular threads across the internet where people discover that shift and middle click both have myriad uses in Firefox.  Having an about: URL that gave the full list might be useful, but even that wouldn’t be too discoverable.  And the sidekick of discoverability is remindability.  If the user reads a long list once, they won’t necessarily remember for the next time they could use that action.

Certain UNIX text editors have extensive tutorials to help people learn their commands and behavior.  And the evidence is compelling that once you learn them it makes you more productive.  But, learning them is still a fairly big hurdle, even with tutorials.  This is purely a discovery issue.

One of the best possible solutions I can imagine would be to create video games with the UI for these applications.  If you had to kill space aliens (no offense to any space aliens reading this) while playing a game version of vi, you would learn the commands much faster.  Same goes for killing zombie tabs and zombie bookmarks in Firefox.

The Woes of Color

As anyone that’s watched this blog when it’s changed, or looked at Sequlr knows, I’m not the most gifted person when it comes to picking colors.  Part of that is the fact that not all color combinations even work to begin with.  There’s this notion of contrast, and without contrast you simply cannot have a foreground and background at all.  The WCAG 2 guidelines for color contrast makes picking colors something of a minefield.

Many websites (I might even guess a majority, but I haven’t done any serious sampling) completely ignore WCAG/color contrast, assuming all of their users have perfect vision.  They are more concerned with the visual appeal of their design than the functionality.  This goes even for very prominent websites and those that at least pay lip service to accessibility.

But even for the few, the proud that make earnest attempts to comply, to contrast correctly, the obstacles are considerable.  Consider Mozilla Firefox, which is currently in the late beta versions of its fourth release.  They have a CSS color, GrayText, which is hardcoded and bad for accessibility in certain circumstances.  In the case I noticed, it’s used for the hovered link, now that the status bar is going away.  Of course, they shouldn’t be trying to indicate placeholder or non-standard text by making it gray, but it wouldn’t be so bad if they derived its value from the OS theme.

And there’s the second hit: the OS likely doesn’t provide a specific color for this use case.  It probably doesn’t provide guidance for link/visited link colors either.  The OS justification for this is likely that adding more color choices for the theme would complicate it.  That’s true, but you have to choose your direction of complication: either provide the choice that can be ignored by the user or end up with the application developer painting themselves into a corner.  In the latter case you end up harming your users anyway, as they may find their theme incompatible with a variety of software despite it being an otherwise usable theme.

My own experience with color has been that it’s very difficult even if you ignore accessibility.  If you do take contrast into account, it’s harder because you have to pick some colors and then tweak them or at least check them for proper contrast.

I think the solution is better allowance for user choice in colors.  At the OS level, as I’ve noted, but these color choices need to bleed through to the web.  The web application should be able to get a set of colors the OS theme uses, and apply them correctly to the presentation.  This would make the web blend better with the desktop, and it would improve the accessibility of the web a bit.  The other change needed is for the web to get over art.  Where the goal is art, the web can keep going, but where the goal is actually to present information, the tendency for art to trump function is alarming and harmful to the platform.

Selah.