Page MenuHomePhabricator

☂ Play interface
Open, Needs TriagePublic

Description

Being able to play the interface in a wiki: i.e links, menus, buttons, etc. So basically everything that is not page content.

Steps:

  1. Check if there is any tasks about this since before
  2. Break it down to smaller pieces if applicable

Details

Related Changes in Gerrit:

Event Timeline

Change #1175092 had a related patch set uploaded (by Viktoria Hillerud WMSE; author: Viktoria Hillerud WMSE):

[mediawiki/extensions/Wikispeech@master] Play interface

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

Since we right now only have page-specific logic for segmenting a page, this would need some steps to also include being able to segment parts of the interface (skin).

My solution right now would be to:

  1. Create an abstract class SegmentFactory that SegmentPageFactory and a new class SegmentInterfaceFactory extend from, since they will share some common methods, but with different functionality (such as the segmentPage() in SegmentPageFactory, and should probably be renamed to segmentContent() or something more general)
  1. Rename SegmentPageResponse to SegmentResponse so that SegmentInterfaceFactory will use some methods from it.
  1. Create a new API-module ApiWikispeechSegmentInterface
  1. Add a function in ext.wikispeech.storage.js::loadInterfaceUtterances()

When to read from the UI will probably be quite different compared to reading page content. We'd likely want to read something when it's focused (e.g. by tabbing around). You also want to be able to go back to listning where you were in the page, so it can't use the player.

When to read from the UI will probably be quite different compared to reading page content. We'd likely want to read something when it's focused (e.g. by tabbing around). You also want to be able to go back to listning where you were in the page, so it can't use the player.

So no player should be visible when playing the interface then? Only start to play the way we decide (e.g focused, tabbing around)

The player should till be there, but it's not used for listening to the UI. They should work in parallel, which also add extra things to figure out, like how do you make sure they don't speak at the same time.

This is just how I imagine things thinking about them now. I think this is one area where we should check with our partners before getting to far into the development.

Viktoria_Hillerud_WMSE renamed this task from Play interface to ☂ Play interface.Aug 7 2025, 1:07 PM

Change #1175092 abandoned by Viktoria Hillerud WMSE:

[mediawiki/extensions/Wikispeech@master] Play interface

Reason:

Not applicable

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

How does this work on a consumer wiki? If we're making utterances from messages there's a risk that they are out of sync: Consumer runs MW 1.2. It creates an utterance for the button to save an edit with the label "Save". Producer runs MW 1.3, where the label has changed to "Publish". The old label will then be read. In this case you still get something, even if it's outdated. There may be situation where other things have changed like the ID or placement of an element, or even an element has been added. In those situations it may not work at all.

One simple solution would be to say that the consumer wiki has to use the same MW version as the producer. I don't think that will really work for us though since we'd have to keep pace with WP's version, which may also be different for different language versions.

At this point we may have to just make sure that other things don't break when things are out of sync and see if it causes any big issues.

What we want now, is to update the $errorMessageKeys (which should probably be renamed to just $messageKeys) array in preSynthesizeMessages.php to contain all of the decided message keys from T407346 - Page toolbar, T407348 - Link-section and T407347 - Sidebar menus.

@Sebastian_Berlin-WMSE should I perhaps create a task for this? Either in this parent task or outside?

I think it'd make sense to do that in the individual tasks. Add messages in the page toolbar in T407346 etc.