- From: Кошмарчик <garykac@chromium.org>
- Date: Fri, 30 May 2014 06:11:20 -0700
- To: Domenic Denicola <domenic@domenicdenicola.com>
- Cc: Travis Leithead <travis.leithead@microsoft.com>, Philippe Le Hegaret <plh@w3.org>, Anne van Kesteren <annevk@annevk.nl>, "www-dom@w3.org" <www-dom@w3.org>
- Message-ID: <CAGnkXoEwAZaFrHRdwqP6jqD+bhrCcqbf7c+UeN46+dPuqTFr8g@mail.gmail.com>
On Thu, May 29, 2014 at 5:44 PM, Domenic Denicola < domenic@domenicdenicola.com> wrote: > From: garykac@google.com [mailto:garykac@google.com] On Behalf Of Gary > Kacmarcik (?????????) > > > I don't think it's reasonable to do this in D3E because the requirement > to keep all the historical and deprecated DOM event information (like > keypress, DOMAttrModifier, charCode, MutationEvents, and so on) would make > the new spec unwieldy. I'd prefer (if we go this route) to keep the > historical stuff (as much as possible) sandboxed in D3E so that we can have > a relatively clean UIEvents spec. > > But all of these things need to be specced---and even more so, specced > interoperably and rigorously, and not in terms of a legacy model! Keypress, > charCode, and friends are parts of the web platform, and any spec that > tries to ignore them is simply an incomplete spec that is not doing its > job. If UI Events is planning to be at all authoritative, it needs to > include these too. > For items like MutationEvents, which are actively being removed from the web, I can't see any reason why it would be worth spending time formally writing out how they would work if they still existed. For things like legacy event initializers, which were in older versions of the D3E spec but were never part of any officially released spec, they are included for historical reference only and thus, it doesn't make sense to describe them in any further detail. And for other items (like keyCode), it is not possible for them to be speced in a proper, interoperable sense because there is no agreed upon behavior. Each browser has its own idiosyncratic interpretation of what these fields should contain. And many websites sniff the useragent to determine how to interpret these attributes. Unless we're OK with the "spec" being: Firefox does this; Chrome/Safari do that; IE does something else; ... But that doesn't address the question of what a brand new browser should do for key events. We're trying to get to a world where a brand new browser has a clear set of requirements and doesn't require a fake useragent string to work. Many of the deprecated items (e.g. key event attributes) in D3E were deprecated and replaced specifically because they could not be speced in an interoperable way. Sadly, the current state of affairs is that browsers must continue support these unspeced attributes (e.g. with key events) because there is no alternative. If we want to make it possible for these attributes to go away sometime in the future, then step 1 is to provide an interoperable replacement (as was done with MutationEvents -> MutationObservers). That is what D3E is trying to do. That is why we have |key| and |code| value tables (the original topic of this thread).
Received on Friday, 30 May 2014 13:11:48 UTC