Opened 9 years ago

Last modified 9 years ago

#13415 confirmed Task

[Autoembed] UX and a11y — at Initial Version

Reported by: Olek Nowodziński Owned by:
Priority: Normal Milestone:
Component: Accessibility Version: 4.5.0
Keywords: Cc:

Description

While the new feature is quite innovative and I really do like it, I found some UX issues worth discussing:

Double undo mechanism

At the moment, if the user pastes a link and it gets converted into an embeddable widget, they got to undo twice to get back to the initial state of the editor. The first undo step removes the widget, then the second one – the link.

However, if the user decides to change something in the contents after the first undo step, there's no way to convert the link into a widget again, unless you remove it completely and paste again. Thus the user is stuck with a link which supposed to be an embeddable content but there's no way to achieve that because the flow of the actions (state shifting) is broken.

Possible solutions:

  • One–step undo: If the link is just an intermediate form of an embeddable content, a way to communicate the editor that something is supposed to be embedded (it is, isn't it?), there should be just a single undo step. CTRL+Z and both widget and the link are gone.
    • Pros: It's so simple.
    • Cons: There's no way for the user to decide if the link is supposed to be embedded or simply pasted in the content. It gets converted into embeddable widget whether they like it or not. TBH, I think this is rather the right way – if the administrator enabled the autoembed plugin, they expect such content to be embedded. It's a deliberate action. There's no need to leave an option to keep the link instead of embeddable to the users because they're not supposed to pollute the content with an intermediate data. And if they are desperate to do this anyway, there's still a possibility of using the "Source" or "Link" buttons.
  • Context menu on links and embeddable widgets: Right–clicking the link which is prone to becoming an embeddable could display a context menu item like "Embed". It would do the same magic the autoembed plugin does when the link is pasted. At the same time, widgets containing embeddable content, would expose "Convert to link|Linkify|Collapse|Whatever..." context menu item, which would be an equivalent to the first undo step.
    • Prons: The flow of the actions (states) is no longer broken – users can go back and forth between the states of embeddable content (link<->widget), which means that double–undo system remains.
    • Cons: Hardly any. It could give too much freedom to the content creators, which I find rather unnecessary (explained above).

Batch autoembed

If one pastes

https://twitter.com/reinmarpl/status/573118615274315776

then it's converted into a Twitter embeddable. However pasting

https://twitter.com/reinmarpl/status/573118615274315776 https://twitter.com/reinmarpl/status/573118615274315776

is followed by no magic action. No autolink, no autoembed.

  • What if the user wants to embed the entire list of tweets?
  • Entire gallery of images?
  • Dozens, hundreds of links to embed?
  • A paragraph with a link like
    Hey, check this out: https://twitter.com/reinmarpl/status/573118615274315776
    
    ?
  • Or they accidentally copied some white space like
    <WS>https://twitter.com/reinmarpl/status/573118615274315776
    
    ?

Since we support parallel embedding (there's a progress bar indicating the status of things) and we support embedding of multiple items in a row (just hold CTRL+V), which is not perfect (#13413) but it works, why not multiple items at the same time?

Possible solutions:

  • Tune the RegEx mechanism to embed multiple items at the same time.
    • Pros: Simple as that.
    • Cons: Additional complexity of the code (?).
  • Include a drop–down menu under the "Insert Media Embed" button (just like SCAYT), with a "Detect embeddables in selection|Whatever..." button. Such a magic button would let users select some content (i.e. 250 links pasted from the clipboard) and make them all embeddable with a single click.
    • Pros: It's a powerful tool.
    • Cons: Hardly any. It seems quite simple to implement.

TBH, I'd like to see both solutions implemented alongside, complementing each other.

Accessibility

I played a little bit with JAWS and my impression is that it could be confusing for some people that when a link is pasted it is immediately converted into something else. I wonder what is the right solution for such magic and whether there are mechanisms to notify the user about the transformation. In real life, the transformation (embed request) could take a lot of time and once the user received an audible confirmation from the synthesizer that the contents have been pasted from the clipboard (once pressed CTRL+V), they could move across the document, unaware of the transformation of the link which is yet to happen or which has just happened. WDYT?

Change History (0)

Note: See TracTickets for help on using tickets.
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy