Thursday keynote: Jeremy Keith, "The Design of HTML5"

Communities can become an echo chamber. I'm honoured to be here from
outside the community, and really glad you're getting people from
outside it to come to DrupalCon

HTML5? I mean the spec. What do other people mean?
This is like AJAX. Became "Anything cool done with Javascript"
Now HTML5 is "Anything cool on the web, full stop."
CSS3?

You can get the what from Google
The why is: design principles. Behind human endeavours
American Constitution
Karl Marx

XHTML - feels like a break
Enforced a coding style - validator more powerful
1.1 - have to serve as an XML mime type
IE simply can't handle that
Draconian error handling
Yellow screen of death is the correct behaviour! Doesn't fit with the web.
2 was going to break the web - Postel's Law

W3C - let's revive non-X HTML. Had a vote in 2004. No.
So the proponents formed their own group - WHATWG
W3C - 2007 said yes!
Different ideas about how to get stuff done. Dictatorship versus democracy.
In practice, WHATWG works better - benevolent dictatorship.

One vision for the two groups - HTML design principles.

Avoid needless complexity
Doctype
Shouldn't the number 5 be in there...?
No. Browsers don't care so much. Browsers make HTML forward-compatible
One exception - trigger. Doctype switching hack.
The HTML5 is the minimum number of bytes required to trigger standards mode.
Meta element
Browsers have ALWAYS supported this!

Support existing content
Syntax very, very flexible and forgiving.
Validator becomes a less useful tool
Tools rather than language should change.
Need lint tools.

Balance good spec with pragmatism

Solve real problems.
Link as a block element.

Pave the cowpaths.
Follow where people are already going.
Desire lines.
Classes become tag names.
But whole new content model in HTML. Sectioning model.
This is basic managing of standalone content, just with tags.
Infinite hierarchy of headers
This was TBL's idea NINETEEN years ago.

Drupal already on the way. Jen Simmonds. Boron project.

Makeovers
Input types
Nonsupporting browsers say "What? I assume you mean text, OK?"
Placeholder text

HTML5 vs Flash
People just mean Flash video versus HTML5 video.
Graceful degradation. Fallback content.
Other way round - fallback for e.g. iPads
Do need multiple formats. All to do with lawyers and patents and other things which are the enemy of the web.
But we CAN use source elements to find out what a browser understands.
Put options in the right order. Firefox tries mp4 but goes blank. ogv first.

Who bought the first fax machine? Ideally video should work across all platforms, right now. But it doesn't. So we don't get full use of Metcalfe's Law.

Priority of constituencies
USERS!
Authors
Implementors
Specifieres
Theoretical purity

Software is inherently political - Jamais Cascio
Design for humans first, machines second - Microformats.org

Mark and Leisa, d7ux

Drupal.org has a code readability standard!
Flies in the face of e.g. Rough Consensus and Running Code. Tao of IETF.

"Accessibility"
Will eventually end up really good. No need for skip nav etc. But it'll take time to migrate accessibility engines. HTML5's forgiving nature gives us that time.
Want to use ARIA role attributes? Use HTML5. it'll be valid already.

"Input types"
Input types push complexity down the stack
Rather than procedural validation via horrible, possible false positives reg ex in the browser, let the browser levels take care of it via your type declaration.
Declarative will always win over scripted procedural e.g. :hover for image rollovers rather than Javascript onmouseover. Because they're easier to author.

"Mobile"
Offline caching strategy
Good Webkit support

"Blink element?"
Font element is gone, as is blink. But these elements are obsolete. We don't say deprecated any more. Deprecated is deprecated. Big element gone. [Small remains, but means "small print"] They're still in the spec. But for implementors, NOT authors. We still have to support existing content.
The b element remains. B means a span of text in an alternative mood or voice. Same with I element.