VisualEditor/2012-13 Q1 forward-look

From mediawiki.org
First Quarterly VisualEditor forward-look for 2012/13 Q1 2012/13 Q2

This is the forward-looking plan for the VisualEditor team (including Parsoid) for the 2012-13 Q1 cycle (i.e., from the start of July through to the end of September 2012).

Priorities for this quarter[edit]

  • Getting the APIs formulated (so we can check that our plans work for us)
  • Getting other people involved (so we can check that our plans work for people other than us)
  • Working through the core functions and types of content ("nodes") that people will expect for MW

Browser matrix[edit]

This is not final, but work-in-progress for the VE team; data current as on end-June 2012.

The unofficial rule for Wikimedia's browser support is that we try to support reading (and not necessarily other functions) for all browsers used by at least 0.1% of page hits based on the WikiStats data. However, VE is complex and requires some specific advanced browser features (most specifically, ContentEditable support, but also very wide JavaScript support), which limits the platforms we can support either technically (indicated by being struck through) or resource-wise (indicated with a N).

Probable VisualEditor support
Browser Desktop Tablet Mobile
Overall %age Version %age Overall %age Version %age Overall %age Version %age
Android N/A de minimis 0.21% de minimis 3.94% 2.3 2.71%[1]
2.2 0.59%[1]
4.0 0.37%
2.1 0.15%[1]
BlackBerry N/A de minimis N/A de minimis 0.26% 5.0 0.22% N[2]
Chrome 27.06% 19.0 24% N/A de minimis N/A de minimis
18.0 0.65% N[3]
20.0 0.57%
17.0 0.38% N[3]
16.0 0.29% N[3]
9.0 0.21% N[3]
14.0 0.15% N[3]
15.0 0.14% N[3]
13.0 0.12% N[3]
12.0 0.12% N[3]
21.0 0.11%
Firefox 19.67% 12.0 7.47% N/A de minimis 0.02% de minimis
13.0 6.8%
3.6 1.24% N[4]
11.0 0.7%
10.0 0.67% N[4]
9.0 0.41% N[4]
8.0 0.33% N[4]
4.0 0.29% N[4]
3.5 0.29% N[4]
5.0 0.24% N[4]
3.0 0.24% N[4]
7.0 0.22% N[4]
2.0 0.21% N[4]
6.0 0.2% N[4]
14.0 0.2%
Mozilla 0.42% 5.0 0.18% N[5] 0.10% de minimis 0.44% 5.0 0.32% ?[6]
4.0 0.17% N[5] 5.0 0.11% ?[6]
MSIE 23.93% 9.0 9.91% [7] 0.47% 8.0 0.39% ?[8] 0.02% de minimis
8.0 8.83% de minimis
7.0 3.93% N[7]
6.0 1.1% N[7]
Opera 3.25% 11.64 1.62% N[9] N/A de minimis 3.94% 11.10 (Mini/6.5) 0.3%[10]
12.00 0.93% N[9] 11.10 (Mini/4.2) 0.29%[10]
11.62 0.19% N[9] 11.10 (Mini/7.0) 0.2%[10]
11.61 0.12% N[9] 11.10 (Mini/4.1) 0.15%[10]
Safari 4.87% 534.57 1.91% 2.84% 7534.48 2.15% 6.84% 7534.48 4.5%
534.55 0.54% N[11] 6533.18 0.39% N[12] 6533.18 0.77% N[13]
533.22 0.52% N[11] 0.0 0.22% N[12] 0.0 0.61% N[13]
534.52 0.29% N[11] de minimis 534.11 0.33% N[13]
534.56 0.27% N[11] 534.8 0.24% N[13]
533.21 0.24% N[11] 6531.22 0.13% N[13]
533.19 0.19% N[11] de minimis
534.53 0.17% N[11]
534.51 0.17% N[11]
  1. 1.0 1.1 1.2 Android before v. 3.0 does not support ContentEditable, so we will have to fall back to wikitext editing.
  2. BlackBerry platform is very small and shrinking; VE team see no cost-benefit in supporting it.
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Chrome has auto-update (but rapid version increases); VE team roughly intend to support the current, soon-to-be-current, and immediately previous versions only.
  4. 4.00 4.01 4.02 4.03 4.04 4.05 4.06 4.07 4.08 4.09 4.10 Firefox has auto-update (but rapid version increases); VE team roughly intend to support the current, soon-to-be-current, and immediately previous versions only.
  5. 5.0 5.1 Mozilla (as opposed to Firefox) is not a sufficiently-significant browser for the VE team to consider it a cost-benefit.
  6. 6.0 6.1 This looks to be a data corruption error; probably "Mozilla 5.0 (compatible, ...).
  7. 7.0 7.1 7.2 MSIE is hideously broken but perplexingly popular; VE team intend to support IE8 and upwards.
  8. This looks to be a data corruption error; possibly MSIE 8 on a desktop with a "tablet"-like mode (e.g. the HP Slate).
  9. 9.0 9.1 9.2 9.3 To check; VE team are skeptical of the cost-benefit.
  10. 10.0 10.1 10.2 10.3 Opera Mini does not support ContentEditable, so it will have to fall back to wikitext editing.
  11. 11.0 11.1 11.2 11.3 11.4 11.5 11.6 11.7 Safari on desktop has very wide-spread auto-update; VE team roughly intend to support the current, and soon-to-be-current versions only
  12. 12.0 12.1 Safari on iPad has very wide-spread auto-update; VE team roughly intend to support the current, and soon-to-be-current versions only
  13. 13.0 13.1 13.2 13.3 13.4 Safari on iPhone/iPod has very wide-spread auto-update; VE team roughly intend to support the current, and soon-to-be-current versions only


Removed from plan[edit]

Mobile
  • Sentence-level editing on wikitext editor(?)
    This is no-longer deemed to be part of the VisualEditor work; for people that can use VE, this would be redundant with the way VisualEditor works nowadays, as edit mode is similar to view mode, so sentences are not visually "lost". We will pass this to the Mobile team to see if they want to implement it for non-VE ("Wikitext") editing, e.g. on mobiles that do not support

Areas of work[edit]

In general, for "alien nodes", adding support for templates, parser hooks and other generated content, which is relatively much more work for Parsoid than for VisualEditor itself (which 'just' needs alienation support in DM and UI/CE support generally).

Data Model
  • List operations (splitting, adoption, indent/outdent) (inc. DLs?)
  • <APIs>
ContentEditable
  • Support for IME
  • -> Inline images handling
  • -> Thumbnails for files
  • Alien Node handling (cursor interaction)
  • Improve support for keyboard text insertion (it still breaks in certain cases)
  • <API>
UI
  • Object inspectors (how to edit parameters to template, options for thumbnail, etc)
  • Scalable toolbar design?
  • <APIs>
APIs!
And, in general, moving to dynamic rather than static registration of node handlers/etc.
  1. Switch Parsoid and VE to RDFa - http://www.mediawiki.org/wiki/Parsoid/RDFa_vocabulary - Roan & Gabriel
  2. DM API that's kind of jQuery-like - Roan lead
  3. APIs(?) for toolbar buttons, inspectors and keyboard events (key-bindings) - Trevor & Rob as leads
  4. API for node types (based on both HTML node name and RDFa type) - Trevor & Roan
Plan
  • Documentation first - http://etherpad.wikimedia.org/VE-API ?
  • Encourage a FEW people to look at using it - and tell us what's missing/what would be good to have, perhaps try implementing it in a dev env'ment
  • A few core methods, as different as possible
    • mediawiki.org-deployed extensions (e.g. Cite)
    • Wikia extensions (e.g. YouTube embeds, Polls!)
    • Diverse extensions by our valued volunteer developers
Parsoid
  • template range identification
  • parser function / magic word APIs in core
  • misc work in http://www.mediawiki.org/wiki/Parsoid/Todo
  • chase long compat tail
  • start port to C library? (perhaps 2nd Quarter - Oct-Dec 2012)
  • integrate with Lua binary / PHP extension
  • parallelize and memory-optimize
  • see what else we need to integrate into core
  • <APIs> - especially, how to extend Parsoid with funky functionality
  • Work out what our tarball strategy is. :-) (the same as Lua, if that works out)

Open Questions[edit]

  • Edit conflicts?
  • Editing of non-content syntax
    • Categories and their sort keys
    • Language links (interwiki langlinks)
    • Behaviour magic words like __NOTOC__
  • Magic words (content syntax)
    • {{CURRENTDATE}}, ...