Jump to: navigation, search
For the VisualEditor deployment at the English Wikipedia, see Wikipedia:VisualEditor.
For changes made using the VisualEditor, see VisualEditor, VisualEditor: Check, and VisualEditor: Switched

The VisualEditor project aims to create a reliable rich-text editor for MediaWiki. It is being developed so it can be used as a MediaWiki extension, using the Parsoid project to supply HTML+RDFa.

It is currently deployed to various namespaces on this wiki (including the main namespace in which this page exists); more information about this test deployment can be found on Wikimedia's blog, the FAQs, and VisualEditor:Welcome or VisualEditor:Test. Please note that the test deployment only works with the Vector skin. For more information, please visit the VisualEditor Portal.

Rationale[edit | edit source]

The decline in new contributor growth is the single most serious challenge facing the Wikimedia movement. Removing avoidable technical impediments associated with Wikimedia's editing interface is a necessary pre-condition for increasing the number of Wikimedia contributors.

Status[edit | edit source]

2014-07-17 (MW 1.24wmf14):

VisualEditor was updated as part of the wider MediaWiki 1.24wmf14 branch deployment on Thursday 17 July. In the week since the last deployment, the team worked mostly on landing a major design change including a re-write of the windowing system for mobile and desktop users alike, along with some minor feature changes and fixing a number of bugs.

The main change this week in a new design for all windows, with the main action buttons consistently in the top bar of each window, based on a new, more flexible technology back-end (OOUI). As part of this, we replaced almost the navigation icons with simple words, which we found in testing was much easier for users to understand. Now, the "safe" cancel/undo control will always be in the top left, and any progressive insert/apply control will be in the top right. Rarer controls will be at the bottom of the dialog or inspector.

These changes also mean that the desktop and mobile version of VisualEditor can now use the exact same code, with windows deciding based on your platform and browser size how to display themselves. As well as addressing some long-term issues and design problems, this fixed a number of outstanding issues (bugs 60501, 66552, and 65322) and the team whilst it was bedding in the change found a few more (bugs 68048, 68061, 68066, 68068, 68121, and 68180).

You can now open links easily inside the link editor, to check whether the external or internal link was the one you meant to choose (bug 54759). This is especially useful for users on touch devices or other systems where opening links in a new window is not as simple as other places. Finally, we have adjusted the behaviour of VisualEditor to more closely mimic OpenOffice and most other editors, so typing when selecting a node now doesn't do anything, except for delete or backspace to remove it (bug 67177).

Thanks to alert community members, we discovered and fixed a major backspacing problem caused by templates with multiple child elements – most visibly, the "lang-fr" and similar templates used widely on articles on the English Wikipedia (and others). This meant that pressing backspace would delete two or more characters, seemingly at random, and was sufficiently serious that we rushed out a fix to all wikis as soon as we were aware of the issue (bug 67985). Our apologies for the inconvenience, and our gratitude to the editors who highlighted the issue as soon as they noticed it. We also fixed an issue that completely broke the citation and template dialogs in wmf13's release last week, and immediately released it.

We fixed a number of bugs related to cursoring around nodes and slugs (blank lines where you can drop the cursor). Firstly, an issue with slugs at the end or beginning of a document would make your cursor get stuck in a loop, unable to escape (bug 67551). A browser bug in Firefox caused another issue meant that you would get pawn characters inserted and typing would happen backwards if your cursored off a node like a reference (bug 67432). We had a problem where selecting a node by cursoring would mean you couldn't move up or down with the cursor, and instead VisualEditor would throw an error (bug 67755).

We fixed an issue following-on from work last week, which was causing pages pulled from the User namespace as transclusions to be prefixed with an extra colon (bug 67386). We also corrected an issue with the language editor that would throw a (harmless) error when you were using it (bug 67609).

There were a couple of issues with changing media settings which either wouldn't apply some of the changes you made (bug 67687) or would not enable the "Apply changes" button (bug 67684). Editing blocks of content from extensions like SyntaxHighlight, Poem or Score now makes sure to display any HTML correctly, and prevent you from inserting faulty closing tags inside themselves (bug 57249).

We fixed a number of issues with the mobile interface for VisualEditor, ahead of its wider release, including restoring the Cite menu which had gone missing (bug 67701), showing link suggestions correctly in a few circumstances where it wasn't before (bug 66753) and stopping the cursor showing up from the document "through" the link editor's suggestions (bug 67388). The major re-write of how windows work has had big improvements for all windows on mobile, which was one of its primary objectives, and included improvements to the mobile context.

The performance of the toolbar floating over the top of content when the page is scrolled down was significantly improved. The code to resize items was converted to be static and use clone methods rather than create a handle for the image each time. The window manager now doesn't throw an error if you ask it to open a window it doesn't know about.

The stand-alone VisualEditor was improved with the demo being expanded to tests, and the stand-alone toolbar altered to have labels for each group, move the language tool into the styling group, adding a keyboard shortcuts help dialog tool to the previously-unused 'actions' part of the toolbar, and use a large '+' instead of a label for the insert menu.

Some of the related changes to OOjs UI included changing how delay works for OO.ui.Process, splitting out part of OO.ui.OptionWidget into OO.ui.DecoratedOptionWidget, and separating overall setup from setOutlineItem in OO.ui.PageLayout. Further, there were fixes for Internet Explorer support in hiding (rather than just setting to zero-width) unused GridLayout panels, mobile-friendly styling, some better accessibility improvements for forms, allowing arguments to be used for deferMsg, letting buttons open URLs with an href, stopping disabled tools from stealing the browser's focus, cleanups to and expansions of the demos and documentation, and several other changes.

In terms of breaking changes for VisualEditor, a very old hook in the MediaWiki extension, ext.visualEditor.editPageInit, was removed (it had been provided for backwards-compatibility for over two years). In the core VisualEditor, the afterRender method used by nodes to re-render themselves had the optional generatedContents argument removed; the only known user of this, in the Math extension's formula editor, was already adjusted to compensate.

The unit tests were expanded to better cover the image model, showing selections and making transactions around aliens, and the test/ directory was renamed to tests/ to be consistent with other Wikimedia repositories. You can monitor the live results of the automated browser tests (triggered every twelve hours) on the server. A complete list of individual code commits is available in the 1.24/wmf14 changelog, and all Bugzilla tickets closed in this period are on Bugzilla's list.
You can see the team's current code dashboard on gerrit.

Timeline[edit | edit source]

  • Some level of exploration was done in 2010 by the Wikipedia Usability Initiative.
  • The 2011 product whitepaper published by the Wikimedia Foundation's strategic product team identified rich-text editing as one of the "Great Movement Projects". Work subsequently started in May 2011.
  • The 2011-12 Wikimedia annual plan, released July 2011, states a goal for VisualEditor: "First opt-in user-facing production usage by December 2011, and first small wiki default deployment by June 2012".
  • The 2012-13 Engineering Goals document sets a timeline for VisualEditor's development and deployment up to the end of June 2013.
  • VisualEditor is scheduled to be deployed across Wikimedia projects over the coming months. Below is the schedule as of December 2013:
Wikipedia roll-out timeline (detailed list)
Week of… Launch Users Projects Status
Summer 2012 Phase 0 All users[1] YesY Done
1 July 2013 Logged-in users English Wikipedia (en)[2] YesY Done
15 July 2013 All users YesY Done
24 July 2013 Phase 1 Logged-in users 7 of the largest Wikipedias

Spanish (es), French (fr), Hebrew (he), Italian (it), Polish (pl), Russian (ru) & Swedish (sv)[3]

YesY Done
29 July 2013 All users YesY Done
30 September 2013 Phase 2 Logged-in users 27 of the next largest Wikipedias

Bulgarian (bg), Catalan (ca), Cebuano (ceb), Czech (cs), Danish (da), Modern Greek (el), Estonian (et), Basque (eu), Finnish (fi), Galician (gl), Croatian (hr), Hungarian (hu), Indonesian (id), Latvian (lv), Malay (ms), Neopolitan (nap), Norwegian - Nynorsk (nn), Norwegian - Bokmål (no), Sicilian (scn), Simple English (simple), Slovak (sk), Slovenian (sl), Turkish (tr), Ukrainian (uk), Venetian (vec), Volapük (vo), Waray-Waray (war)

YesY Done
7 October 2013 All users YesY Done
2 December 2013 Phase 3 All users 91 Wikipedias with all characters normally directly available to users

Acehnese (ace), Aymara (ay), Central Bikol (bcl), Bislama (bi), Banjar (bjn), Chavacano (cbk-zam), Chechen (ce), Chamorro (ch), Cheyenne (chy), Corsican (co), Kashubian (csb), Zazaki (diq), Emilian-Romagnol (eml), Extremaduran (ext), Fijian (fj), Faroese (fo), Franco-Provençal/Arpitan (frp), North Frisian (frr), Friulian (fur), Scottish Gaelic (gd), Hawai'ian (haw), Fiji Hindi (hif), Haitian (ht), Interlingua (ia), Ilokano (ilo), Ido (io), Lojban (jbo), Kongo (kg), Kikuyu (ki), Greenlandic (kl), Komi-Permyak (koi), Ripuarian (ksh), Cornish (kw), Ladino (lad), Lak (lbe), Ganda (lg), Limburgish (li), Ligurian (lij), Lombard (lmo), Banyumasan (map-bms), Malagasy (mg), Maori (mi), Minangkabau (min), Maltese (mwl), Erzya (myv), Nauruan (na), Low Saxon (nds), Dutch Low Saxon (nds-nl), Novial (nov), Norman (nrm), Northern Sotho (nso), Chichewa (ny), Oromo (om), Pangasinan (pag), Kapampangan (pam), Papiamento (pap), Picard (pcd), Pennsylvania German (pdc), Norfuk (pih), Piedmontese (pms), Portuguese (pt), Quechuan (qu), Romansh (rm), Romani (rmy), Kirundi (rn), Aromanian (roa-rup), Tarantino (roa-tara), Kinyarwanda (rw), Northern Sami (se), Sango (sg), Samoan (sm), Shona (sn), Somali (so), Sranan (srn), Swazi (ss), Sesotho (st), Saterland Frisian (stq), Sundanese (su), Tongan (to), Tok Pisin (tpi), Tsonga (ts), Tumbuka (tum), Tahitian (ty), Tuvan (tyv), Veps (vep), West Flemish (vls), Kalmyk (xal), Yiddish (yi), Yoruba (yo), Zeelandic (zea), Zulu (zu)

YesY Done
13 January 2014 Phase 4 All users 23 remaining Wikipedias with all characters normally directly available to users

Alemannic (als), Aragonese (an), Asturian (ast), Bavarian (bar), Belarusian (be), Belarussian Taraškievica (be-x-old), Bosnian (bs), Esperanto (eo), West Frisian (fy), Irish (ga), Javanese (jv), Latin (la), Luxembourgish (lb), Lithuanian (lt), Occitan (oc), Palatinate German (pfl), Romanian (ro), Scots (sco), Albanian (sq), Swahili (sw), Tswana (tn), Vietnamese (vi), Xhosa (xh)

YesY Done
TBC Phase 5 All users 53 Wikipedias with some characters not normally directly-available to users

(Provisional list) Abkhazian (ab), Afrikaans (af), Akan (ak), Anglo-Saxon (ang), Avar (av), Azerbaijani (az), Bashkir (ba), Samogitian (bat-smg), Bambara (bm), Breton (br), Buryat (bxr), Crimean Tatar (crh), Old Church Slovonic (cu), Chuvash (cv), Welsh (cy), Lower Sorbian (dsb), Ewe (ee), Fula (ff), Võro (fiu-vro), Gagauz (gag), Guarani (gn), Hausa (ha), Upper Sorbian (hsb), Igbo (ig), Inupiak (ik), Icelandic (is), Karakalpak (kaa), Kabyle (kab), Kabardian (kbd), Karachay-Balkar (krc), Komi (kv), Kyrgyz (ky), Lezgian (lez), Lingala (ln), Latgalian (ltg), Moksha (mdf), Meadow Mari (mhr), Macedonian (mk), Mongolian (mn), Hill Mari (mrj), Maltese (mt), Nahuatl (nah), Navajo (nv), Ossetian (os), Rusyn (rue), Sakha (sah), Silesian (szl), Turkmen (tk), Tatar (tt), Udmurt (udm), Venda (ve), Walloon (wa), Wolof (wo)

TBC Phase 6 All users 59 Wikipedias with complex characters inserted using Input Method Editors

(Provisional list) Amharic (am), Arabic (ar), Aramaic (arc), Egyptian Arabic (arz), Assamese (as), Behari (bh), Bengali (bn), Tibetan (bo), Bishnupriya (bpy), Buginese (bug), Min Dong (cdo), Cherokee (chr), Sorani Kurdish (ckb), Cree (cr), Dhivehi (dv), Dzongkha (dz), Persian (fa), Gilaki (glk), Gothic (got), Gujarati (gu), Manx (gv), Hakka (hak), Hindi (hi), Akan (hy), Japanese (ja), Georgian (ka), Khmer (km), Kannada (kn), Korean (ko), Kashmiri (ks), Lao (lo), Malayalam (ml), Marathi (mr), Burmese (my), Mazanderani (mzn), Nepali (ne), Nepal Bhasa (new), Oriya (or), Punjabi (pa), Pali (pi), Saraiki (Western Punjabi) (pnb), Pontic (pnt), Pashto (ps), Sanskrit (sa), Sindhi (sd), Serbo-Croatian (sh), Sinhala (si), Tamil (ta), Telugu (te), Thai (th), Tigrinya (ti), Tagalog (tl), Uyghur (ug), Urdu (ur), Wu (wuu), Zhuang (za), Classical Chinese (zh-classical), Min Nan (zh-min-nan), Cantonese (zh-yue)

TBC Phase 7 All users 9 language variant Wikipedias

Gan (gan), Inuktitut (iu), Kazakh (kk), Kurdish (ku), Tachelhit (shi), Serbian (sr), Tajik (tg), Uzbek (uz), Chinese (zh)

VisualEditor may be offered to users at non-Wikipedia projects, such as Commons or Wiktionary, after deployment to the Wikipedias has completed. No timeline has been set for this.

VisualEditor was made opt-in on the English Wikipedia in September 2013.

VisualEditor was made opt-in on the Spanish Wikipedia in February 2014.

Notes[edit | edit source]

  1. Initially restricted to just the VisualEditor: namespace, later for all pages.
  2. Subsequently switched back to "opt-in" mode in September 2013.
  3. German (de) and Dutch (nl) initially proposed, but withdrawn before full deployment due to community concerns.

Documentation[edit | edit source]

You can speak with us in our chat channel, #mediawiki-visualeditorconnect.

Related pages[edit | edit source]

For more information on VisualEditor and its design process, see these directory pages:

See also[edit | edit source]