Community Wishlist Survey 2023/Template Picker Improvements

Overview

Since 2013, volunteers have asked for a more intuitive template selector, exposing popular or most-used templates on the templates dialog. A nonexhaustive search in Phabricator also shows multiple comments and workarounds relating to a similar problem:

Even though templates are used on millions of pages, for example infoboxes are used on approximately 3.6 million pages, users still do not have clear or easy ways to add templates to pages.

As expected, the Community Wishlist Survey has received several requests around improving access to templates over the years. We want to help new and established editors see popular and recently used templates, and also bookmark their favorite templates.

Hence we are grouping all the requests around template selection into a Focus Area, to address them.

Wishes in this problem area

We are implementing 4 wishes together:

These wishes ranked 5th and 11th in the Community Wishlist Survey 2023, #74 in 2021, and #85 in 2022, respectively.

In summary, this Focus Area is about template picker improvements.

Focus Area Proposers

Here are the proposers of the individual wishes that make up this focus area:

Problem

As a beginner, one may spend half an hour finding the appropriate template – and if it doesn’t have an easy-to-remember name (what is easy-to-remember is subjective, so it may not be possible to find a name that’s easy to remember for everyone), one needs to spend this half hour the second, third and fifteenth time as well. [favoriting templates] doesn't solve the problem of the first half-hour search, but it does solve the ones of the subsequent ones

— Editor

Current user experience

When an editor clicks on “Templates” from either wikitext or Visual Editor, the template selector is empty. It makes it challenging for a newcomer to name the template they are looking for, and it makes it cumbersome for an admin to search for frequently-used templates.

Current technical challenge

There are two technical implementations of the template selector: in Visual Editor (VE), it is called the Template Dialog (MWTemplateDialog) and in the 2010 wikitext editor, it is called TemplateWizard.

Each implementation has a slightly different user experience, which may introduce complexities for our implementation. Ideally, all users will interact with a single template selector interface.

Both of the template selectors use the same backend to retrieve the metadata about templates: an extension called TemplateData, where the descriptions, parameter types, etc. are all stored and localized. Both selectors are also capable of operating without the other installed (i.e. either VisualEditor or TemplateWizard can be installed on their own, but neither can be installed without TemplateData). This has implications for where we can build a common user interface for template selection — it can’t be part of either of these extensions. It could perhaps be part of TemplateData, but this idea has been rejected in the past. A new extension could be created, or the required widgets/components added to MediaWiki core. (Adding to core isn’t without precedent: there are other widgets there that are not used in core.)

Another optional dependency is on CirrusSearch, which TemplateWizard uses if it’s installed (this doesn’t really change how things work from the user’s point of view though).

TemplateWizard is built pretty much entirely with OOUI. It is likely that we’d want to build the new common UI in Codex, and so we’ll have to decide whether that’s going to be inserting it into the existing system in TemplateWizard, or if it’s going to completely replace it.

Scope of Work

Goals

  • Help volunteers find popular and recently-used templates when they open the Template Wizard
  • Enable this experience for both Visual Editor and wikitext editors
  • Allow users to “favorite” templates they frequently use

Success metrics

  • Improve template insertion rate on articles / edits
  • Increase the number of volunteers who insert templates

What we're not building

  • Help template editors provide additional context or best practices for using templates
  • Change how templates work, once embedded on a page
  • Change how users fill or edit templates
  • Improving template tooling or template READMEs
  • Helping admins select and present templates for other users
  • Building a template insertion wizard for Mobile Web or Apps

Requirements

  • When a contributor clicks the template icon, they should see a pop-up with suggested templates for the particular page, recent, and favorite templates.
    • Suggested templates should be based on either the user’s permissions, the page category, or popular templates for the wiki
  • When a contributor has successfully made an edit with a template, they should see the template in their recent templates list
  • When a contributor is viewing a template in the template selection pop-up, they should see the option to favorite a template
    • The user should be able to remove a template from their favorites