Page MenuHomePhabricator

interface to support extensions that provide on-screen keyboards for Visual Editor
Open, MediumPublic

Description

We need to be able to have an on-screen keyboard like VirtualKeyboard be displayed alongside, and enter its text into, VisualEditor.

proposed implementation:

  1. understand or create external interface on VisualEditor for external inputs to editable area --- hoping for comments from core VE engineers.
  2. create Extension:VirtualKeyboard around this existing component

This is relevant to:

Long User Story: As a multi-lingual editor of a MediaWiki system, I
often write articles using *multiple* languages in the same article.
While many editors focus on just one language, my specialty is
cross-language topics. For example, when describing an event, the most
appropriate language for writing the names of people and organizations
is often *different* from the primary language of the article. As
another example, idiomatic phrases and marketing slogan are often very
language dependent, so describing them in an article written in a
different language requires switching between language keyboards. For
example, when writing an wiki page in an English wiki about a company
in South Korea, I might need to write the names of several senior
executives, office locations, and related entities, and it is best to
write the names in the native script, possibly with a translation in
parentheses after the name. My operating system supports multiple
languages, but it is a pain to switch between them. A bigger problem
is that the letters on my physical keyboard are only in one
language. I could buy rubber keyboard overlays for the languages I
typically use. It would be nicer and more efficient to have a keyboard
displayed on the screen near the article when I want to switch briefly
to another script. For this to work well, I want to be able to mark a
few primary languages, e.g. Japanese, Korean, and English, so that I
can jump between them quickly with a keystroke, e.g. control-L to
toggle through my marked languages --- that way I can just keep typing
and switching as needed between the different languages.

Related Objects

Event Timeline

Jrf raised the priority of this task from to Needs Triage.
Jrf updated the task description. (Show Details)
Jrf subscribed.

Hi,

VirtualKeyboard demo is up and running, you can check it by the link above.
As long as VE uses content editable elements, VK can be used with the minimal modifications.

From my POV, VK integration requires to discuss the details:

  • VK integration and placement options
  • Language list
  • User profile settings
  • Language preferences
  • Hotkeys binding
  • Events/notifications for inter-extension integration (e.g. pressing ctrl+s on virtual keyboard)
  • ...
  • Language list
  • User profile settings
  • Language preferences

For these it's crucial to reuse jequery.uls and not invent anything new.

For these it's crucial to reuse jequery.uls and not invent anything new.

It's OK to reuse already existing components, nevertheless target extension requires extra clarifications of the topics from above

  • Language list - translation and input language may (and will, afaiu) not be the same
  • User profile settings - VK position, default state and
  • Language preferences - list of the preferred input languages, default input language

We are hoping to find (or help create) an externally defined interface on VE, so that we can write an extension that provides customized keyboard functionality. The extension might use non-jequery.uls components. (Our company is using VE in our commercial products, and while we intend to make the keyboard extensions fully FOSS, we might have non-mainstream requirements that are hard to meet with only jequery.uls components.)

Change 192862 had a related patch set uploaded (by tosfos):
initial commit

https://gerrit.wikimedia.org/r/192862

Etonkovidova set Security to None.