Apple & HTML5
apple.com
apple.com
This sets a very poor example for Apple supporting standards.
* Apple might have limited to Safari to keep things simple--to be absolutely sure their demo would work 100%.
* I agree that it sucks that their demos are only viewable w/ Safari. But there are plenty of HTML5 demos out there for us :)
Oh, get a life! How mean you always are, Apple!
And there's the problem: you're complaining about what you think is a violation of the CSS spec by making a reference to a mechanism and practice that was deliberately baked into it.
The authors of the CSS spec specifically accommodated vendor-specific extensions to give browser authors a place to work on supporting emerging abilities that are still in a state of flux. It's a special namespace where features are allowed to incubate. When these relevant standards leave draft status and become 'candidate recommendations', then a simple change will allow browser vendors to support whatever CSS property syntax is approved. When this happens, updating content on the web is an extremely easy change. This mechanism allows browser vendors and spec writers to work concurrently without creating a mess.
So, it's kind of funny that you're complaining about this when Apple is actually doing the right thing according to the letter and spirit of the spec:
http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords
Edit to head your next objection off at the pass: Yes, the spec also suggests that "authors should avoid vendor-specific extensions". This is a message to web developers, not browser developers. Apple does not want a web where every CSS file has "-webkit-" properties in it. They want these emerging standards to be ratified so that the vendor-specific properties can graduate to an official, approved syntax.
Stop hating Apple for no reason.
I ran Chromium with my user agent set to Safari. And here's where it gets interesting.
The demos that don't work in Chromium, notably the ones that require CSS 3D transforms, get removed from the listings on the pages that have them. So for example, the "Transitions" page, only the Dissolve, Toss, Slide In, Iris and Fade Through effects show up. Unsurprisingly, those are the least technically impressive. The gallery demo in Chromium runs at a fraction of Safari's frame rate. Very choppy.
The VR demo gives you an overlay explaining that it's only supported by the iPhone browser, Safari, or another browser with 3D CSS transforms.
So I guess their demos actually detect if your browser meets the spec or not, and remove the stuff that doesn't work. I'm guessing this was the original plan -- let everyone in to show off the HTML5 tech. But then someone looked at the nerfed versions without 3D and compositing and said "that's pretty weak, we don't want that to be people's impression" or something.
Which, given other browser-makers' commitment to supporting the emerging specs, just goes to show that 'standards' is a misnomer in this case. In informal usage that's OK; most of us hope that the standardisation of CSS3, HTML5 and related WHATWG initiatives will happen sooner rather than later. But misapplying the term in your marketing material (linked from the front page) is confusing and unhelpful.
http://www.w3.org/TR/html5/ 'W3C Working Draft 4 March 2010'
http://www.w3.org/TR/html401/ 'W3C Recommendation 24 December 1999'
So by 'recommendation', am I to assume you're talking about HTML 4.01?
(edit: again with the downvotes, no answer...)
To be more accurate Apple should have said that it is committed in implementing HTML5 standard, not that it has done it, because at the moment HTML5 is not ready.
From Wikipedia: "Ian Hickson, editor of the HTML5 specification, expects the specification to reach the W3C Candidate Recommendation stage during 2012, and W3C Recommendation in the year 2022 or later. However, many parts of the specification are stable and may be implemented in products"
He was saying that it is useful well before it is an official recommendation. He is a member of the WHAT-WG and Apple was one of the founding members so what he's saying is pretty much in lock-step with apple and the webkit team.
From here http://wiki.whatwg.org/wiki/FAQ:
For a spec to become a REC today, it requires two 100% complete and fully interoperable implementations, which is proven by each successfully passing literally thousands of test cases (20,000 tests for the whole spec would probably be a conservative estimate)
The candidate recommendation phase, which WHATWG expects to happen next year is a much more relevant date. That aside I do wonder if this level of effort isn't just wasted pedantry.
But my point was that giving impression that one company already has it all ready is stretching the truth as HTML5 is still a moving target.
"The upstream work is not sufficient for what we will need. It is only the beginning of the work. We would need to offload compositing to the GPU."
Sounds like Apple decided to enable the existing WebKit implementation while Google is working on their own implementation. (which could very well end up back into WebKit proper at some point) This is exactly how standards in the context of friendly competition are supposed to work. You can't really expect everyone working off WebKit code to coordinate when certain features or standards support are turned on in beta or public releases.
In reality, all of the CSS transforms and effects (and plenty of other Safari features) were created by Apple without input from any of the other browser vendors or standards bodies. Some of those things have been picked up, some haven't. I actually think this is the right way to do things, and I don't want to give off the impression that I don't appreciate what the Safari team has spent the last few years doing, but I'm also not wild about letting Apple distort the picture for the sake of scoring PR points against flash (which is what this website is all about).
The difference is between adopting open standards that others haven't gotten around to yet
versus inventing your own undocumented functionality for the purpose of making compatibility impossible.
Apple is further down the track. MS was trying to derail the train.
Making you download Safari does seem a strange choice. But then, the whole point of the page is "look how well these things work in Safari", so why not?
Standards should work everywhere IMO
By this definition we hardly have any standards. Say hello to IE6.I am a member of WHATWG mailing list so I can see how standards are born, and this level of misunderstanding about web standards in general and HTML5 in particular really saddens me.
Can you, or any of the dozens of upvoters, explain the logic behind that criticism? It literally seems to make no sense to me, so I must be missing something. The page talks about emerging web standards and talks about Safari and Apple's support for them. It mentions that not all browsers support all of the latest standards, and then it gives examples of some of the latest standards that Safari supports. So, huh?
It doesn't say 'emerging'. It says 'reliable'.
> It mentions that not all browsers support all of the latest standards, and then it gives examples of some of the latest standards that Safari supports.
Except that it doesn't. (a) because the specs are still in draft, and (b) because independent tests show Safari's support to be impressive but nowhere near complete.
#gallery-demo .grid2d figure:nth-child(5) { -webkit-transform: translateX(-241px) translateY(-3px) scale(.45) translateZ(1000px);}
If you accept -webkit CSS extensions as a standard, then Internet Explorer has supported the CSS opacity attribute for years: filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
These extensions are not part of the CSS3 or HTML5 spec.DXImageTransform.Microsoft.Alpha, on the other hand, wouldn't be part of CSS3, and uses its own specific syntax.
[0]: http://www.w3.org/TR/css3-3d-transforms/#transform-property
IE's transform filter uses only matrix, which scares the hell out of designers.
This explains how vendor prefixes fit into the standards process.
Contrast with Chrome's Experiments (http://www.chromeexperiments.com/) that you can try on any browser and see how it copes.
Edit: lots of the demos work perfectly well in Chrome if run from here instead: http://developer.apple.com/safaridemos/
You’ll need to download Safari to view this demo. This demo was designed with the latest web standards supported by Safari. If you’d like to experience this demo, simply download Safari. It’s free for Mac and PC, and it only takes a few minutes.
As you see, it doesn't mention that MY BROWSER doesn't support the latest web standards. It simply says, that Safari supports web standards and that if you want to check the demo, download Safari. If you don't want to download Safari, you won't see the demo.
The Message is clear.
OK, so it's an advert, but it's a misleading one.
(navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) headers['Connection'] = 'close'
It does use emerging web standards. Just because some of them are not reliable everywhere does not discount that it’s all to be found in W3C and WHATWG draft specs. Note the HTML itself: They’re using <article>, <figure>, <header>. It’s really HTML5. (Remember, we consider things “standard” even before IE supports them.)
This is not meant as a compendium of current best practices. Progressive enhancement still applies in the real world. Apple knows that.
If you are criticizing this for being not cross-browser enough, you are completely missing the point.
If you want to do things progressively, there should be a feature matrix, and as more and more enhancements are fully implemented in all major browsers, one shouldn't be able to specify which browser you must use.
It's probably just my ignorance. But it's not clear to me where the lines are between best practices, web standards, and fairness (forcing a browser of course evokes nightmarish legal history a la Microsoft).
I suppose I should look through:
http://lists.w3.org/Archives/Public/public-html/
If anyone can point me in the right direction though (or maybe I'm asking the wrong questions), that'd be cool.
I suppose the risk is that because HTML5 has so many different features, it would be easy to basically not standardize. If Apple is the only company that fully supports interesting parts of the standard and they keep on iterating and nobody catches up -- is that really a standard? But are we right to deny them further development and innovation? I think there's a balance, but where is that balance? We've now got a lot of cooks in the kitchen:
http://www.w3.org/2000/09/dbwg/details?group=40318&publi...
Hope it works. But you know what they say about committees, second-system syndrome, etc... Though honestly it's not like I see any other solution....
Though an easy to browse website that showed near real-time progress of all the major browsers' implementations of the HTML5 feature set, so we can at least see the playing field. That might be a start.... I definitely think it's in everyone's interest to cooperate.
ETA. Found this for HTML5/CSS3 feature matrix:
Web standards circles agree that "browser sniffing" as opposed to "feature detection" is kind of evil. (See http://modernizr.com for one way to do it right.) This, however, is a very special case, where the whole point is showing what ones specific browser can do.
Generally, the user's browser is irrelevant to the point of a website, and supporting as many browsers as possible is best.
In this case, the user’s browser matters most, as no other browser currently has 100% feature parity with Safari features used in these demos.
On the other hand, browser sniffing, as you mention, is a slippery slope. Maybe all they might do is acknowledge that until other browsers have fully implemented 3D CSS, etc., they are only recommending Safari.
ETA: Never mind, I went back and read the page:
Not all browsers offer this support. But soon other modern browsers will take advantage of these same web standards — and the amazing things they enable web designers to do.
Good enough I suppose...
Apple using "-webkit-" is actually preserves the "open" and "standards" parts of "open standards". Otherwise it’s embrace and extend. (http://en.wikipedia.org/wiki/Embrace_extend_and_extinguish)
Edit: For clarity, this is how things like -webkit-transform are born (slightly simplified):
1. Apple (or Mozilla, or Opera, or Microsoft) decides it would be nice if the web stack could do X.
2. Apple devises a property and syntax, implements it internally, evaluates performance hits, iterates, etc.
3. Apple releases a public developer build (a "nightly") with X, using the -webkit- prefix, and blogs about it. http://webkit.org/blog/130/css-transforms/
4. Apple drafts a spec (no "-webkit-") and submits it to relevant standards bodies
5. Standards bodies, browser makers, and document authors weigh in
6. The draft is modified, clarified, dropped, and/or implemented elsewhere. http://webkit.org/blog/130/css-transforms/#comment-23010
7. The draft becomes more or less finalized, and user agents should support X without a vendor prefix
> there are situations (experiments, implementations of W3C drafts that have not yet reached Candidate Recommendation, intra-nets, debugging, etc.) where it is convenient to add some nonstandard identifiers to a CSS style sheet.
Most extension Apple used in the demo page are part of CSS3 Working Draft, including CSS transform[2].
But when Apple does it? A barrage of complaints about how Apple doesn't support standards. It's laughable how transparently people are looking for something, anything to bitch about when it comes to Apple, no matter what they do.
Once you're suspect, you're suspect. If you've got the benefit of the doubt, you've got the benefit of the doubt.
Overall, that's probably more good then bad. We'd like to think we can be objective, but we probably can't. These crutches are there for a reason.
Google has Chrome Experiments, open to everyone. Google gets kudos for letting everyone play with different browsers.
Apple has this demo, open to only Safari users. Apple gets the tut-tut'ing because it's not letting people decide for themselves.
Do you see the difference?
Apple wanted to show some very shiny html5 demos and that is fine. There is a good chance that everything shown there will be working across all the major browsers in a not too distant future. (Yes they have have to loose the vendor prefix -webkit first, but that is actually the recommended way to use non-finalized preview features of the emerging standards).
I see this as Apple pushing the html5 wagon forward, the same as the other major browser vendors do. Have you tried Internet Explorer 9 Preview demos in other browsers?
Finally the html standard is moving forward again after years of standstill. How anybody can complain about that is beyond me.
Cheers!
-1 for being Safari-only.
Then again, when you think about it - the Safari-only filter implicitly tells people that Safari is the 'only' browser (or the best browser) currently supporting HTML5; that other browsers have to play catchup.
First the book publishers, now the ad agencies. The creative sector has really been in SteveJ's focus for the past half year.
HTML5: The standard that only works on Safari
I don't think that's the message they're trying to get across, but it's the one they're sending.
Edit: that said, imho, the original link is somewhat misguided. It brings up an interesting question: is Apple responsible for targeting all platforms, or at least all major platforms that conform to a standard? Even if those standards aren't fully implemented among different browsers? And wtf, Apple, I wanna play checkers... Some of the demos run really well on Linux though. But I mean -- are they responsible for all platforms? Or maybe they're just responsible for not misleading people into thinking that they must choose their platform? (The issues in Microsoft's antitrust history rise again.)
Anyway, for my money I don't think the future of the web is via the traditional browser -- but I'm sort of in left field in this regard. But yeah, there are maybe deeper issues that haven't really been resolved...
They also use SproutCore, jQuery (or have used it), Gianduia, and for the WWDC schedule it seems that they use something else, possibly custom.
Most of them (except VR) seem to work for me in Chrome on Ubuntu (5.0.375.55 beta).
As I see it - I'll stick with Flash. I like the idea of write once and deploy everywhere, which worked pretty well for me until the iTouch/iPhone/iPad came along.
Scene graph engines are hard to build, much like vector graphics engines and font rendering engines.
That said, Clutter ToolKit (the same one Chrome OS is using for its windowing manager) is about the closest open source ready-to-go replacement that can do 80% of what is needed by WebKit to do CSS 3D on top of OpenGL. It's on Google's list to add to Chrome, but not for awhile.
Google seems to be favoring WebGL over CSS 3D (too much detail to discuss pros, cons, and the politics here), and is making WebGL implementation a higher priority for now.
don't hate on people trying to push the web forward. everybody is going it in a very fair, open, democratic method as trying to implement ideas as quickly as possible.
I want to see how the other browsers stack up in their demos and think it's short sided of them to not allow that to happen.
If they showed me a game with a background track and multiple layered, triggerable sounds (like just about any Flash game or iPhone game out there) I would have been a little more satisfied.
The gallery was also suprisingly sluggish on my core 2 quad machine with a somewhat super duper video card.
"I'm happy I rejected doing anything for this apple/html5 page. They should rethink their policy and give credits to the authors."
sigh...
C'mon Apple, we all know Chrome and Chromium can display your HTML5 too. Probably Opera as well.
(if you are going to downvote me, at least say why not)