Re: Conformance requirements related to differences that must not matter

On Mon, 28 Jun 2010, L. David Baron wrote:
> 
> Was it intended that the specification not have this type of
> requirement?

Yes.


> I was looking through the specification this evening trying to form an 
> argument about whether certain behavior was conformant, and I found 
> myself having trouble finding some user-agent conformance requirements 
> that I expected to find in the specification.

If there are concrete examples of things that are apparently conforming 
that shouldn't be, please let me know.


> In particular, I was looking for requirements that said that certain 
> information must be irrelevant past a certain point in the process.
> 
> An example of such a conformance requirement is in HTML 4.01:
>   # A user agent must ensure that rendering is unchanged by the
>   # presence or absence of start tags and end tags when the HTML DTD
>   # indicates that these are optional.
>   -- http://www.w3.org/TR/1999/REC-html401-19991224/conform.html#conformance

This requirement is over-restrictive and is in fact ignored by several 
user agents, including Firefox -- for example, the "view source" feature 
of Firefox clearly parses HTML, and is therefore a user agent subject to 
parsing rules for conformance, but it _does_ change its rendering based on 
the presence or absence of start and end tags -- and it doing so is indeed 
an integral part of the feature; not doing so would be a serious UI bug 
(and one that Firefox has in the past had, in fact).


> For example, while the parsing algorithm describes how to construct a 
> DOM tree, I couldn't find conformance requirements restricting 
> differences in other behavior to differences that are present in the DOM 
> tree.

There are a number of behaviours that are dependent on differences that 
are not in the DOM tree, for example differences in user preferences, in 
output of the parser that can't be represented in the DOM (such as the 
quirks mode flag or the form control associations), the purpose of the 
user agent, various hardware limitations, etc.

Generally speaking, making blanket statements of non-conformance based on 
behaviour relating to an infinite set (everything except foo) is extremely 
difficult to do without writing statements that end up either ignored in 
certain cases, or end up essentially being trivial requirements. I try to 
just describe the constrained behaviours completely, to avoid the problem.

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

Received on Tuesday, 29 June 2010 08:49:23 UTC