As a high-level comment it seems to me the organization of the
specification needs some changing. The processing model is about how to
deal with a "copy/paste/cut operation" it is not about firing an event
(that is mainly part of it). The events section meanwhile is about how
users invoke a "copy/paste/cut operation" and not so much about firing an
event either (the event summary boxes are not needed I think). You can
also invoke such actions from script via the execCommand() APIs
apparently, but that does not appear to be described in detail.
So first I think it would make sense to clearly distinguish between
operations and events.
Because there is a processing model that includes dispatching events the
section on events can probably be removed. The requirements made therein
are redundant. You will still need a section that defines when the
operations are invoked. Alternatively, you could leave that out of scope
for the HTML Editing APIs specification.
Apart from this I noticed a few other things:
* "the BODY element" should probably be defined as reference to what it is
in HTML.
* If you define an internal flag do not use <code> for it, but <var> or
maybe <dfn>.
* If you reference externally used terms mention that somehow. E.g.
DataTransfer's mode flag is actually called "drag data store mode".
DataTransfer in HTML is defined in terms of "drag data store" so it would
make sense to talk about the same thing here. (Maybe get it renamed from
drag to something more neutral?)
* "If the current clipboard part contains HTML- or XHTML-formatted text"
seems really vague (how do you tell whether it contains that?) as are the
steps that lead to creating some kind of tree. They probably need to
reference something specific in HTML.
* The "Fire the event" step should be more elaborated:
http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#firing-events
* The "Process the default action" step should instead talk about whether
or not the
http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#canceled-flag of
the event ended up being set and what to do when it is not.
* Since ClipboardEvent is new we do not need to introduce
initClipboardEvent() and go solely for an event constructor.
* I think having section 7 is confusing. Cross-references would be better.
If you want to perform cross-references between HTML, DOM, and your
specification it might be an idea to use
https://bitbucket.org/ms2ger/anolis I can help out if needed.
--
Anne van Kesteren
http://annevankesteren.nl/