Difference between revisions of "Proposal Smart Help"

From Audacity Wiki
Jump to: navigation, search
(add link back to More GSoC Ideas)
(Developer Backing: *'''Peter:''' I support this idea)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Overview==
+
{{Proposal_Header|This page is a proposal for context sensitive help in the preferences panels.  }}
  
One of the main features of [[More GSoC Ideas#Smart Help Infrastructure|Smart Help]] is to provide detailed context sensitive information on each configurable parameter in the preferences panel. 
+
__NOTOC__
  
This will allow us to use very short descriptions in the preferences panel, e.g. just a tick box with the word 'Overdub' beside it.  Experienced users will already know what this does.  Inexperienced users or users who have forgotten what the parameters in a particular parameter group do can click on the title for a group to get a description for each parameter in the group.
+
== Proposed Feature ==
  
==Discussion==
+
Detailed context sensitive information on each configurable parameter in the preferences panel.  This information will be automatically extracted from the html help reference section which has been written with this use in mind.  Smart Help would also give context sensitive help on buttons, giving more information than can usefully fit in a tooltip.
  
'''[[User:James|James]]:'''
 
  
Current design difficulties:
+
== Developer/QA Backing ==
 +
*[[User:James|James Crook]] I did some initial development work which could be built on for this.  It is a change in [[Hacker's_Guide#ShuttleGui|ShuttleGui]] that allows sections of a dialog to be clicked on, to highlight in the help color, and to trigger an event that updates help text in another window.  Probably that mechanism is superseded by [[User:James/AU14TrackPanelTheming|the new theming interface]], the scroller which can be used for preferences too.  We'll be using dialogs far less.  Discussion has now also extended the smart help mechanism to take over where tooltips on buttons prove too limited.
 +
*'''Peter:''' I support this idea
  
In my prototype the help panel is a strip on the right side of the  preferences dialog that is there all the time. That makes the preferences dialog rather wide. Current thinking is that on the interface panel in show/hide we add a tick box 'help on preferences'.  It's ticked by default.  When unticked the help vanishes and the dialog goes back to its normal size.  Unlike most items its effect is immediate, i.e don't wait for OK/Cancel. Will we need the option of the help appearing in a separate window
+
== Use Cases ==
rather than making preferences wider?
 
  
 +
* '''Shorter descriptions:''' This will allow us to use very short descriptions in the preferences panel, e.g. just a tick box with the word 'Overdub' beside it.  Experienced users will already know what this does.  Inexperienced users or users who have forgotten what the parameters in a particular parameter group do can click on the title for a group to get a description for each parameter in the group.
 +
* '''Audacity GUI as the index:''' Instead of reading the manual and finding the right place in it, Audacity can find the right place and just present the information you asked for.
  
'''[[User:Galeandrews|Gale]]:'''
+
== Design ==
  
I rather doubt the "widened Preferences" idea will work - what about the 800 x 600 screen size? The ways I've seen this done are:
 
  
# An additional help window (either disappears when preferences are exited or not)
+
=== For preferences ===
# Same idea, but integrated with the inbuilt help, so there is no need to write extra text
+
* Interleaving comments with settings in a multiscroller works well.  An example is shown on the [[User:James/AU14TrackPanelTheming|page about theming]].  This can and should be extended to support hyperlinks, to dig deeper in the manual.  This would open a browser window.  The comments in this scroller can address groups of related settings.  The scroller design means that it is usable on space constrained screens, netbooks, yet can make good use of more vertical space if it is available.  This was previously a problem with preferences where we had to break the preferences up into 'same sized' categories.
# A pop up window or tooltip just for the item in question as per LRN's custom exporter (Leland would have to advise on the accessibility implications here)
 
  
Personally I like the third idea best, and the first least. The third one increases the chance of everyone seeing "near-essential" text like "uncheck when recording "stereo mix"" and could make it easier to omit it from the actual wording.  
+
=== For button tooltips ===
 +
* The 'information' button, the i with a circle round it, can show/hide a panel with additional information.  When the 'i' button is down, the panel shows and the lower part of the panel has information from the manual.
 +
: The information panel can have information that changes as the tooltips show and hide.  Most usually the panel will have general information about a toolbar, and information about buttons in it would highlight as you move from button to button.  The information panel hyperlinks, to dig deeper in the manual. 
 +
: The panel is not full screen, so it is not suitable for displaying manual pages that have wide screenshots in them.  We might need to rejig the manual a little to ensure we have pages suitable for the panel.  This could be markup on key landing pages to exclude wide images and related text.  Hyperlinks from the panel will open a full browser.
 +
* With the 'information' button mechanism, regular tooltips can and should be short.  Normal style in modern applications is to be single-line.  As an example, the 'home' button in Chrome browser has the phrase 'Open the home page' as its tooltip.  We should do that too.  We do not need to show shortcuts in the tooltip.  Having a button IS a shortcut for mouse users.  Keyboard users can learn the keyboard shortcut keys from the menus, or from the key-bindings preferences.
  
'''[[User:James|James]]:'''
+
=== Multi-function buttons ===
 +
* Multi-function buttons, where different functions are accessed by a modifier key (shift, ctrl, alt, ctrl + shift) have many problems.  We could, for example, have whistle-triggered-record accessed from record via a modifier key.  If we did this, we'd be mixing heavily used and esoteric features and making the interface more confusing.  That said, multi-function buttons can save screen space.  Looped play is very useful, and arguably it does belong with normal play.  Generally Multi-function buttons need a rethink.
  
I'm not planning a per-item tooltip.  It's going to be per wxStaticBoxI've experimented with this and found that this allows groups of related parameters to be explained better and in their proper contextTooltips are OK for a small amount of text, e.g. telling you what a graphic button actually isWhen you need a lot of text, and the whole point of this feature is to allow us to have as much descriptive text as we need, then you need a window that doesn't keep jumping around on the screen as you 'probe' one item after another.
+
** '''Click-and-hold''' on a toolbar button could drop down more options.  Effectively the button becomes the head of a menu.  Chrome does this with the back-button, where click and hold on the back button shows browser history and a choice of pages.  Click-and-hold gives more options.  In Chrome, the tooltip is: 'Click to go back, hold to see history'.
 +
** With this change, it would be OK to still retain the modifier keys.  However, we do not need to advertise the modifier key in the tooltip.  'Click to play audio, hold for more play options' would be a possible tooltipClick and hold then gives a mini-menu that includes loop-play as an option, and showing shortcut key combinations.  That menu can have lots of options, play, loop play, play-excluding, play-at-speed, loop-play-at-speed, play-through, play-with-swearwords-bleeped and so onWhen a modifier key is held down, the icon can, if we want, still change, and the tooltip can change, e.g. hold down shift and the tooltip becomes 'loop play'It's become a minor feature, rather than crucial to discoverability.
 +
** '''Customisable buttons''' advanced users (I am thinking 1% of users) may enjoy customising their toolbars, adding optional buttons, so that they have both a button for looped play and play, and possibly buttons for some preset speeds, e.g. play x2.  Once users break out the options, we shouldn't be changing the icons based on a modifier key being down.
  
'''[[User:Galeandrews|Gale]]:'''
+
=== For menus ===
  
I've re-read the original suggestion about the two way interaction between the HTML window and the Prefs. panel, and the implication there seems that the window actually has all the expanded text for the preferences, and scrolls? But I can't visualise that so easily with the clip-on to Preferences idea - was that just containing the text for the static box, or for the whole Preferences help text?
+
* The information panel can work for menu items in the same way as it does for buttons. The discussion above shows that buttons are just a different visual design for a menu.
 +
 +
=== What else is on the information panel? ===
  
Clearly there are cases where grouping text by static box makes sense (e.g. FFT size). Talking together about two related radio buttons out of a number of elements in a box seems good too. But have you done a mock up of say "When importing audio files" (note the checkbox there is pretty unrelated to the radio buttons). And what about "Behaviors" on the Interface tab? I really can't visualise those nine elements as a static clip-on to the Preferences, if that's what it is.  
+
* The top item in the information panel is the 'mode' audacity is running in, standard, custom or full. The panel will contain information about the currently loaded projects, file size, location, disk space.  Advanced users will be able to customise this display so that it has more information that they choose.  The idea is that the information panel will be useful to advanced users too, and so justify having a large button on the toolbar.
  
Rightly or wrongly, my gut feeling at the moment is that the grouped text you're suggesting is going to be too nearly a duplication of the reference section of the manual; if so it might  make more sense to wait if necessary and link the Preferences to inbuilt help, not to a custom and separate preferences help. I think having the manual built in is more important, and a subject of criticism in apps. when it isn't. Or are there technical obstacles to highlighting text inside the Help browser? 
+
== See Also==
 +
 
 +
* [[More GSoC Ideas#Smart Help Infrastructure|Smart Help]]
 +
* [http://ux.stackexchange.com/questions/4067/context-sensitive-help-for-wordy-user-preferences Q&A at Stackexchange UX]
 +
* There's some text that should move here on [[Proposal Preferences Reorganisation|prefs reorg]]
  
I also think there is a case for an "intermediate" level of quick help, probably per item, which (in other apps) might might go directly in the interface. For this, a tooltip/pop up is appropriate, though I understand there are issues such as tooltips for check boxes. I see this "intermediate" help as additional to a help button per Preferences tab or per static box which goes to a reference section. I think per-item help will assist newbies more, if they don't actually click our help icon for fear of information overload/having to wade though a whole help section. This is a real problem in some apps, and they may assume ours is the same. Maybe these in-situ hints could be turned off by a preference. 
 
  
   
 
  
  

Latest revision as of 16:33, 18 February 2021

Proposal pages help us get from feature requests into actual plans. This page is a proposal for context sensitive help in the preferences panels.
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.


  • Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.


Proposed Feature

Detailed context sensitive information on each configurable parameter in the preferences panel. This information will be automatically extracted from the html help reference section which has been written with this use in mind. Smart Help would also give context sensitive help on buttons, giving more information than can usefully fit in a tooltip.


Developer/QA Backing

  • James Crook I did some initial development work which could be built on for this. It is a change in ShuttleGui that allows sections of a dialog to be clicked on, to highlight in the help color, and to trigger an event that updates help text in another window. Probably that mechanism is superseded by the new theming interface, the scroller which can be used for preferences too. We'll be using dialogs far less. Discussion has now also extended the smart help mechanism to take over where tooltips on buttons prove too limited.
  • Peter: I support this idea

Use Cases

  • Shorter descriptions: This will allow us to use very short descriptions in the preferences panel, e.g. just a tick box with the word 'Overdub' beside it. Experienced users will already know what this does. Inexperienced users or users who have forgotten what the parameters in a particular parameter group do can click on the title for a group to get a description for each parameter in the group.
  • Audacity GUI as the index: Instead of reading the manual and finding the right place in it, Audacity can find the right place and just present the information you asked for.

Design

For preferences

  • Interleaving comments with settings in a multiscroller works well. An example is shown on the page about theming. This can and should be extended to support hyperlinks, to dig deeper in the manual. This would open a browser window. The comments in this scroller can address groups of related settings. The scroller design means that it is usable on space constrained screens, netbooks, yet can make good use of more vertical space if it is available. This was previously a problem with preferences where we had to break the preferences up into 'same sized' categories.

For button tooltips

  • The 'information' button, the i with a circle round it, can show/hide a panel with additional information. When the 'i' button is down, the panel shows and the lower part of the panel has information from the manual.
The information panel can have information that changes as the tooltips show and hide. Most usually the panel will have general information about a toolbar, and information about buttons in it would highlight as you move from button to button. The information panel hyperlinks, to dig deeper in the manual.
The panel is not full screen, so it is not suitable for displaying manual pages that have wide screenshots in them. We might need to rejig the manual a little to ensure we have pages suitable for the panel. This could be markup on key landing pages to exclude wide images and related text. Hyperlinks from the panel will open a full browser.
  • With the 'information' button mechanism, regular tooltips can and should be short. Normal style in modern applications is to be single-line. As an example, the 'home' button in Chrome browser has the phrase 'Open the home page' as its tooltip. We should do that too. We do not need to show shortcuts in the tooltip. Having a button IS a shortcut for mouse users. Keyboard users can learn the keyboard shortcut keys from the menus, or from the key-bindings preferences.

Multi-function buttons

  • Multi-function buttons, where different functions are accessed by a modifier key (shift, ctrl, alt, ctrl + shift) have many problems. We could, for example, have whistle-triggered-record accessed from record via a modifier key. If we did this, we'd be mixing heavily used and esoteric features and making the interface more confusing. That said, multi-function buttons can save screen space. Looped play is very useful, and arguably it does belong with normal play. Generally Multi-function buttons need a rethink.
    • Click-and-hold on a toolbar button could drop down more options. Effectively the button becomes the head of a menu. Chrome does this with the back-button, where click and hold on the back button shows browser history and a choice of pages. Click-and-hold gives more options. In Chrome, the tooltip is: 'Click to go back, hold to see history'.
    • With this change, it would be OK to still retain the modifier keys. However, we do not need to advertise the modifier key in the tooltip. 'Click to play audio, hold for more play options' would be a possible tooltip. Click and hold then gives a mini-menu that includes loop-play as an option, and showing shortcut key combinations. That menu can have lots of options, play, loop play, play-excluding, play-at-speed, loop-play-at-speed, play-through, play-with-swearwords-bleeped and so on. When a modifier key is held down, the icon can, if we want, still change, and the tooltip can change, e.g. hold down shift and the tooltip becomes 'loop play'. It's become a minor feature, rather than crucial to discoverability.
    • Customisable buttons advanced users (I am thinking 1% of users) may enjoy customising their toolbars, adding optional buttons, so that they have both a button for looped play and play, and possibly buttons for some preset speeds, e.g. play x2. Once users break out the options, we shouldn't be changing the icons based on a modifier key being down.

For menus

  • The information panel can work for menu items in the same way as it does for buttons. The discussion above shows that buttons are just a different visual design for a menu.

What else is on the information panel?

  • The top item in the information panel is the 'mode' audacity is running in, standard, custom or full. The panel will contain information about the currently loaded projects, file size, location, disk space. Advanced users will be able to customise this display so that it has more information that they choose. The idea is that the information panel will be useful to advanced users too, and so justify having a large button on the toolbar.

See Also