On Jun 30, 2014, at 4:19 PM, Ryosuke Niwa <rn...@apple.com> wrote: > > On Jun 24, 2014, at 3:44 AM, Robin Berjon <ro...@w3.org> wrote: > >> On 24/06/2014 00:38 , Ben Peters wrote: >>>> Also, if the browser includes a "bold" command by default and I >>>> don't support bolding and therefore cancel the event, the user who >>>> has been relying on the native UI is getting the worst possible >>>> experience: native controls that do nothing at all. >> > >>> This doesn't seem like an insurmountable problem. We can provide a >>> way for sites to indicate that they support certain commands and not >>> others, similar to queryCommandEnabled(), which has a return value >>> that could be modified by javascript (perhaps by an event, say >>> QueryCommandEvent). Then the browser could choose not to show buttons >>> for commands that are disabled. >> >> Yes, this is possible, but I see problems with it. >> >> First, it has to be white-list based. An option to just disable things would >> not be resilient in the face of browser vendors adding stuff. >> >> Second, it doesn't address the point made below about native UI exposing a >> likely non-natural subset of the commands I wish to support. > > That presumes an opt-out mechanism to enable native UI. If we had used > opt-in instead, then we wouldn't have this issue. > >> Third, I sense the sort of list that tends to acquire proprietary extensions >> over time (apple-touch-your-nose, ms-insert-clippy-wisdom, etc.) that leads >> developers to have to keep adding new values if they want a half-sane native >> UI that matches their usage (for reference, see the current favicon mess). > > On the contrary, white-listing a list of editing command that an editor > supports
allowss > UA to disable menu items corresponding for those supported editing actions. > This is crural for not confusing end users. > >> Finally, it feels an architecturally bad idea to require developers to >> specify the same information more than once. If my own toolbar has bold and >> italic, and I tell the browser that I want its native UI to expose bold and >> italic, then go ahead and add underlining to my toolbar I can easily forget >> to also tell the UA (granted, libraries can paper over that, but it becomes >> a tools-will-save-us situation). >> >> Building on top of the infrastructure that HTML is providing to define menus >> and commands, we can get something that is: >> >> • White-list based; >> • Has the exact set of commands I wish to expose; >> • Does not lend itself to proprietary drift; >> • Is specified once. >> >> Note that if what HTML 5.1 is currently doing in this area isn't good >> enough, we can (and should) definitely improve it. Right now it's not, to >> the best of my knowledge, implemented broadly enough that we can't change it. > > There is a list of problems with the current editing API: > Undo/redo menu doesn't get enabled/disabled in accordance with the app's > intrernal undo stack. > > - R. Niwa >