- From: Johannes Wilm <johannes@fiduswriter.org>
- Date: Mon, 7 Mar 2016 15:53:55 +0100
- To: Hallvord Reiar Michaelsen Steen <hsteen@mozilla.com>
- Cc: Grisha Lyukshin <glyuk@microsoft.com>, Gary Kacmarcik (Кошмарчик) <garykac@chromium.org>, WebApps WG <public-webapps@w3.org>
- Message-ID: <CABkgm-Sm7255C6eBOM8rubk60XTazLdwJ0+RiND7RKf=mjnn_g@mail.gmail.com>
On Thu, Feb 4, 2016 at 1:52 PM, Hallvord Reiar Michaelsen Steen < hsteen@mozilla.com> wrote: > On Thu, Feb 4, 2016 at 2:43 AM, Grisha Lyukshin <glyuk@microsoft.com> > wrote: > > > > Killing them doesn't sound like the right course of action. We would > have to come up > > with another API so we can have an alternative to what before > cut/copy/paste do. > > True, it's a use case we should handle. > > Options: > * automagically enable commands if there are corresponding event > listeners (Opera Presto model) > * Pros: "just works", no extra APIs, page authors don't need to > learn nor do anything extra > * Cons: registering event listeners is not "supposed to" have side > effects, W3C specs are not "supposed to" go into UX territory, web > apps may want to sometimes leave the commands disabled after all when > it doesn't make sense to execute them > > * Add a new API method like document.setCommandEnabled('paste', false) > * Pros: Simpler and more straightforward than the onbefore* > event-based model, can be integrated with queryCommandEnabled(), gives > web apps fine grained control of when to enable/disable stuff > * Cons: I think the editing spec people are trying to move away from > those legacy document.* commands and may not be celebrating the > opportunity of adding a new one.. Also, we don't really want to let > sites disable these commands at will - we want them to *enable* them > when it makes sense but not *disable* them when the UA would otherwise > enable them, to prevent nuisance and "copyright protection"-style > abuse. > It has been proposed to have something like this to enable/disable actions from extra menus (clipboard actions in most cases, but safari also adds several menus for formatting such as bold/italic/font size/font type/etc. Without engaging in the discussion about execCommand again, in my experience/view, the browser provided execCommand is currently unusable for just about all editing operations (but required to operate with the clipboard api). This seems to be the general view of all those JavaScript developers creating editors, whereas some people working on the browser side have a different view of this. So based on the view of these JavaScript-people, the main usecase for being able to disable actions is to make the extra menus go away if their editor doesn't support a particular editing operation. First priority is really to be able to remove all those menus. Second possibly "all menus except clipboard". Especially on mobile devices these are a major problem currently, as they gte in the way of things. In the view of those who think execCommand can be used for most editing operations, the main usecase would be to turn a particular action on or off. So in either case there is an argument for being able to turn them off. However, I am not sure it is such a good idea to have to turn of for example "paste" just to make a context menu go away. > Are there any other options? > > > Why can't we fire these events regardless of content editability and do > actual editability > > check during the execution of the execcommands? > > That's the plan :) - the spec requires the browser to fire a paste > event if the user for example presses ctrl-v regardless of whether the > context can handle a paste or not. However, the *menu* command state > (and thus the user's actual ability to trigger the command any other > way than by shortcut keys) would depend on the onbefore* handling or > some equivalent API we'd have to invent. Or the magic solution ;) > -Hallvord R > > -- Johannes Wilm Fidus Writer http://www.fiduswriter.org
Received on Monday, 7 March 2016 14:54:33 UTC