[whatwg] WA1: Conformance requirements

Ian Hickson ian at hixie.ch
Mon Mar 6 17:34:15 PST 2006

On Mon, 6 Mar 2006, L. David Baron wrote:
> Some comments on section 1.8, "Conformance requirements" in the
> 2006-02-16 draft of Web Applications 1.0 (whose permanent URL claims to
> be http://www.whatwg.org/specs/web-apps/current-work/ ).
> The opening sentence:
>   As well as sections marked as non-normative, all diagrams, examples,
>   and notes in this specification are non-normative.
> is unnecessarily complicated.  Instead, I would suggest combining it and
> the following sentence:
>   All of this specification is normative, except for sections marked as
>   non-normative, diagrams, examples, and notes.

This was changed as a result of:


I'm not convinced that your suggested improvement scans better, and it may 
in fact reintroduce the problem in a different way (does it refer to 
"sections marked as diagrams"?).

> It says:
>   This specification describes the conformance criteria for user agents
>   (implementations and their implementors) and ...
> But I don't think a person who implements a conformant implementation of
> the specification is himself conformant to the specification.  I'd take
> out "and their implementors".  (Likewise for authors of documents.)

The parenthetical is intended to convey that such conformance criteria are 
(or should be) the concern of implementors.

I've rephrased it as:

  <p>This specification describes the conformance criteria for user
  agents (relevant to implementors) and documents (relevant to

Is that ok?

> I'm also not entirely sure that "user agent" is an appropriate term for 
> all of the implementations described here.  I think it refers to an 
> implementation that a user uses to access the Web, i.e., a browser.  

A user agent is an agent (a program) that acts on behalf of a user. It's 
actually somewhat of a tautology (all agents act on behalf of users).

IMHO, anyway.

Certainly historically the Google spider has been termed a UA.

> But the use of that term may be too ingrained in the spec to remove it.

That's possible, but if you can think of a better term, please let me 

> It says:
>   Conformance requirements phrased as requirements on elements,
>   attributes, methods or objects are conformance requirements on user
>   agents.
> They are?  It seems like they're much more likely to be conformance
> requirements on documents.  I'm having trouble finding a single example
> that I think is a requirement for a user agent.

This is referring to, e.g.:

   "If the content attribute is absent, the DOM attribute must return the 
   default value, if the content attribute has one, or else the empty 


   "The event object must have its screenX, screenY, clientX, clientY, and 
   button attributes set to 0, its ctrlKey, shiftKey, altKey, and metaKey 
   attributes set according to the current state of the key input device, 
   if any (false for any keys that are not available), its detail  
   attribute set to 1, and its relatedTarget attribute set to null."

Could you point out the examples that aren't requirements on UAs?

> The "User agents with no scripting support" should probably either (1) 
> not be a toplevel item within the dl or (2) import the requirements of 
> one of the previous items in the definition list, as the item before it 
> does.  Otherwise there appear to be no conformance requirements for such 
> user agents.  (I tend to think that perhaps both the non-interactive and 
> no-scripting rules should be exceptions within the "Web browsers" 
> section, though.)

The DL is not intended to be a mutually exclusive list; the sentence 
immediately before it says:

   "User agents fall into several (overlapping) categories with different 
   conformance requirements."

(Note the parenthetical).

A user agent with no scripting support could be any of the other classes 
as well, just like an editor could also be a conformance checker, and a 
presentation UA could also do data mining.

Could you suggest an alternative approach that you think would be clearer?

> The requirement that authoring tools must generate conforming documents 
> should probably also make the distinction between the three types of 
> conformance requirements made in the section on conformance tools.  I 
> would say that authoring tools must generate documents that conform to 
> the first two requirements and should encourage their users to generate 
> documents that conform to the third.  I'd also allow an exception for 
> preservation of nonconformant content across editing operations, since 
> in editors often should not change content unrelated to what is being 
> edited.

I've noted this in the markup for now. I need to take a much closer look 
at the conformance requirements for editors; in particular I've been 
talking to a number of people who implement HTML editors and their 
unanimous feedback is that it is unrealistic to prevent them from 
including presentational markup, because the state of the art in UI does 
not yet have a way of conveying "semantics" in a comprehensive way.

Thus the conformance criteria for editors will probably be changed to 
allow them to include <font> markup while still defining such documents to 
be non-conformant HTML5 documents.

Or something. Like I said, this needs thought (feel free to mail ideas 
and suggestions on this to the list, btw).

> One comment on the following section (1.9 Terminology) while I'm here: 
> use of "svg:rect" as an example should probably be change to an example 
> that's actually defined by the table following it.


Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list