Hi

2014-04-17 18:59 GMT+02:00 Sergiu Dumitriu <[email protected]>:

> 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
>
>
Good. I like this idea. But we need to indicate clearly what is deprecated
and what is not, because at the end, we will have 3 different ways to have
the same informations (ie: the current page, space, etc...).



> > 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
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to