Re: PSA: publishing FPWD of D3E Keyboard {key,code} Values specs and WD of UI Events

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