I just finished reading Håkon Wium Lie thesis, Cascading Style Sheets; Håkon, apart from being the CTO of Opera, is one of the main contributors, and a vocal proponent, of the CSS effort at W3C. Håkon and Bert Boss co-authored the CSS1 specification and (some of) CSS 2.1 specification. His thesis is, in many ways, an important historical account of how Cascading Style Sheets came to fruition – the thesis traces significant historical moments, including significant discussions in W3C’s style mainling list, that brought about the CSS specifications. It also covers other relavant stylesheet proposals that influenced that current CSS specifications. In addition, his thesis outlines some of the important differences between print-centric style sheets and screen-centric style sheets, as well as the specific requirements that a style sheet language needs to be suitable for the web. The rest of the entry tries summarise Håkon’s thesis and how it relates to rich application development.
Håkon starts his thesis by considering (X)HTML as a structured document format, and argues that the abstraction level in HTML is ‘just right’ for structuring documents on the web (px). That is, the elements that are the structuring mechanisms for a document are complex enough to effectively describe the structure of a document, yet not overly complex as to force users to deal with low level formatting/typesetting of documents. He also argues that, in the web’s early history, the introduction of stylistic elements into HTML by browser makers threatened this balance: “the creators of HTML intended it to be usable in many settings but presentational tags threatened device independences, accessibility, and content reuse.” (p.29)
In the thesis, he outlines some important differences between print-based stylesheets and stylesheets for the web. particulalry, how the web, as a medium that is both interactive and networked, has different stylistic requirements thank print dcouments. When comparing print to web, Håkon states that (p32),
- “Paper-centric publishing becomes screen-centric”: documents are now experienced on screen, instead of being experienced on a medium like paper.
- “Single output becomes multiple outputs”: Although most documents on the web are viewed on screen, it was a possibility that users would access documents on other devices (PDAs, mobile phones, screen readers, print).
- “Author control becomes shared author/user influence”: In print media, a user receives a document in its final form and cannot directly affect what a document looks like. On the web, documents are assembled on the user’s computer; the user has the ability to intervene in the formatting process and change the document to suit their needs. For instance, the user can change font sizes, or even link colors, etc.
- “Stand-alone documents become hyperlinked”: where once citations was the means by which ideas where linked together, on the web ideas are linked by hyperlinks over HTTP or other protocols.
- “Dependent delivery becomes uncertain”: content and style in a document become linked to a sometimes unreliable internet resources. Unlike print, where the user recieves a document in its final form, the author needs to prepare for situation where resources are unavaliable but content is still accessible and presentable. Håkon (p32) states, “with the introduction of the web the focus of style sheets is shifted from being an author’s tool in the authoring process to being a tool for content reuse after the contented has been generated.”
The thesis paints a clear history of the the print-centric foundations of both HTML and CSS – particularly as both have close relations to Scribe/ODA/SGML/DSSSL/FOSI/TeX. However, it does not cover the (graphic/print) design related decisions made in those formats. Ie. Why where those languages designed (speaking from a print layout design perspective) to support some particular features but not others? What theory went into desgining those languages/technologies? The thesis, however, does not talk about why particular stylinng elements where included in CSS. It is simply that they W3C copied much of what was already available from other specifications and technologies. The box model, for instance, is heavily influenced by TeX’s layout model (p219). “The VMF [CSS Visual Formatting Model] should be able to replicate common typographical effects. Ideally, one should be able to take any book or magazine and design a CSS style sheet to achieve the same layout.”
According to Håkon, in order for a style sheet langauge to be suitable for the web, the language must be (p187-8):
- stream-based: so styling can be applied incrememtally as the style sheet downloads.
- screen-based: units used in the langauge must be suitable for screen display.
- able to negotiate between conflicting stylistic preferences: the cascade model.
- able to support media specific style sheets: able to support different presentation contexts, such as projections, PDA’s, etc.
- able to style hyperlinks: able to apply styles to hyperlinks.
- robust: able to function with the unreliability of the web.
CSS was designed to present structured documents, not interfaces (although, regardless, I believe CSS is very effective at presenting interfaces even if the structural semantics are lacking in HTML).
Another interesting thing in Håkon’s thesis is his brief discussion on displaying content on small screents (p243-247). Håkon describes the approaches used to scale content to small screens:
- “cascading: The browser applies a browser style sheet to the document;
- linearization: The browser linearizes the document presentation by turning table cells and and positioned elements into normal block-level elements;
- element removal: The browser removes certain elements unfit for display on small screens; and
- element resizing: All elements are given a maximum width equal to the screen size, and are scaled down if necessary.”