Re: More clarifications on object processing

Hi Jo,

Thanks for the reply.
I think there is still a remaining inconsistency though.

[in the following examples, the file extensions are supposed to reflect 
the HTTP Content-Type with which the resources are served]

Consider the following:
  <object src="img.gif" type="image/png" />

Current algorithm says it is mobileOK, since the image is retrieved by 
3.15.1 Object Element Processing Rule, and the HTTP Content-Type is 
"image/gif". I don't quite like it, but as you said: some browsers 
download "img.gif" in the above example and some don't, so why not say 
that browsers usually download an object whose type is set to an 
unsupported mime type.


Now, in the following:
  <object src="img.png" type="image/png">
    <object src="img.gif" type="image/gif" />
  </object>

Here, the doc says: "img.png" is retrieved under 3.15.1. Its HTTP 
Content-Type is neither "image/png" nor "image/jpeg" so we'll move on to 
the inner object. Fine. Except that "img.png" won't be counted in 3.16 
PAGE_SIZE_LIMIT (and EXTERNAL_RESOURCES, but since both tests are 
equivalent, let's focus on PAGE_SIZE_LIMIT). But as opposed to the above 
example, we're thus saying that browsers usually don't download an 
object whose type is set to an unsupported mime type.


In practice, I think we need to make a choice.

The best choice in my mind is to state that:
1. as resolved in April, objects that don't define a type attribute 
should be retrieved and counted:
http://www.w3.org/2008/04/17-bpwg-minutes.html#item02
2. objects that define a type attribute different from "image/jpeg" and 
"image/gif" should not be retrieved.

In terms of changes in the document, I think this would both be easy and 
clarify the existing text (see how I manage to sell my proposed changes! 
;)), because there does not need to be any difference between the 
objects retrieved under 3.15.1 and those counted in 3.16 PAGE_SIZE_LIMIT 
(and EXTERNAL_RESOURCES as well).

This would yield to the following list of changes (that include your 
proposed changes).


===

PAGE_SIZE_LIMIT
(removing from your proposed text the mention of exceptions to the 
3.15.1 processing rule, as all retrieved objects should be counted)

Retrieve the document under test, if its size (excluding any 
redirections discussed under 2.4.3 HTTP Response) exceeds 10 kilobytes, FAIL

Add to a running total (total size) the size of all the HTTP response 
bodies that are required to retrieve the document under test (see 2.4.3 
HTTP Response).

For each unique included resource (as defined in 2.4.6 Included Resources):

     Add the size of all the response bodies that are required to 
retrieve the resource (see 2.4.3 HTTP Response) to the running total. 
Include in the total all the objects retrieved under the 3.15.1 Object 
Element Processing Rule.

If the total size exceeds 20 kilobytes, FAIL

Note:

In the case of resources that are referenced more than once in the 
document under test, and where, as discussed under 2.4.6, they are 
cached, it is the initial retrieval of that resource (as determined by 
the first reference in document order) that counts towards the total.

Note:

Where the Object Processing Rule (see 3.15.1) yields a resource that is 
found to be cached, objects that must be assessed in the course of 
yielding the cached resource count towards the total.

===

Proposed Change to 2.4.3
(that's your proposal, nothing changed!)

change the wording of

Include the size of the response in the total as described under 3.16 
PAGE_SIZE_LIMIT

to

Include the size of the response in the "total size" as described under 
3.16 PAGE_SIZE_LIMIT

in the various places in which it is found.

===

EXTERNAL_RESOURCES
(removing from your proposed text the mention of exceptions to the 
3.15.1 processing rule, as all retrieved objects should be counted)

Retrieve the resource under test, and add the number of retrievals 
required to obtain the resource (see 2.4.3 HTTP Response) to a running 
total.

For each unique included resource, as defined in 2.4.6 Included Resources:

     Request the referenced resource

     Add the number of HTTP requests that are required to retrieve the 
resource (see 2.4.3 HTTP Response) to the running total. Include in the 
count all the objects retrieved under the 3.15.1 Object Element 
Processing Rule.

If the total exceeds 10, warn

If this total exceeds 20, FAIL

===

3.15.1 Object Processing Rule
(including your proposed addition of caching, and my proposed view to 
retrieve only objects that don't define a type attribute and those that 
define a type attribute set to "image/jpeg" or "image/gif"):

change

     Retrieve the object (ignoring the type attribute)
     If the content-type of the retrieved object is "image/jpeg" or 
"image/gif"

to

     If the object element does not define a type attribute, or if the 
type attribute is set to "image/jpeg" or "image/gif"
       If the resource is not already cached (see 2.4.6 Included 
Resources) retrieve the object (ignoring the type attribute)
     If the type attribute is different from "image/jpeg" and 
"image/gif", or if the HTTP Content-Type of the retrieved object is not 
"image/jpef" or "image/gif"

===

Proposed Change to 2.4.6 Included Resources

Current Text

Note:

object elements that are accessed in order to test their Content-Type 
HTTP header, but do not form part of the ultimate representation of the 
resource under test (see 3.15 OBJECTS_OR_SCRIPT ), are not considered to 
be included resources. Their treatment, as regards 3.16 PAGE_SIZE_LIMIT 
and 3.6 EXTERNAL_RESOURCES , is described in the relevant section.

Propsoed Text:

Note:

Resources that are retrieved according to the processing rules defined 
in 3.15.1 Object Processing Rules and whose Content-Type HTTP header is 
not set to image/jpeg or image/gif are not considered to be included 
resources. Their treatment, as regards 3.16 PAGE_SIZE_LIMIT and 3.6 
EXTERNAL_RESOURCES, is described in the relevant section.


Francois.

Received on Wednesday, 2 July 2008 15:17:01 UTC