Guided tours

Guided tours is a project designed to provide infrastructure for guided tours. It started at WMF Tech Days 2012, and is now under the purview of editor engagement experiments.

Rationale
Currently in MediaWiki, our communities are limited to using static wiki pages, templates, and other functions to build tutorials and tours of any kind. As rich as tools like Wikipedia:Tutorial might be, they interrupt the user and force them to go to a separate Web page. They are also quite long; most documentation about Wikipedia would take quite some time to read in full. Guided tours are listed in our feature map as a potential as a tool for new editor support.

User experience
Interactive guided tours provide a simple, step-by-step guide through a feature set without interrupting the user. Guided tours don't dominate the screen, are dismissable, and walk the user through a task directly. Guided tours are also ideally something that one can return to at any time when you need it.

Description of guider elements

 * Title: Describe the current step. If the title is the beginning of the tour, you may need to use it to describe the tour as a whole. If your tour title is more than one line, it's too long.


 * Body text: Use body text to describe the current step. If you find yourself adding in several additional points unnecessary for the user to understand how to move to the next step, you're saying too much. Guided tours are effective not just because tooltips point at things. They're effective because they help limit instructional text to what is immediately necessary, rather than trying to dump paragraphs of documentation on a user all at once.


 * Buttons: tour buttons are for actions, typically progressing the user to the next step. It is a poor practice to provide multiple action buttons, e.g. "Start tour" plus "Okay". Choose one action you want the user to take in response to a tour step, focus on completion of that action. Never use the action button for ending the tour (unless the user is actually at the end). This muddles whether the primary action buttons is for contintuing the tour or ending it (positive vs. negative action).


 * "End tour" checkbox: the purpose of this to provide an obvious binary choice for ending a tour completely, as opposed to simply dismissing a single step. When checked, any action on a tooltip - outside click, ESC, confirmation button click - ends a tour for that user.

Designing a tour
If you want to make your own guided your, here are some maxims to consider.


 * 1) Choose a primary goal for the tour. What do you want users to learn by the end?
 * 2) Know who your audience is before you start, and what their goals and experiences are. What knowledge about a process do they have before starting your tour?
 * 3) Plot the necessary steps, focusing on the one action or key takeaway for each step. Less is more. The more steps in your tour, the more likely a user is to abandon your tour in the middle.
 * 4) Remember that tours can be started via a link or button within a page, or automatically via a cookie. How you start a tour has a big impact on the potential for delivering tours that interrupt or annoy users, so choose carefully.
 * 5) Let the steps and their associated actions guide the design of the tour. For example, if you want users to edit as one step, pointing directly to the edit button is the obvious and efficient thing to do. A poor alternative would be to have a center-aligned window with an image and description of the edit tab. The strength of tooltip-based tours is that you can show users what to do, instead of simply describing it.
 * 6) Choose titles, body text, and images only after you have plotted all steps in your tour.

List of tours
The following tours are currently packaged with the extension, and are thus available on any wiki where GuidedTour is installed.


 * test - Simple tour to show what tours can do.
 * gettingstarted - Tour to help the user make their first edit. The primary test case will be for Extension:GettingStarted, but is very close to being a general "make your first edit" tour. This tour is a product of the requirements for our onboarding new Wikipedians project.

Tour ideas
Potential tours include nearly all tasks currently covered by help documentation in Wikimedia projects. We're starting with Wikipedia, and with tasks that are most common or attractive to new registered editors, since they are a group most likely to need a guided tour of an interface or activity.


 * The edit window aka 'make your first edit'
 * Page creation
 * 'Your user page' - what it's for, etc.
 * Watchlist - what are the important elements of it, how to add stuff to it, etc.
 * Specific types of edits, such as for the backlogs of copyediting, adding links, and other activities.
 * Process helpers: how to request a move, how to file a deletion request, etc.

Please add to the list!

Technical documentation
We're building guided tours with the Guiders.js library (github, Local Guiders branch). Guiders is under an Apache 2.0 license and has been used by WordPress, Drupal, and others. We incorporate the Guiders library into an Extension:GuidedTour, and can feed changes upstream. If you'd like to help out or follow progress, you can check Bugzilla.

Building and launching tours
Tours may be defined in an extension, or in the MediaWiki namespace (MediaWiki:Guidedtour-tour-tourname.js). Individual wikis can override the CSS at MediaWiki:Guidedtour-custom.css.

Guided tours can be launched from a page by adding  to the query string of a URL linking to it, or by calling   to set a cookie for the next page load. You can set the cookie from the server if appropriate too. This will cause the GuidedTour extension to load both the code to display the tour and the tour itself.

In order to support multiple tours on the same wiki, a user may have multiple separate tour cookies. However, only one tour may fire on a given page. If there is a conflict and multiple tours attempt to fire on a single page, no tour will be displayed.

Status
(Regular status updates)