Thursday, February 12th, 2009p>Remember the days of frames and framesets? Not the iframe, but when you had sites with fixed headers and you cursed at not being able to bookmark correctly.
Anne Van Kesteren has blogged about HTML5 frames and how the world is different:
Personally I’m quite fond of the way HTML frames are handled in HTML5. In case you missed it, HTML5 now defines rendering of HTML in non-normative fashion. All gory rendering details of all HTML elements that affect rendering in contemporary Web browsers defined, including
marquee. Yay! For implementors this is really useful. I can recall several instances offhand where Opera QA was trying to figure out what the default styling was in other browsers for certain elements because pages did not look quite the same. (E.g.
formelements in quirks mode or various elements that need to have
text-indent:initialapplied to them for unknown reasons.)
Frames and framesets is designed as a simple grid algorithm that ignores CSS for that particular document. For an obsolete feature, it’s quite neat. I almost started writing evil test cases against it (e.g. inserting a
bodyelement before the
frameset, removing the
headelement, etc.), but then decided that ensuring that extremely old and obsolete features work correctly is probably not the best use of my time. (Admittedly I’m still tempted.)
He links to Mark Pilgrims latest HTML5 update that includes:
The big news this week is more major work on the non-normative section on rendering HTML documents, including a lot of reverse-engineered documentation of legacy (invalid) attributes that users expect browsers to support.