The main purpose behind this requirement is to support a good user experience with online help, with task-specific content that is delivered electronically in the context of doing tasks within Kuali software, so the user does not have to navigate separately to find relevant help content.
In order to achieve this, we need to create/support an integrate-able help information architecture that makes it easy to create, update, maintain, translate and link high-quality help content with the logic/codebase.
- #1: Create a context-sensitive help information architecture, that supports
- field and object-level help in a tooltip and supports
- section-level help and page-level help in a non-modal floating help dialog that
- is tightly associated with the application window and will not go behind it in the active window order
- can be moved aside of the active window (so as not to occlude the application content)
- can be re-sized by the user (so as to better fit the viewing device)
- can be closed by the end user
- Enable applications to choose which level(s) of the help content to implement. For example, one application might need field-level help only (tooltips), while another needs field-level and section-level help, while another needs field-level and page-level help. It is also conceivable that an application team might feel they need all three levels, though we caution against making the user feel lost in too much information. Ideally, the user interface to the application itself should be designed in such a way that it does not require a large amount of collateral information.
- #2: Create an integrate-able help information architecture that makes it easy to create, update, maintain, translate and link high-quality help content with the logic/codebase
- That is separable from the logic/code-base (related to the requirement for Centralized Message Repository).
- That is achieved through linking field, section, and page-level help "hooks" into the logic/code-base to the appropriate anchor-points in the help architecture. This could be to anchor points within a single online help structure / flow, to deliver the right information from within the larger information space. Note that this represents a step towards, but is not the same thing as, full convergence that unifies all help and electronic documentation into a single, coherent document/flow, that can also be accessed in modular, topical, fashion. The main requirement is to support a good user experience with online help, with task-specific content that is delivered electronically in the context of doing tasks within Kuali software, so the user does not have to navigate separately to find relevant help content.
- #3: Support these aspects through use of open and community-source architecture and authoring tools, that support the Java space, but also support the integration/use of the output from any authoring tools that output into standard HTML source. This includes from tools that enable WYSIWYG authoring capability, to be able to create and assess the effectiveness of the user experience, with the content style and presentation aspects, within the context that users will view it -- but that output the content into standard XML/HTML source.
- #4: Create an online help architecture that fully converges the aspect of online help with the aspect of electronic documentation.
If this is achieved, it is conceivable that all user help and user documentation could be from the same source - there would be no duplication of effort required to create, update or maintain the content.
The primary requirement even in #4 is that when accessing task-oriented help (such as field-level, group-level), the potential unity with all user help information is achieved in a way that does not lead the user to become lost within a larger online documentation structure. See the usage scenarios, and the mocks and diagrams sections above (these are coming).
This type of converged overall help/documentation structure must support the following:
- table of contents - Accordion-style expandable table of contents in left sidebar
- help index - Alphabetical index
- help search - Great search capability with highlighted hits
- help glossary
- hyper-linked cross-references within and across the help content and these constructs.
- The information in this converged overall form must be printable, with pagination cues (page numbers printed).
- Ability to save help topics to Favorites for infrequent tasks
- Feedback e-mail capability
These are coming next!
Mocks and Diagrams
First, for context, we cover what is already supported in KRAD, which is new in Rice 2.0, and what is supported in KNS, and then we move on to cover the new upcoming functionality.
For context, what "help" is already supported
In Rice 2.0 KRAD:
Below is a low-fidelity sketch of the types of visible 'help' associated with input fields, that are available in the new Rice 2.0 KRAD (a significant addition to the KNS capability) -- optional, depending on the application, device and user needs.
Differently from KNS, KRAD makes it easy to associate "visible" instructional text and constraint text with input fields. The input field itself can also include a watermark "suggestion" or it can be pre-filled with a valid default selection alternative, that the user can accept or change. The field can include a combobox drop-down control that enables the user to select from a valid set of alternatives (not shown), and it can have auto-complete behavior (recognition/type-ahead).
The input field is grouped with a label, which can include a "required-ness" indicator (the *). This is similar to KNS and, as with the KNS capability, the input field can have other controls associated with it, such as a lookup or inquiry control (shown above with an icon to the right of the field), and could have multiples of these (could also include a help icon).
In addition to the above constructs, KRAD in Rice 2.0 also supports including visible text anywhere on a page. For example, this enables an application to include short explanatory text at the top of a form or at the beginning of a section -- virtually anywhere on the page where the text is needed and appropriate.
All these are optional, but available to the application designer.
In addition, as with KNS, a help icon can be placed on a page, for example to provide page-level help, or section-level help, or field-level help. However, if there were to be many field-level help icons throughout a densely constructed page, this could lead to visual clutter, making it more difficult for the user, and it could be especially problematic if a help icon is added to a field that already has a lookup or inquiry icon (or both!).
Though this context-sensitive help structure is possible, prior to Rice 2.2, there is no packaged support to make it easy for application developers to tie appropriate help content at the field or section-level, for context-sensitive help. It could be done, but most Kuali applications do not do this today, due to the additional work it takes to accomplish.
Already Supported in prior KNS (& Rice 2.0 KRAD):
To date, Kuali applications haven't typically provided field-level or section-level context-sensitive help. But Kuali applications today, such as Kuali Financial System and Kuali Coeus, provide help for some pages at the page-level. For example, see below from the KFS Test Drive (login as admin):
When the user activates the page-level help icon in KFS, another browser tab opens with the "stand-alone" electronic documentation opened to the appropriate place within the larger information content. Therefore, KFS has achieved context-sensitivity in their page-level help model, a significant step forward.
In Kuali Coeus , when the user activates the page-level help icon, another browser tab opens, just as it does in KFS. Not all pages have help, but for those related to lookups, the following type of help information is displayed in the separate browser tab. This example comes from the KC Test Drive (login as admin), for a lookup page:
There are pros and cons to each of these approaches. The KC approach doesn't carry the risk of leading the user into other information foraging activities, that are not related to the immediate task at hand. But, unlike the KFS approach, it also doesn't support the users who don't find what they feel they need, within this more "bounded" help information window.
What "help" constructs will be new in Rice 2.2, KRAD:
There are two new UI constructs related to help architecture in Rice 2.2 KRAD, and a data structure addition to make it easier to hook the appropriate help content into the appropriate place in the UI when developing an application.
Diagram of the relationships among help constructs:
This diagram above shows how the new help framework can support and extend both the KFS and KC current models, in addition to supporting the rich UI needs for student-facing applications and administrative functions that can't incur a steep learning curve for infrequently performed tasks. In this model,
- Field-level help can be provided in a rich tooltip construct.
- Section-level help (which may or may not be composed of the field-level help with some prefatory context information) can be provided in a non-modal help dialog. This approach serves to
- Note that this may be the same tooltip construct running in complex mode - technical analysis is underway.
- Note that this could include a link to an anchor point in the larger world of information that could be the application-level documentation.
- Page-level help can be provided in a separate window or browser tab. (Technical analysis is underway on capability to force/open a new browser window rather than a browser tab, to more easily enable side-by-side viewing, and to optimize the default opening-window size.)
Note that the page-level help content structure itself is up to the application. Rice 2.2 KRAD, as a middleware platform, aims to be agnostic with respect to the Content Management System chosen by the application or university system, rather than to require a specific CMS. KRAD will include default templates for configuring URLs with system parameters, so that applications can link into their help content from the appropriate points in the application, to the appropriate anchor points in the help content.
The Help Tooltip for controls and fields:
The first new construct is the tooltip, which enables applications to deliver context-sensitive help for individual fields and controls, virtually, for any user-manipulable control - without cluttering the page. The tooltip appears on hover (or on focus for keyboard users) and disappears when the user moves on. Research has shown that users don't notice helpful text on a densely laid-out page, so the tooltip strategy for field-level help offers the application designer a "just-in-time" help capability.
Tooltips have become standard fare in rich applications, and users now actively explore user interfaces looking for these relevant 'nuggets' of information (tooltips and other) when they use a new application or infrequently use it.
See the tooltip requirement for additional information.
The non-modal Help Dialog, for page and section-level help (associated with help icon):
(More coming here ... work in progress)
If applicable, list expectations for performance (optimal and worst cases would be fine, give time in seconds):
Include links to other confluence pages or external resources that might be helpful for this issue:
The Help Framework consists of the following:
- The tooltip is the UI component that delivers context-sensitive help for fields and other user-manipulable controls.
- When the user hovers over a user-manipulable element (e.g., a field or other control in a form), brief help summary text for the specific field/control should be displayed as a tooltip.
- The tooltip should remain open while the control or field is selected, including while the user is entering data into a field.
- The tooltip will close when the user moves out of the field.
- For additional tooltip architecture details, see the separate requirement on tooltips.
2. Non-Modal Rich Message Help Dialog associated with Help icon/button:
- System should allow displaying a help icon associated with a section header and with a page header. The default placement of this help icon will be to the right of its associated UI element. (Precise default visual treatment and positioning to be determined.)
- Secondary: System should allow turning section and page level help information off at a global level (per application) (Let's talk through the typical scenario for this - why this is desired.)
- Tertiary: System should allow turning these off also at a view level, and component level (NOTE: Not sure yet about this one, will walk through - scenarios to determine the pros and cons of enabling this. Creates inconsistency across an application.)
- KRAD should ship with a default help icon (precise default visual treatment to be determined), with default alt-text for it.
- Secondary: KRAD should also allow the ability, at a global level (per application, not per view or page), to replace the default help icon with a different image or with text. Consistency across an application is important.
- When the user hovers over the help icon, brief summary text should be displayed as a tooltip for the help icon. This doesn't include the help content itself, but a brief description of the type of help that selecting the help icon will produce. Examples: "Select to display help for this field", "Select to display help for this section", "Select to display help for this page".
- Secondary: The italicized words are variables, meant to be filled in with the specific field control label or header text.
- The Help icon should be selectable and, when selected, should open the help information in a non-modal dialog box control.
- This non-modal dialog box will have these characteristics:
- Enable default styling aspects (specifics of the default treatment are tbd).
- Enable links and images.
- The help content in the dialog box is intended to be brief, task-oriented, and specific to the section/page in question (between a few sentences and a few paragraphs). It is more content than a tooltip and less content than what could exist within a full online help repository.
- A link can be provided within the dialog box to open additional help information that exists in a larger context, within a new browser window (or tab, depending on the user's browser settings).
- The dialog box will not close when the user selects the link, preserving the user's focus and task context - the user may want to view other information in the dialog box after exploring the additional information. There will be a standard close-box element (precise visual treatment tbd.)
3. Full help in separate window/tab:
(information to be provided here, including capability to configure URLS with system parameters, where the help content is stored, etc.)
List any functional or technical work that must be completed before work on this item can begin:
List any issues that need to be resolved before work on this item can begin:
QA or Regression Testing Plan
List steps needed to test the basic functionality of this update, enhancement, bug fix
Functional Analysis Complete? No (completed by SME)
Needs Review by KAI? Yes (completed by SME)
Technical Analysis Complete? No (completed by DM)
Needs Review by KTI? No (completed by DM)
Estimate: 30 hours (completed by DM)
Technical Design: Link Here (completed by DM)
Final Documentation: Link Here (completed by DM)