Which default values need to be declared in Polyglot Markup?

As part of the shift to more focus on the robustness principle, I wanna 
clarify why polyglot markup requires @type to be declared for script 
and style elements.

Put very bluntly, the reason is that the Polyglot Markup spec does not 
rely on 'The default, which is used if the attribute is absent, is 
"text/javascript".'[1]  However, script and style are not the only 
elements that have a missing value/missing attribute default. So why do 
we not require explicit declaration for e.g. the following elements?

 * missing value default for @type on <input> is the Text state
 * missing value default for @kind of <track> is 'subtitles'
 * missing value default for @shape is the rectangle state
 * missing value default for @autocomplete of form is "off"
 * missing value default of @type of button is Submit Button state
 * (may be various @role and @aria-* values too?)

Justification for asking defaults to be explicitly declared can be:

 * known (legacy) user agent/consumer issues
 * being explicit increases authors’ awareness of what they do
 * consequence - equal situations should be equally handled. 
   (For instance for pedagogical reasons. And ass spec editor,
   I look for principles)
 * simplifying (e.g. to remember shape="rect" can be simpler than
   remembering both shape="rect" *and* the missing value default)

A fourth justification could as well be format issues:

  * special XHML vs HTML requirements

But in all the above examples (including for script/style) I doubt 
there are format issues. (The best example of a format issue would be 
the charset="UTF-8" of the <meta> element - and since it can only take 
a single value - UTF-8, it does remind a little about 'missing value 
default', too. As well, the I18N WG favors meta@charset over BOM partly 
for explicity reasons.)

There are some cases when being explicit does not make sense:
 * when missing value default is "user-agent defined" (@preload),
 * when missing value default is the single method to set a state
   (e.g. auto state for @scope) In the auto state case, the only action 
Polyglot Markup’s editors *eventually* could take, would be to request 
that e.g. the value 'auto' is added to HTML5 proper, so that it in turn 
could be added to polyglot.

So, in a summary, our options are:
 1. keep requirements as is. If so, why?
 2. require the relevant elements to align with script/style
 3. require script/style to align with the relevant elements
 4. replacing today’s *requirement* to add @type on script/style
    with a *recommendation* to add the missing value default for
    *all* elements that have a missing value default.

Looking for principles and consequence as I am, I am inclined to rule 
out option 1. Can anyone explain why I should not go for option 4?

[1] http://www.w3.org/TR/html5/scripting-1.html#attr-script-type

-- 
leif halvard silli

Received on Thursday, 25 April 2013 05:26:40 UTC