- 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