- From: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Date: Thu, 25 Apr 2013 07:26:12 +0200
- To: HTML WG <public-html@w3.org>
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