Draft Tab Guidelines

This is a tentative proposal for a set of guidelines on the implementation of tabbed interfaces in GNOME. The aim is to promote consistency in tab implementations across the desktop. As such, much of it is a formalisation of current general practice.

Author's comments are italicised.

Tab Appearance

  • Tab widths should be fixed.
    • Most GNOME apps do this (though the actual width that is used varies a bit). GNOME Terminal and Gedit don't, though. Still need to decide on what that width should be.

  • Close buttons should be on all tabs.
    • This is standard practice. It has also been recommended by some reliable looking usability research.

  • Tab bar shouldn't be displayed when only one tab is open.
    • Empathy and Gedit both display the tab bar when only one tab is open. Other apps hide it. I'm largely pursuaded by Reinout's argument on this issue.

Tab Behaviour

  • Left mouse button press on tab selects tab.
    • Standard GNOME practice.

  • Right mouse button press on tab activates tab context menu (and shouldn't select the tab).
  • Tabs should be reorderable using drag and drop.
    • This is standard in GNOME right now. Works well.

  • New tabs should be appended to the right of other tabs.
    • Also standard practice.

  • Tab focus should switch to the previously selected tab when the currently selected tab is deleted.
    • This is the way Gedit, Epiphany and Nautilus do it. GNOME Terminal doesn't.

Tab Menu

  • Tab menu should be labelled 'Tabs'.
    • The only GNOME app that doesn't do this is Gedit.

  • Menu should contain the following items:
    • Select Tab Left
      • Previous Tab' is the usual label for this item. I've replaced 'Previous' with 'Left' in order to make the meaning clear and to make the menu vocabularly consistent (other entries use 'Left' instead of 'Previous').

      • I've inserted the word 'Select' in order to specify what the action will do.

    • Select Tab Right
      • 'Next Tab' is the usual label for this item. I've replaced 'Next' with 'Right' in order to remove potential confusion and in order to make the menu vocabularly consistent (other entries use 'Right' instead of 'Next').

      • I've inserted the word 'Select' in order to specify what the action will do.

    • <Separator>

    • Move Selected Tab Left
      • 'Move Tab Left' is the usual label for this item. I've inserted the word 'Selected' just to be clear about what is being moved. Not sure about this.

    • Move Selected Tab Right
      • 'Move Tab Right' is the usual label for this item. I've inserted the word 'Selected' just to be clear about what is being moved. Not sure about this.

    • Move Tab to New Window
      • This is sometimes called 'Detach', but I think that 'Move Tab to New Window' is clearer.

    • <Separator>

    • Selection entries for specific tabs (radio button to left of each entry)
      • Standard GNOME practice.

Context Menu

I've avoided using the word 'Tab' in each of these entries, since a user will typically have clicked on a tab anyway, and should therefore know what the menu entries are referring to. I would be interested to hear if there are any good reasons to reintroduce this word into these menu labels, though.

  • Context menu on tab right click should contain the following items:
    • Move Right
    • Move Left
    • Move to New Window
      • My preferred rephrasing of 'Detach' - see above.

    • Close
      • Standard practice, though the wording varies between 'Close' and 'Close Tab'.

Keyboard Shortcuts

  • Where possible, keyboard shortcuts should be:
    • Open new tab: Ctrl+T
    • Select tab right/left: Ctrl+PgUp/PgDn

    • Select specific tab: Alt+<Number>

    • Move tab right/left: Shift+Ctrl+PgUp/PgDn

    • Close current tab: Ctrl+W
    • Close window: Ctrl+Q

File Menu Entries

  • File menu entries for opening:
    • New Window
    • New Tab
  • File menu entries for closing:
    • I've deliberately omitted a 'Close All Windows' option here.

    • When multiple tabs are open:
      • Close Window
      • Close Tab
    • When only one tab is open:
      • Close Window
        • I wonder whether it would be right to label this just 'Close'?

Tab States

State display needs to be standardised across the desktop to include window titles, task lists, etc. A more general set of proposals is required, therefore.

  • Tab states that are needed to be communicated:
    • Unread
    • Unsaved
    • Loading/progress
    • Attention needed/raised

Attic/UsabilityProject/Whiteboard/TabImplementation/Guidelines (last edited 2014-07-10 23:07:15 by AllanDay)