#11300: Switch to HTML5 ---------------------------+------------------------------------------------ Reporter: spliter | Owner: spliter Type: PLIP | Status: assigned Priority: major | Milestone: 4.2 Component: Templates/CSS | Keywords: ---------------------------+------------------------------------------------
Comment(by spliter): Replying to [comment:57 robgietema]: > (In [50595]) Added review for plip 11300. refs #11300 Thanks for the review, Rob. Would like to give some comments and explanations on it. Replying to [comment:57 robgietema]: > The conditional html tag at the end uses "if gt IE 8" better would be "if (gt IE 8)|!(IE)". No other browser understands conditional comments except IE, so !(IE) part doesn't make sense to me. Rob, do you know why that addition would be useful? Replying to [comment:57 robgietema]: > The code changes look good. What I don't understand is why modernizr is used. The comments in the css suggest that modernizr adds the ie6, ie7 etc classes to the html document but that is not the case, they are added using conditional html comments. The PLIP states modernizr is used to strip out HTML5 specific tags but as far as I can see none are used right now. Please explain why we need modernizr at this time. First of all, the task of this PLIP was not to introduce the new HTML5 elements, but to give a kick-start to that process by just switching to the new doctype and let end-integrators do more if they need. Modernizr, doesn't add those classes indeed and they are added with the conditional comments. That's right. Maybe I was not clear in my explanations of what Modernizr does for IE. Will try again. The issue is that Internet Explorer, when seeing unknown element, ignores it completely and does not allow one to apply any styling to such elements. Since new HTML5 elements are aliens at the moment, they fail under this exact case — end-integrators wish to go further in HTML5 implementation in their Plone theme, do add new HTML5 elements. Out of the box, they will not be able to style those in IE since the browser simply will not be able to understand what are those. So, for Internet Explorer we do one of the following: * manually write JS that would add fake instances of all new HTML5 elements and then remove them. In this case, IE will be triggered to "this-guy-looks-familiar mode" when the new elements are added in the HTML. It will not give them any structural meaning of course, but at least end-users will be able to style new HTML5 elements. * use one of the shims (shivs) available out there that do this automatically for IE like http://code.google.com/p/html5shim/ Modernizr has such shim built-in. So, Modernizr in this case is used to convince IE that the new elements are not aliens and it's ok to style those. More on this — http://www.modernizr.com/docs/#html5inie Next question is why Modernizr and not some shim-only solution. Modernizr is *the* feature detection solution these days. It's the only library that can detect certain features, a browser understands from HTML5/CSS3 and related technologies (like HTML5 javascript APIs, for example). In order to build a future-proof (for the browsers of the future) and backwards- compatible (with less capable browsers) HTML5 solution these days, one has to rely on feature detection. So, if we switch to HTML5, we need to give those, who is working with HTML5 sites a more or less solid ground to build their applications. If we don't add Modernizr, the whole switch would not make a lot of sense, since end-integrators will need to add it to their themes anyway if they care about more than just cutting-edge browsers. In addition, once we start transition to HTML5 in Plone, we, ourselves, need the basis for extending this integration to include new elements and new attributes to Plone itself. Once again, we will have to add Modernizr later in this case. But Modernizr has even more http://www.modernizr.com/docs/. The good thing is that with all it's features it is packed in a quite small file size (13.4KB). In my other PLIP #9352 I have already assumed we have Modernizr available in Plone that let's me fork the code for contemporary and not-so browsers in [50545] line 62. Well, the fallback for less capable browsers is still not there but you get the idea, I hope. -- Ticket URL: <http://dev.plone.org/plone/ticket/11300#comment:58> Plone <http://plone.org> Plone Enterprise Content Management System _______________________________________________ PLIP-Advisories mailing list plip-advisor...@lists.plone.org https://lists.plone.org/mailman/listinfo/plone-plip-advisories