Day 1 of 100DaysOfSpec, Introduction

I am reading and taking notes on the HTML specifications for 100 days as part of #The100DayProject. Read the initial intent/backstory. I am a Microsoft employee but all opinions, comments, etc on this site are my own. I do not speak on behalf of my employer, and thus no comments should be taken as representative of Microsoft’s official opinion of the spec. Subsections not listed below were read without comment.

Everything in today’s reading was not part the HTML standard, just background info.

1.1 Background

I figured most of this first chapter would be fluff I wouldn’t need to cover, but waddaya know, something new in the first section: HTML was originally used for “semantically describing scientific documents”.

Probably this is something they say when someone sits you down to have “the HTML talk”? I don’t know, never had it.

1.4 History

This subsection is not that long but would be worth a complete read. Probably most interesting to me was the gap in HTML’s evolution (as HTML) between 1998–2003/2004. This was something I was vaguely aware of but I hadn’t realized the gap was quite that long.

Design notes > Extensibility

It’s interesting that the spec refers to classes as a way devs can “effectively [create] their own elements”. I have simply thought of this attribute as a “hook” I can use to apply styles and interactivity, but I suppose, yea, you’re basically creating a new Thing.

data-*="" attributes are “guaranteed to never be touched by browsers”.

1.7.1 Structure of this specification > How to read this specification

“First, it should be read cover-to-cover, multiple times. Then, it should be read backwards at least once.” Very cute, W3C.

Interestingly (though still logical), in the vocabulary of the spec, a “producer” is a developer of websites and a “consumer” is a web browser.

1.9 A quick introduction to HTML

This section contains a diagram that shows how markup gets split up into different nodes in the DOM tree, “an in-memory representation of a document”. Curiously, spaces (except for those at the beginning/end of the HTML file) and line breaks yield “Text” nodes.

1.9.1 Writing secure applications with HTML

I was aware of cross-site scripting attacks via links and form submissions, but I hadn’t thought of a hacker’s ability to use img maliciously (using the onload attribute to run scripts is the example they cite).

Cross-site request forgery: the vocab term for when another site maliciously makes server requests, acting as a user.

1.10 Conformance requirements for authors

Explains why “presentational markup” (attributes like color, border) from previous versions of HTML were dropped: bad for accessibility, harder to maintain, larger doc sizes. Aww, the good ol’ days of tabular layouts (JUST KIDDING, folks).

“It is also worth noting that some elements that were previously presentational have been redefined in this specification to be media-independent: b,i, hr, s, small, and u.”

1.11 Suggested reading

A bunch of links for further reading.

Comments

More on the blog