On 04/15/2014 06:09 AM, Guillaume "Louis-Marie" Delhumeau wrote:
> (There is already a JIRA issue about this topic, see
> http://jira.xwiki.org/browse/XWIKI-7552 ).
> 
> The new skin, Flamingo, uses the Bootstrap Framework, which is designed to
> be used with HTML5. For example, the drop down buttons [1] use the
> attributes "data-*" that was introduced recently and that are not valid in
> XHTML 1.0 Strict. Since HTML5 is becoming the new standard, I think it's
> time to switch to HTML5, at least for Flamingo.
> 
> With the help of Thomas, I have already added an HTML5 validator in our
> build tools, based on validator.nu [2]. In the future, we need to change
> the enterprise tests suite to use this validator and the flamingo skin.
> 
> -------------------------
> What are the blockers ?
> -------------------------
> 
> -----
> Meta tags
> -----
> 
> In Colibri headers, we used to define some meta tags used by some
> javascript components. These tags are:
> - <meta name="document" content="Main.WebHome"/>
> - <meta name="wiki" content="xwiki"/>
> - ... and so on.
> 
> In my opinion, they are useless, because we also defines some variables:
> - XWiki.currentWiki = "xwiki";
> - XWiki.currentSpace = "Main";
> - XWiki.currentPage = "WebHome";
> - ... and so on.

The JavaScript ones are actually the deprecated ones, not the other way
around...

> The problem is: these tags are not valid in HTML5 because the specification
> mentions that custom meta names should be registered on
> http://wiki.whatwg.org/wiki/MetaExtensions. See
> http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#other-metadata-names
> .
> 
> Other problem: if we simply remove them, we will break some javascript
> codes.
> 
> -----
> Internet Explorer meta tag
> -----
> 
> Bootstrap defines the following meta-tag:
> <meta http-equiv="X-UA-Compatible" content="IE=edge">
> 
> It is used to prevent Internet Explorer from using the compatibility mode
> (which is the default setting on intranet sites). As before, this meta tag
> is not valid. It is interresting to notice that even the bootstrap site is
> not valid, because of that.
> 
> In my opinion, we need this meta-tag and we should ignore this HTML5
> violation.
> 
> -----
> Use HTML5 or XHTML5?
> -----
> 
> XHTML5 is only a subset of HTML5 so that it is XML compliant. If we want to
> use it, we need to change the MIME type of our pages to
> "application/xhtml+xml" or "application/xml" [3]. But then, the browser is
> not error-tolerant anymore (I have only tested with Firefox and I hit the
> issue).
> 
> -----
> Update HTMLCleaner
> -----
> 
> HTML Cleaner generates this code:
> <img src="..."></img>
> which is not valid.
> 
> ------------------------
> Proposal
> ------------------------
> 
> 1. Break the javascript compatibility and remove invalid <meta> tags,
> except the Internet Explorer specific one.

We still need a way to allow custom metadata to be entered (including by
extensions), and the JS block is not a good practice. HTML5 allows any
number of custom data-* attributes to be used for this purpose, so my
proposal is to use them instead. Where? The <html> tag is a good
candidate since it is guaranteed to be in the DOM before any script
begins execution, so scripts don't have to wait for a dom:loaded event
in order to be able to access them:

<html data-wiki="dev" data-space="DevGuide" data-page="WebHome"...>

Accessing them:

var space = document.documentElement.dataset.space;

If we agree on this approach, we should:
- add Marius' compatibility script which adds meta elements
- agree on a naming conversion (do we want a prefix, as in
data-xwiki-space, to prevent collisions with other frameworks that might
add their own data attributes?)
- add a DataExtension plugin/service, similar to the other skin
extension plugins, which would allow appications to add their own metadata

> 2. Update the HTML Cleaner.
> 3. Use HTML5 to avoid the XML specific problems. We can change this in the
> future.
> 4. Do not touch the XWiki Rendering code because it generates XHTML, which
> is still valid in HTML5 [4]. Same for the WYSIWYG editor.
> 5. Update the enterprise test suite to also tests pages with the flamingo
> and the new HTML5 validator.
> 
> WDYT?
> 
> Louis-Marie
> 
> ----------------------
> Links
> ----------------------
> [1] http://getbootstrap.com/components/#btn-dropdowns
> [2] http://jira.xwiki.org/browse/XWIKI-10249
> [3] http://en.wikipedia.org/wiki/HTML5#XHTML5_.28XML-serialized_HTML5.29
> [4] http://en.wikipedia.org/wiki/Polyglot_markup

-- 
Sergiu Dumitriu
http://purl.org/net/sergiu
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to