RESOLVED WONTFIX 47301
AX: Support UIRequestEvents from new W3C Proposal
https://bugs.webkit.org/show_bug.cgi?id=47301
Summary AX: Support UIRequestEvents from new W3C Proposal
chris fleizach
Reported 2010-10-06 13:56:00 PDT
Attachments
Patch (47.79 KB, patch)
2010-10-06 15:20 PDT, chris fleizach
no flags
Patch (47.80 KB, patch)
2010-10-06 16:45 PDT, chris fleizach
no flags
Patch (47.51 KB, patch)
2010-10-07 10:46 PDT, chris fleizach
no flags
Patch (61.61 KB, patch)
2010-10-26 12:00 PDT, chris fleizach
no flags
Patch (54.47 KB, patch)
2010-11-02 12:56 PDT, chris fleizach
no flags
Patch (61.44 KB, patch)
2010-11-02 14:50 PDT, chris fleizach
no flags
Patch (62.51 KB, patch)
2010-11-05 16:07 PDT, chris fleizach
abarth: review-
chris fleizach
Comment 1 2010-10-06 15:20:34 PDT
Early Warning System Bot
Comment 2 2010-10-06 15:50:13 PDT
chris fleizach
Comment 3 2010-10-06 16:45:43 PDT
chris fleizach
Comment 4 2010-10-07 10:46:10 PDT
Sam Weinig
Comment 5 2010-10-09 12:30:11 PDT
Comment on attachment 70115 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=70115&action=review My major issues with this patch are (and maybe I am still missing the point): - The events never seem to be fired. - The undo/redo events seem to offer the same functionality as http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#undomanagerevent from HTML5. - These events seem general enough that they should be defined in HTML5 (or 6), and not an accessibly spec. - There should also be more tests that show the event getting fired in other ways (other than manual dispatchEvent). > WebCore/accessibility/UIRequestEvent.h:40 > + enum { > + > + }; Empty enum should be removed. > WebCore/accessibility/UIRequestEvent.idl:38 > + interface UIRequestEvent : UIEvent { > + > + void initUIRequestEvent(in DOMString type, > + in boolean canBubble, > + in boolean cancelable, > + in DOMWindow view, > + in long detail); > + > + }; Perhaps this should be prefixed with webkit, until there is more support for this standard. > WebCore/dom/EventNames.h:176 > + macro(undorequest) \ > + macro(redorequest) \ > + macro(escaperequest) \ > + macro(deleterequest) Again, these should probably be prefixed.
Olli Pettay (:smaug)
Comment 6 2010-10-11 09:16:03 PDT
If you had support for non-standard events, they should be prefixed. (In this case with 'webkit'). http://lists.w3.org/Archives/Public/wai-xtech/2010Aug/att-0079/UserInterfaceIndependence.html is not in any kind of standard yet, just a proposal which will change.
chris fleizach
Comment 7 2010-10-11 11:24:12 PDT
> My major issues with this patch are (and maybe I am still missing the point): > - The events never seem to be fired. These are meant to be dispatched from the accessibility interface through 522 // UIRequestEvent support 523 enum UIRequestEventType { UNDO = 1, REDO = 2, ESCAPE = 3, DELETE = 4 }; 524 void dispatchUIRequestEvent(UIRequestEventType); However, the first client that can do this is iOS accessibility client. We are still battling mac-platform API discussions.. > > WebCore/accessibility/UIRequestEvent.idl:38 > > + interface UIRequestEvent : UIEvent { > > + > > + void initUIRequestEvent(in DOMString type, > > + in boolean canBubble, > > + in boolean cancelable, > > + in DOMWindow view, > > + in long detail); > > + > > + }; > > Perhaps this should be prefixed with webkit, until there is more support for this standard. do you mean -webkit-UIRequestEvent or just -webkit-initUIRequestEvent for the constructor?
James Craig
Comment 8 2010-10-11 13:07:55 PDT
The main difference seems to be that our Undo and Redo *request* allows the web application to determine what (if anything) should be undone, or redone, where the HTML5 event manager requires that the user agent make the change directly to the DOM or editable content. The UIRequestEvent interface allows the app to determine the outcome of the events based on the business logic of the app, which the browser does not know about. The reason these are all called 'request' events is because they don't change anything. They only send a 'request' to the web application (not to the user agent) to make a change on the user's behalf. The web application can then intercept or ignore the event as needed. If ignored (if the web app hasn't registered that event listener, or if the event is not canceled with preventDefault) then the user agent or assistive technology can fall back to whatever behavior is deemed appropriate, including then using the HTML5 undo manager.
James Craig
Comment 9 2010-10-11 13:15:42 PDT
I believe Ben is talking about adding the webkit prefix everywhere. > WebkitUIRequestEvent > initWebkitUIRequestEvent as well as the client-side JS event listeners: > webkitundorequest > webkitredorequest > webkitescaperequest > webkitdeleterequest
chris fleizach
Comment 10 2010-10-26 12:00:56 PDT
chris fleizach
Comment 11 2010-10-26 12:01:39 PDT
new patch added where everything is prefixed with webkit added a new unit test that tests dispatching the events in the same manner than an AX client will dispatch them
Ojan Vafai
Comment 12 2010-10-26 16:30:39 PDT
Comment on attachment 71922 [details] Patch I had made a proposal a few months ago that we add a property to the "input" event that specifies the user-action that caused the event (e.g. action="undo"). I also proposed that we add a corresponding "beforeInput" event. This seems to completely overlap with UIRequestEvent. Given that we already fire the input event, what is the advantage of adding all these new events over just adding a property to the existing one? Tony asked the same question on webkit-dev, but never got a response: https://lists.webkit.org/pipermail/webkit-dev/2010-September/014258.html. Also on that thread, Adam asked if they need to be synchronous. The answer seemed to be no, but these look synchronous to me. Another advantage of building on top of the input event is that it already has to deal with all the complexity of being a synchronous event. Since these are high-level design discussions, it's probably best to continue the discussion on webkit-dev rather than this bug.
James Craig
Comment 13 2010-10-26 18:47:31 PDT
Continued discussion is happening on the respective W3C lists, www-dom, wai-xtech, and pfwg. Current agreement between the DOM and PF groups is that this will become a standalone spec developed as a joint effort between the two working groups.
James Craig
Comment 14 2010-10-27 15:02:36 PDT
And I responded to Tony's email on webkit-dev. Thanks for the reminder. I overlooked it previously.
WebKit Review Bot
Comment 15 2010-10-27 15:09:34 PDT
chris fleizach
Comment 16 2010-11-02 11:06:45 PDT
Subsequent discussion on webkit-dev did not yield any further comments from anyone. re-asking for review
Ojan Vafai
Comment 17 2010-11-02 12:48:37 PDT
(In reply to comment #16) > Subsequent discussion on webkit-dev did not yield any further comments from anyone. re-asking for review Sorry for the delay. I've chimed in again on the webkit-dev thread.
chris fleizach
Comment 18 2010-11-02 12:56:53 PDT
Early Warning System Bot
Comment 19 2010-11-02 13:39:43 PDT
Eric Seidel (no email)
Comment 20 2010-11-02 14:46:48 PDT
chris fleizach
Comment 21 2010-11-02 14:50:23 PDT
Eric Seidel (no email)
Comment 22 2010-11-02 14:52:08 PDT
chris fleizach
Comment 23 2010-11-05 16:07:45 PDT
Adam Barth
Comment 24 2011-04-26 15:55:14 PDT
Comment on attachment 73133 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=73133&action=review This proposal doesn't seem to have gotten a lot of traction. Please feel free to renominate this patch if you're still interested in experimenting with this feature. At a minimum, we'd want and an ENABLE macro to be able to disable this feature in some configurations. > WebCore/ChangeLog:9 > + "User Interface Independence for Accessible Rich Internet Applications" Bad indent
James Craig
Comment 25 2011-04-27 07:45:42 PDT
Actually, the proposal has had a significant amount of traction. It's to be released as a joint spec from the DOM and PF working groups. I'm currently editing the internal working draft.
James Craig
Comment 26 2013-10-23 16:44:32 PDT
Note You need to log in before you can comment on or make changes to this bug.