Copyright © 2000 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document is a document of the W3C's Document Object Model Working Group. It may be updated, replaced or rendered obsolete by other W3C documents at any time. It is inappropriate to use confidential documents as reference material or to cite them as other than "work in progress". This document is work in progress and does not imply endorsement by the W3C membership.
This document outlines the way in which the DOM Working Group addressed the comments submitted to the www-dom@w3.org mailing list during the Level 2 DOM Candidate Recommendation period.
The comments have been divided into modules. Comments received which indicate misspellings in the text, or requests for clarification, are not necessarily in this disposition of comments, but were fixed. Most of the requests for clarification which uncovered divergence or misunderstanding are listed in this disposition of comments, some pure misunderstandings were cleared up in email. The comments are listed in no particular order.
Except if there is a disagrement (the issue is marked in red), all issues are resolved with the agreement of the issue sender (or we didn't receive any disagrement after the resolution of the issue).
DOMString Element.getStartTag();
and
DOMString Element.getEndTag();
in Methods
Request from Andrew n marshallNode.replaceChild
is invoked
with its newChild
being a
DocumentFragment
? in Node.replaceChild
with newChild
being a DocumentFragment
from Takuki KamiyaDocumentFragment
are inserted,
and the empty DocumentFragment
is left behind, just
the same as for insertChild
etc.xmlns
& createElementNS
- The
current spec allows creating an element with the prefix "xmlns". I
think a NAMESPACE_ERR
exception should be raised. in
xmlns
& createElementNS from Arnaud Le HorsNAMESPACE_ERR
missing from
createDoctype
and createDocument
- In the
current spec neither createDocumentType
nor
createDocument
raises a NAMESPACE_ERR
exception ever. This is inconsistent with
createElementNS
and createAttributeNS
. in
NAMESPACE_ERR
missing from createDoctype and createDocument from Arnaud Le
HorssetPrefix
should throw an exception (preferably
NO_MODIFICATION_ERR
). in Notes
on DOM L2 CR from David BrownellcreateDocumentType
doesn't belong as a
method on the DOMImplementation
object. It belongs on
Document
, since the DTD is feature internal to the
Document
. in Notes
on DOM L2 CR from David BrownellinternalSubset
to say that this is implementation
dependant.Text::splitText()
- The "Return Value" section
should probably say "The new node." instead of "The new Text
node.", considering the addition of the comment that the new node
is of the same nodeType. in Comments
on DOM2 (Core, HTML, CSS) from L. David BaronAttr::nodeValue
and
Attr::value
? DOM2
implementation questions from Raph LevienNO_MODIFICATION_ALLOWED_ERR
. A cleaner, less brittle
approach is to allow a query to the objects using an
isReadOnly()
method prior to attempting a write call,
and this could be specified as a general policy. in comments:
DOM Level2 19991210 (long) from Bill dehOraNO_MODIFICATION_ALLOWED_ERR
is superfluous in most
cases but could be used by a read-only implementation. BTW, read
only DOMs are on the issue list for DOM Level 3.document.createAttribute("a").getNodeValue()
?""
.element.removeAttribute("non-existent")
?null
namespaceURI.HTMLSelectElement::size
, etc.). in Comments
on DOM2 (Core, HTML, CSS) from L. David BaronHTMLTextAreaElement::defaultValue
- (from issue
HTML-7) - Should this say explicitly that changing defaultValue
*does* change the contents of the element? That's what the comment
that HTMLTextAreaElement::value
doesn't do so makes me
think. in Comments
on DOM2 (Core, HTML, CSS) from L. David BaronHTMLTableCellElement::cellIndex
- (from issue
HTML-8) - this doesn't seem to be clarified as mentioned in issue
HTML-8 [2]. in Comments
on DOM2 (Core, HTML, CSS) from L. David BaronMediaList
. I've posted
on this subject before
(http://lists.w3.org/Archives/Public/www-dom/1999OctDec/0249.html),
with no response (from this list or www-style). Again. The value
'all' is logically dubious, if not absurd. It seems expedient to
just eliminate 'all' from both the Stylesheets OM and the CSS
specs, and assume that any CSS/stylesheet rule that is not media
targeted is applicable to any available end-media that the client
UA has available to it. In implementation it requires mucking about
with list members, and is dependent on one's interpretation of the
semantics of 'all'. in comments:
DOM Level2 19991210 (long) from Bill dehOraCSSPrimitiveValue.setFloatValue()
and
CSSPrimitiveValue.setStringValue()
are both
exhaustive. B) CSS_STRING
is added to the list of
possible values for
CSSPrimitiveValue.setStringValue()
.DOMImplementationCSS.createCSSStyleSheet()
accepts
a string of media as its argument, but does not specify that this
list is comma delimited, whereas the MediaList object that
presumably stores this list insists on a comma separated values.
Specifying that createCSSStyleSheet()
use a CSS string
avoids the inefficiency that the string be parsed and rebuilt
before sending it to the MediaList
. in some
confusion with the 'all' medium from Bill dehOraCSSPageRule
and CSSStyleRule
have
precisely the same method signatures. This would imply refactoring
to a common interface, or renaming the methods if maintaining a
logical mapping between interfaces and CSS rules is highly
desirable. in comments:
DOM Level2 19991210 (long) from Bill dehOraCSSStyleDeclaration.setText(String)
again. Is this
method essentially an iterated version of
setProperty()
? If so, while a result of the IDL, it's
unnecessary, since a client can simply iterate on setProperty().
Removing it also avoids asking the CSSOM to perform an initial
parse into separate arguments for setProperty(). Taking things a
little further, why specify how this object stores its properties
at all? That is, remove the attribute cssText and turn this
interface into a list. in comments:
DOM Level2 19991210 (long) from Bill dehOraCSSPrimitiveValue
has a convoluted way of setting
its values when its a Counter, RGB or Rect instance, essentially:
XX.getRGBValue().getBlue().setFloat(float);
XX.getRGBValue().getRed().setFloat(float);
XX.getRGBValue().getGreen().setFloat(float);
RGBValue
interface exists for clarity (instead of
having the three methods on the CSSPrimitiveValue
interface.CSSStyleDeclaration.removeProperty()
returns the
empty string if it has been given an invalid CSS2 property. It
seems preferable that an exception (SYNTAX_ERR) is used to inform
the client explicitly that it is passing in junk. in comments:
DOM Level2 19991210 (long) from Bill dehOraCSSStyleDeclaration
interface fails to state
what a valid index range is. Does it begin at 0?Node::normalize
What events are appropriate?
Deletion of additional Text nodes followed by mutation of the first
Text node? (this is what I perceive to be the reverse of
Text::splitText). DOM2
implementation questions from Raph LevienattrChangeType
attribute on the
MutationEvent
interface. It allows you to know if the
attribute was just added, modified in place or removed.
// attrChangeType const unsigned short MODIFICATION = 1; const unsigned short ADDITION = 2; const unsigned short REMOVAL = 3; readonly attribute unsigned short attrChange;