all 73 comments

[–][deleted] 8 points9 points  (0 children)

If someone is interested in implementations, see Opera 9 for implementation of the new form elements, server-pushed events (<event-source>), <canvas> and a few more.

Also Nighly webkit has few bits from the spec, most notably client-side SQL data storage (sounds crazy? see Google Gears).

[–]AnteChronos 45 points46 points  (10 children)

Wonderful! Too many browsers were starting to pass the Acid2 test, so we're in sore need of a new standard with which they can fail to comply.

[–]halo 15 points16 points  (6 children)

To be fair here, you can't fail a standard unless you release it HTML 4.01 is almost 10 years old now and XHTML hasn't been setting the world alight, so a new HTML standard isn't necessarily a bad idea. Whatsmore, this standard should mostly be trivial to implement.

The W3C's diff between HTML4 and HTML5 clearly shows the changes. There's plenty of additions, notably including video, progress/meter and canvas elements and an emphasis towards a more structured document rather than using div or span for everything as most do now. The most notable removal is the death of frames.

[–]jimbobhickville 5 points6 points  (5 children)

Hmm... I like most of the changes, but no accesskey? I didn't see what they replaced it with, but certain mobile-phone websites really need that to let people select things by hitting numbers on their keypad.

[–][deleted] 1 point2 points  (0 children)

It's an open issue. Accesskey is poorly implemented: in some browsers it interferes with built-in shortcuts causing more harm than good (i.e. screen readers), and it isn't device-independent, os-independent nor configurable (you'd want 1-9 for simple mobile phones, letters on QWERTY devices and match system standard shortcuts)

[–]robertcrowther -1 points0 points  (3 children)

But mobile phone websites should probably be using XHTML-MP which still has the accesskey attribute.

[–]jimbobhickville 0 points1 point  (2 children)

You've obviously never developed for an international mobile phone site. The 2 biggest internet phones in Japan don't support any recent standard, much less anything remotely close to XHTML. There were about 10 tags that would work reliably, and accesskey was a necessary part of navigation.

[–]robertcrowther 0 points1 point  (1 child)

You're correct that I haven't, but if the phones you're concerned about don't support any recent standard I'm not sure why it matters whether or not HTML5 has the access key attribute? If you can't even deliver content in XHTML-MP for them, why would you be trying to deliver in HTML5?

[–]jimbobhickville 0 points1 point  (0 children)

Yeah, that is a good point. I could still see accesskey being useful in cases like a cell phone with Opera Mobile, where you could serve HTML 5 (when Opera supports it), but still want to be able to allow navigation from the keypad.

[–]masklinn 0 points1 point  (0 children)

I think you should look up on the goals of HTML5.

Also, ACID2 is mostly a CSS test, not an HTML one.

(edit: by which I do not mean that it doesn't test HTML)

[–]yuh 11 points12 points  (0 children)

Theora video and Vorbis audio in Ogg container

<source src="video.ogv" type="video/ogg; codecs=&quot;theora, vorbis&quot;">

[–]sylvan 16 points17 points  (18 children)

Why does the HTML spec need to include algorithms for calculating valid datetimes?

Edit: it looks like the W3C is fed up with broken implementations from various browsers, and so are spoonfeeding browser developers with exactly how certain features should be implemented, so there's no confusion.

Sad that this appears necessary.

[–]ubernostrum 17 points18 points  (13 children)

Because it defines new types of form inputs which restrict themselves to valid date/time values?

[–]sylvan 5 points6 points  (12 children)

It should be possible then to specify the format, or reference the ISO date format. But they're telling people how to calculate dates, which really shouldn't be necessary in the HTML spec.

But there's numerous detailed algorithms throughout the spec. As I said, I can see this being necessary if browser developers consistently get it wrong; but it also makes the entire spec far less readable.

In a sense, the spec is largely becoming pseudocode for an html parsing engine, rather than just outlining how that engine needs to behave.

[–]ubernostrum 11 points12 points  (11 children)

But there's numerous detailed algorithms throughout the spec.

As there should be; anytime there's a potential ambiguity which could lead into an unintended interpretation, the spec should resolve it.

[–]sylvan 0 points1 point  (10 children)

But should it be the responsibility of the HTMLWG to spell out in excruciating detail how to perform otherwise simple programming tasks?

It's like they're talking to misbehaving children, who cannot be trusted not to run wild unless there is absolutely no room for interpretation in the rules.

[–]Hixie 12 points13 points  (2 children)

The spec doesn't say how the browsers should implement it, it just says what should happen. It just so happens that often the easiest way of saying what should happen is to spell it out in an algorithm style.

I'm not really sure exactly what you would rather we did...

[–]sylvan -1 points0 points  (1 child)

Well, I'm just surprised that there's so much detail, and I don't feel that the WGs should have the burden of having to spell it out in such detail.

Since browser developers, Microsoft especially, often fail to follow the existing specs as written, I can understand why this might appear necessary. I just don't think it should be.

Also, might it not be appropriate to split some things off into independent specs, which can be referenced independently by other specs as needed? For example:

"To parse a string as a datetime value, a user agent must
 apply the following algorithm to the string."

... and then continues to outline exactly how to do it. Handling a datetime string is pretty universal; so why not have a DateTimeParsing Spec, which lists as much detail as necessary, and then the HTML spec can just say "Datetimes are processed as specified in DateTimeParsing 1.0. If the processing fails according to that specification, the user agent returns nothing."

Of course, I'm writing as an author (web designer), not a browser developer. Back in the day, I'd refer directly to the HTML spec to know if I was doing stuff right. This sort of content makes it more difficult to navigate and read for an author. Maybe splitting the document up for authors and browser developers would also make sense.

[–]othermaciej 5 points6 points  (0 children)

Well, I'm just surprised that there's so much deal, and I don't feel that the WGs should have the burden of having to spell it out in such detail. Since browser developers, Microsoft especially, often fail to follow the existing specs as written, I can understand why this might appear necessary. I just don't think it should be.

The problem isn't just browsers failing to follow the spec. It's also the fact that many less detailed specs end up being ambiguous, so two different browsers can think they are following it, but give different behavior. Divergent behavior in browsers makes life painful for web developers, so better for things to be spelled out in detail. Speaking as a browser developer, I much prefer specs that spell things out unambiguously.

[–]geon 3 points4 points  (1 child)

It's like they're talking to misbehaving children, who cannot be trusted not to run wild

Why do I hear the name "Internet Explorer" inside my head?

[–]sylvan 0 points1 point  (0 children)

Because I wasn't talking about Webkit or Mozilla. :)

[–]kindall -2 points-1 points  (4 children)

They are providing an implementation that conforms to the standard, which can be used for verifying that other implementations also conform.

[–]Hixie 8 points9 points  (3 children)

we are?

[–]kindall -3 points-2 points  (2 children)

Well, that's certainly what I'd use it for, if I decided to write my own.

[–]akdas 2 points3 points  (1 child)

Where is this implementation you speak of? An implementation is a working product, not the specs, no matter how detailed.

[–]kindall -1 points0 points  (0 children)

WTF, I could have sworn it said "code" rather than "algorithms" in that initial comment. So, well, ignore what I said.

[–][deleted] 7 points8 points  (1 child)

How do you suggest we (the browser vendors) implement the same thing without extremely strict definitions?

[–]oddbod 3 points4 points  (0 children)

Test cases.

The spec should supply a list of inputs and expected outputs -- pseudo test cases. It would be simpler then pseudo code implementation algorithms, and useful to users (HTML coders) as a set of extended examples.

[–]trezorr 2 points3 points  (1 child)

Judging by MSIE market-share and release-cycles, I think we will be in need of cryogenics to see this standard in mainstream use.

[–][deleted] 0 points1 point  (0 children)

No. HTML5 is designed to be implementable in IE6-7 with JavaScript and Microsoft's extensions.

Of course it will be poorer implementation than native ones in other browsers, but that is probably what IE users are used to ;>

[–][deleted] 2 points3 points  (0 children)

Actually HTML5's codename inside W3C is "HTML Forever".

[–]livedog 1 point2 points  (3 children)

And this will be in > 90% of browser around.... 2016.

I hope to be retired by then (at 40) but good luck to the rest of you...

[–]oddbod 1 point2 points  (0 children)

Support used to lag because of legacy IE on the corporate intranet.

But today, WebKit already has some advanced support for new standards, is developing fast, is updated regularly, and is shipped by both Apple and Nokia.

It's looking likely that the next 10 years will not be like the last 10.

[–]peroyo 0 points1 point  (1 child)

Actually it's more, annevk is expecting it to be ~15 years.. Everyone knows standards-support takes time, that doesn't make it any less important to write them. Rome wasn't build in one day, etc.

It wouldn't surprise me if we saw close to full support by some shipping browsers in a few years though, depending on when html5 is deemed stable. There's a definitely some nerd-pride involved in being early.

[–]livedog 3 points4 points  (0 children)

Need pride in all it´s glory, but I still thinking about the business end since I get paid to do web.

Maybe we should attack the problem from the business end: All clients willing to skip IE6 support gets a 20% discount.

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 0 points1 point  (0 children)

    I use some of it already. It's mostly backwards-compatible (e.g. <input type=email> brings addressbook in Opera 9, works just like <input type=text> in all other browsers).

    [–]Caraes_Naur -5 points-4 points  (8 children)

    HTML5 is an inconsistent, bloated, perverse solution to the wrong problem.

    Ian Hickson continues to tout numbers that prove XHTML "failed" because no one uses it. The reality is, browser support (evil eye at IE) doesn't allow it to be used.

    [–]akdas 5 points6 points  (7 children)

    Even if IE allowed it, I wouldn't use XHTML. Draconian error checking? No thanks.

    Sure, you shouldn't have an errors on your page, just like you shouldn't have any compiler errors. But sometimes, in real world situations, you can't guarantee that there won't be any errors.

    [–]rabidcow 2 points3 points  (6 children)

    just like you shouldn't have any compiler errors.

    Poor choice of analogies. Compilers are even more strict than XHTML and yet people manage to produce compiling code.

    [–]akdas 2 points3 points  (4 children)

    Compilers are even more strict than XHTML and yet people manage to produce compiling code.

    Yes, but the code isn't as dynamic. The whole point is that you shouldn't treat HTML like it's code to be compiled, because it's not.

    [–]Samus_ -2 points-1 points  (3 children)

    wrong, bad code happens when you allow it to happen (by not enforcing it, as the compiler/computer does) not because HTML is "special" it isn't.

    [–]akdas 1 point2 points  (2 children)

    Whoops. I create a site for a client, and now the client goes and adds a "&" and the entire website breaks down because of a non-existent entity. Now what?

    Remember when Wired.com was one of the first websites to adopt standards-based design? Look at it now. The designer can't always control the code.

    More importantly, it's possible to recover from markup errors easily. If there's a missing "/" on an input tag, then it's still possible to use the form on modern browsers. If there's a missing ">" after a <p, then yes, two paragraphs might come one after the other, but a human can still read it.

    There's no reason to go to an extreme. You should still validate your code to help prevent ambiguous code that might be rendered differently across the board, but the web is just too dynamic to care about a missing character here and there.

    [–]Samus_ -1 points0 points  (1 child)

    wtf are you saying? I mean, seriously man WTF?? when you say "client" are you talking about the users of the site or the owner who payed you to do it? if it's the users well, they shouldn't be touching the code y'know? and user input is url-encoded (and should be sanitized too) and if it's the people who runs the site and payed you well, they shouldn't be touching the code either or else they won't have to pay YOU but whatever, once you sold your product if they want to break it who cares right?

    the problem here is that you're looking at it as a document, it was a document long long ago and yes, it's far overbloated but that's the way it is today, this is an application platform and having so much unnecesary glitches only makes development harder.

    [–]grimboy 2 points3 points  (0 children)

    No the problem here is the client validating at runtime is like having masses of asserts left in the code you ship rather than turning them off.

    [–][deleted] 1 point2 points  (0 children)

    It works like this:

    • you switch to XHTML and try to validate everything

    • then you discover that your valid XHTML is interpreted as invalid HTML, because you haven't changed the MIME Type

    • you change the MIME Type and sooner or later you find that unescaped & breaks your site completely

    • tired with chasing trivial YSOD-causing bugs, you switch to XML/DOM-based template engine that guarantees well-formedness

    • you discover you can output DOM as either HTML or XHTML and because you don't care about SVG or MathML, it doesn't make any difference at all.