Implementation

This page is now out of date. See UsabilityProject/Whiteboard/KeyboardPreferences instead.

Layout Tab

Before (Ubuntu 9.04) and after (git.gnome.org)

Screenshot1.png Screenshot2.png

Feedback

Positives

  • The 'Move Up' and 'Move Down' buttons are great and grey out in the right situations.
  • The vertical spacing of the buttons and check boxes is right and correctly communicates the grouping of these interface elements.
  • Moving the 'Separate layout for each window' checkbox makes the dialog much easier to understand.

Modifications

Horizontal alignment

The spacing of the buttons would benefit from modification. The edges of the buttons should be aligned with the sides of the list box. The 'Layout Options...' and 'Reset to Defaults' buttons could also be aligned with 'Move Up', 'Move Down' and 'Print.

Diagram1.png

This will have the effect of reducing visual complexity - making the dialog more attactive and easier to parse.

'New windows get layout "%s"'

The final check box - which reads 'New windows get layout "%s"' - does not follow the recommendations I put in the design review. I don't think this new implementation is a good idea:

  • The check box is being used for two functions - to communicate what the default layout will be and to disable that default layout. This combination of functions makes the interface more complex and potentially confusing.
  • That the checkbox label changes states while being greyed out creates the possibility of confusion. The changing of the label suggests that the check box is relevant to the user. The check box and label being greyed out suggests the opposite. Hence confusion.
  • The check box label fails to communicate the behaviour that will occur when it is unchecked (this is the principle reason this check box was introduced to the design).

Sergey - I know that you've adopted this approach because you have doubts about 'New windows inheret active layout'. We can work with the phrasing of that expression (see below), but it is essential that that check box layout communicates what will happen when it is both checked and unchecked. Since the dialog already describes what will happen in the 'default state', it is necessary that the check box label describes what happens when that default state is not in effect.

'New windows inheret active layout' - the verb could be changed from inheret to get, acquire, or use. 'active' could also be changed to 'current'. The sentence could also be rephrased. For example:

  • 'New windows get current layout'
  • 'New windows use current window's layout'
  • 'Current window layout used by new windows'

The second of these is my favourite - it's the most precise.

(AllanDay: 2009-10-21)

I have aligned first 2 rows of buttons. The bottom one should be aligned separately - because the checkboxes in the middle make it "independent layout unit". Please check in git. Regarding the checkbox name - I see your point. I just would like to hear more opinions from some other people...

(SergeyUdaltsov: 2009-11-01)


A quick review:

  • “Selected layouts” doesn’t mean anything. Selected for what?
  • If the table has only one column, what is the use of the column header?
  • Hooray that “Add…” and “Remove” are finally in the correct order!
  • What is the point of rearranging the order of the layouts? This isn’t explained anywhere.
  • Having buttons for “Move Up” and “Move Down” looks dumb for anyone using a pointing device capable of dragging. Instead, make the layouts draggable within the list, with the accessible equivalent being something like Alt+Up and Alt+Down to move the selected item.
  • “Print” should be “Print…”, since it requires further input.
  • As Alan has correctly identified, the “New windows get layout {X}” checkbox doesn’t make sense. The usual solution to this kind of problem is to replace the checkbox with a pair of radio buttons. Unfortunately I can’t make a specific suggestion, because I don’t know what the off state means either.
  • If “Layout Options…” applies just to the selected layout, it should be closer to the list of layouts than non-layout-specific items like “Separate layout for each window”. On the other hand, if it applies to any layout, it might be clearer if its label avoided using the word “layout”.

MatthewPaulThomas 2009-11-04

  • Thanks for this, Matthew. Some of your suggestions are covered in the review I did. A few aren't though:

    • How to explain the point of the layout order? I've considered a few possibilities... maybe a simple label under the list which says something like 'Layouts are listed according to their order in the switching cycle' would be best?
    • The 'Move up' and 'Move down' buttons were inserted for reasons of discoverability. The user needs to know that reordering is possible. That discoverablity could be provided by the label I've suggested in the point above, of course. It could read: 'Move layouts in the list in order to change their position in the switching cycle'. (Or something like that!)
    • “New windows get layout {X}”: in the off state new windows acquire their layout from the layout being used by the current active window. I have suggested inverting the behaviour of the check box and giving it the label 'New windows use active window's layout' (or a variation thereof). Sergey is not so sure about this (see the comments in the original review). It would be useful to have a third opinion on this!

    • I asked Sergey about the effect of 'Layout Options...' - it effects all layouts. I like your suggestion of using 'Options...' as the label for this button.
  • AllanDay: 2009-11-04

  • Thanks Matthew. First of all, the change "Layout Options" -> "Options" is committed. As well as "Print" with ellipsis. The discoverability of the "move up/down" really has to be improved comparing to gnome 2.28 - and I do not see any other way but adding "Move Up"/"Move Down" buttons. @Allan: the label with lengthy explanations ... you know, these things usually do not work (and I am not sure it is HIG-compliant).

  • SergeyUdaltsov: 2009-11-04

Design/SystemSettings/Keyboard/Review/Implementation (last edited 2014-07-10 18:46:36 by AllanDay)