Is it safe now to develop web application with HTML 5 specifications? or should we wait longer for final standards?
I want to start developing a new project. I want it to be up to date in every aspects. should I wait more for html 5 or I can start programming based on it?
It all depends on your audience.
If most of your audience is going to be fairly hip web developers that know to use a decent browser, you are probably going to be fine using HTML5.
However, if your audience is any government institution (school, etc), business place, etc, you might not want to use it yet. My school currently runs on Internet Explorer 6/7, and one of my teacher constantly complains about that "Your browser is not supported" message at the top of Youtube. These people probably don't have any control over the browser they use, and might be a bit behind due to the IT guys.
Find your audience, and use what you are comfortable using with them.
It depends what you which features you want to implement. HTML 5 is a very broad standard covering video, dynamic bitmaps, geolocation, more semantic tags etc.
No browser has implemented all HTML5 features, all have implemented some
This will tell you most of what you need to know about and which browsers support it.
http://diveintohtml5.ep.io/
Which part were you particularly interested in? Many people want to use canvas which is the dynamic graphics tag (simulates svg in an element). Canvas works on all major browsers except IE, though support for canvas is predicted in IE9
It depends on your audience. If they have the latest browsers then you can start using parts of HTML 5. If you don't have a good understanding of your user base then you might want to use web analytics to understand the capabilities of their browsers. Developers tend to have newer browsers but corporations or schools may not. You should also do some research on HTML 5 and understand if you can get up to speed with it quickly if deployment time is a concern.
Use progressive enhancement. A lot of the HTML5 features (application cache, the custom form fields, the extra semantic tags) will do no harm in unsupported browsers (though you might need the HTML5 shiv from Remy Sharp), but give a bonus to users and spiders who can use them. Other features (video tag, database storage, web workers, geolocation) can use workarounds for compatibility with older browsers - the Modernizer library linked by Mark Pilgrim makes this very easy. If your app is usese Geodata, for example, you could use the browser-based geolocation where available and fallback to something IP-based.
Related
I currently work for a large company and I design for their high-traffic ecommerce website. We support tens-of-thousands of users across a variety of browsers. Our current browser stats point to most people using either Firefox 3+ and IE8. There are about 5% of users still on IE6.
Is it time to start coding for the future and impliment HTML5 across the site? Is it a responsible thing to do or should I wait a year for people to upgrade to better supporting browsers?
Thank you.
HTML5 isn't one specific thing. You can start using it even in browsers that have no idea what HTML5 is. If you just start using some of the extra tags or form types, they degrade perfectly into standard elements in older browsers. Video needs a Flash fallback anyway. The advanced scripting features all need fallbacks for non-supporting browsers anyway, or must only add non-essential functionality.
In short, sure, start using HTML5 techniques now to provide advantages for cutting-edge browsers, just make sure it all degrades nicely in older browsers.
IE8 doesnt support most of HTML5.
There are libraries you can use to make it more HTML5 aware; but for a large production site I think your better of waiting a year.
I would say that the 5% of users still on IE6 will probably remain on IE6. They either aren't interested in upgrading (perhaps they don't know about these things), or are restricted to IE6 by security policies in their workplace. In particular I've found that a number of our clients are not upgrading from IE6 because their IT teams consider it to be too big a change, or their existing software is not compatible with anything else.
Therefore, my advice is: go HTML5. With a bit of work you can work around IE6's deficiencies (look at Modernizr, CSS3PIE for ideas). And that way, the other 95% of customers get a better experience.
... what is "large"? Considering HTML5 is still considered work in progress, I'd vote no.
The name "HTML5" is tending to be used by most people at the moment to describe all the exciting new features in web browsers. Not all of these features are actually part of the HTML5 spec - for example, CSS and Javascript have new features which are being referred to under the HTML5 banner. I'm going to assume you mean all these features.
My answer would be to investigate which features you can implement, but remain backward-compatible. Many of the features of HTML5, CSS3, etc can be added to your site without making it un-usable for older browsers.
Some examples: (but do spend time researching for more)
New input types, such as <input type='date'> and <input type='number'>These give you new features in a modern browser, but old browsers will still show a normal input field.
More info: http://www.456bereastreet.com/archive/201004/html5_input_types/
Semantic HTML5 tags, such as <section>, <footer>, etc.
These give you additional semantic meaning to your HTML tags, which is good for SEO and other automated systems that look at your site. They are broadly backward-compatible, though in order to support them in IE6/7/8, you will need to include an IE hack such as HTML5Shiv. However, I would suggest using Modernizr, which includes the HTML5Shiv plus a stack of other useful functionality.
Some CSS3 features such as border-radius. IE doesn't know about this, but the result is that IE will have square corners and other browsers will have rounded corners. So nothing that breaks the site for IE users.
But if you really want to, IE can be made to support a number of CSS3 features, including border-radius, using tools such as CSS3Pie.
Instead of using SVG graphics directly, use a Javascript graphics library such as Raphael, which will draw SVG in browsers that support it, and fall back to VML for IE (which will even work in IE6).
Obviously stuff like the <video> or <canvas> tags aren't going to work in older browsers, but frankly, it'll take you long enough just implementing the features you can use straight away; by the time you're ready to take a step further, things will have moved on anyway.
More of my clients lately are asking me about HTML 5 and I'm trying to get a sense of what to tell them. How long until all the major browsers have standard support for it? How long until I leave HTML 4 behind and only code new projects in HTML 5? What are you telling your clients?
Are they asking about specific HTML5 features or HTML5 in general? At my company we haven't said anything to the clients, but we do set the HTML5 doctype as well as using some HTML5 markup - but only markup that works in non-HTML5 compliant browsers. HTML5 doesn't necessary mean you discard older browsers, it depends on which features you implement. You can still use audio and video tags, as long as you keep a flash fallback - as an example. HTML5 form tags are poorly implemented even in bleeding edge browsers, so using them are not an option.
I suggest you read Dive Into HTML5 to see how you can work with HTML5 today, but still support non-HTML5 browsers.
I'll throw in another link; Modernizr is a JavaScript library that come in handy if you want use bleeding edge HTML5 or CSS3 features, it detects support for HTML5 tags and some (all?) CSS3 properties.
You've already gotten some good answers, but I'll chime in as well. I wouldn't give your client a blanket "yes" or "no" on html5. I'd take a look at what all has changed and then break it down into sections based on how well it's supported.
The Doctype:
Nothing is stopping you from switching to the html5 DOCTYPE today. Even browsers that don't understand html5's new tags (most notably IE 6-8) will recognize <!DOCTYPE html> as a valid doctype and not switch into quirks mode. After declaring that your document is an html5 document, you're free to use (or not use) html5's new tags to your heart's content. Personally, I've started using the html5 doctype on websites -- even if I have no immediate plans to use html5's new features -- because there isn't any negative side effect, and as a bonus I don't have to try to remember the correct way to write a doctype and charset everytime I start a new page (which I have to do with html4/xhtml).
New (Layout) Tags:
Next, you have to figure out why your client is interested in using html5 in the first place. My guess is that they're interested because it sounds trendy and cutting edge. In reality, one of the biggest benefits of many new tags (such as <section>, <nav>, <footer>, <aside>, etc) is that they make your code much more readable than it would be if the page was filled with <div>s everywhere. This is a great advantage for the coder (and in the future it might help with accessibility), but right now, this change probably makes very little difference to the client.
New Features (Video and Audio):
Alternative, the client might have specific html5 features that they want their site to use. Two of the most popular are the <video> and <audio> tags. The great thing about these is that you can easily fallback to Flash, so you don't have anything to lose (as far as browser support goes) by using them.
Complex Features:
Other popular new features are <canvas>, geolocation, and local storage (not exactly html5, but related). For these, the fallbacks (if they exist) require a lot more work on your part. If your client really wants these features, you'll need to figure out which browsers they (or their customers and site visitors) are using, and what percent of their target audience they're willing to leave behind.
Conclusion
That got a little long-winded; long story short, I'd tell your client this:
"I'll gladly start using some html5 features immediately. Remember, though, that the specification is not finalized, and it will continue to change over the next 10 years. Around 50-60% of our clients may be using browsers that don't support some of html5's new features, so we'll need to do thorough analysis before adding certain complex features of html5."
If the clients are OK with using the browsers that support HTML 5 for their applications, then why not :)
If they don't want to use the browsers (and versions) that doesn't support HTML 5, then they can't have it, thats what I would say.
Edit:
OK let me put it this way. If they are asking for a suggestion, then ask them what browsers and versions are they comfortable with, if they fall into the area where HTML 5 is supported, then tell them that they can move to HTML 5, adding that its in a nascent state, but support is growing at a good pace.
How long until all the major browsers have standard support for it?
Never. If you look at HTML5 as a whole (which you shouldn't), no broser will ever support it. For each browser, there will always be dozens of features defined in HTML5 which the given browser does not implement.
How long until I leave HTML 4 behind and only code new projects in HTML 5?
The language hasn't changed. It's still HTML. So, you cannot say "I code in HTML 4" or "I code in HTML5". You code in HTML.
HTML5 introduces new features. For each feature, you decide independently if you want to use it in your projects. There is stuff defined in HTML5 that you can use today. On the other side, there is stuff defined in HMTL5 that currently isn't implemented in any browser. The point is, it depends on the given feature.
Another key question is: What browser(s) do the majority of your clients use? Since medium to large size companies tend to be very resistant to changing browsers, what they use now is what they're likely to use for the forseeable future.
For clients using mostly Firefox, the answer is that Firefox supports a good deal of HTML5 now (version 3.6), & even more in version 4 (2011). For clients using mostly IE, they'll have to wait until version 9 (2011).
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I know it will be 'finalized/made official' in 2012 (and something to do with it being given 'Recommendation status' in 2022), but I'm wondering if it's a good idea to make a site using HTML5 now.
A simple portfolio sorta site? Given that most users (most people using IE) won't have support for it, although IE9 (shock) will be shipping with support.
There is no one monolithic HTML5. HTML5 is being developed as a single large (oh so very large) document, yes, but that doesn't reflect reality(*).
That is to say, HTML5 is a collection of loosely related incremental improvements to HTML4. Some of those new features are widely implemented already. Some of them you can safely use knowing that they'll degrade usefully for old browsers. Some of them you can use as long as you add explicit fallback code. Some of them will be shutting out some browsers for the foreseeable future. Some of them will only ever have minority support. Some of them may never be implemented at all, or may yet be edited out of the standard. And many new features that are often regarded as being “HTML5” aren't in HTML5 at all, but other standards (CSS3, ECMA262-5, DOM extensions, WebSocket...).
You will have to pick and choose which the features of the New Web you want individually, judging by current and apparent future support. There's not a switch for ‘using’ vs ‘not using’ HTML5, other than merely the doctype itself (which doesn't get you any new behaviour).
*: This was a big mistake, in my opinion. It would have been better to quickly standardise the bits that were already supported by everyone—like HTML3.2 did after the HTML3.0 fiasco (XHTML2, anyone?)—and then add new features in a more modular fashion. But that's not what happened, and it's too late to do much about it now.
It is a good idea to prepare your website for HTML5, but please be backwards compatible to allow users with a browser that is not yet "ready" for HTML5 to be able to view your site, event if that means limited functionality. That way, users with the latest browsers will reap full benefits, but those of us who are not on the bleeding edge will still be able to view content. As you can see, I feel somewhat strongly about this topic, but hey, I'm a realist.
Also, keep in mind that there are technologies like Silverlight and Flash, today, that can support rich functionality, if you want to allows non-HTML5 compatible browsers to also view such content.
There are people that wanna be progressive, those are the ones that bring the change, and I figure your one of them. So my advice would be, sure, cool, use it, just with care that users whose browsers don't support it also have decent experience.
Things that might help:
http://code.google.com/p/html5shiv/
("Public repo for the latest HTML5 JavaScript shiv for IE to recognise and style the HTML5 elements. ")
Also, as new user i can't post more than one link, but look for css3pie:
("PIE makes Internet Explorer 6-8 capable of rendering several of the most useful CSS3 decoration features.")
Once IE 9 is released, all major browsers vendors will support a large subset of HTML5. http://caniuse.com is a very useful site for answering the question "Which HTML5 related feature can I use now (or in the near future)?"
Updated (to address #Crusader's comment):
By some measures the market share of browsers without at least some HTML5 support (i.e. IE 6,7,8) is now lower than 50%. In other words, the era of HTML5 has already arrived.
With the arrival of IE 9 soon, I predict the share of browsers with no-HTML5 support will fall to less than 25% in the next 12 months. And for those who refuse to upgrade (or can't because of corporate policy), Chrome Frame allows easy use of HTML5 in IE 6,7, and 8 for sites that need to support those browsers.
Or consider: the only reason MS is implementing HTML5 features in IE 9 (instead of continuing to put all its eggs in the Silverlight basket) is because they know HTML5 has already arrived and they are late to the party.
Certain bits of HTML5, sure. Almost all new elements introduced in HTML5 can be used already, thanks to the html5shiv, and if you provide a suitable fallback you could be using <video> and <audio> as well. Those, along with the more advanced scripting features (local storage, etc.) are the features that will take time to implement.
Also, while Mark Pilgrim's Dive into HTML5 mostly discusses features that won't be available for some time (at least not in IE, i.e. the majority of web users), the chapter on semantics is both interesting and applicable.
Also keep in mind what your target audience is; if most of your visitors are from the designer community (or whatever), most of them probably have a browser with HTML5 capabilities. WebKit browsers already support much of the HTML5 draft.
The thing you should understand is that html5 is not ONE big thing, it is a lot of bits and parts that you will start to use envtually here is a extract from Dive into HTML5
It’s not one big thing
You may well ask: “How can I start
using HTML5 if older browsers don’t
support it?” But the question itself
is misleading. HTML5 is not one big
thing; it is a collection of
individual features. So you can’t
detect “HTML5 support,” because that
doesn’t make any sense. But you can
detect support for individual
features, like canvas, video, or
geolocation.
You may think of HTML as tags and
angle brackets. That’s an important
part of it, but it’s not the whole
story. The HTML5 specification also
defines how those angle brackets
interact with JavaScript, through the
Document Object Model (DOM). HTML5
doesn’t just define a tag;
there is also a corresponding DOM API
for video objects in the DOM. You can
use this API to detect support for
different video formats, play a video,
pause, mute audio, track how much of
the video has been downloaded, and
everything else you need to build a
rich user experience around the
tag itself.
If you are really interested you will find this very interesting!
Realize that html5 is a blanket term. Using the doctype is just the start. I wouldn't start including advanced webkit animations in all your sites, but using border-radius and box-shadow will work with most(minus ie) browsers and degrade gracefully.
Just read an interesting article by yahoo's Nicholas C. Zakas: What’s a web browser?
How do you best balance implementing new technologies like HTML5 and CSS3 while keeping support for browsers like i.e 6, is it a practical approach to day to day web development where deadlines must be met?
I think it really depends on the type of site you are building as well as the type of intended end users. If you are building a site for a band, they tend to use a lot of flash/silverlight to make the interactions "cool" and more fluid. This would be an example of when to go all out with HTML5 and using canvas to accomplish some of the same effects. Obviously IE6 wouldn't work, but with more and more major companies dropping support for IE6 (Google included for gmail) it is becoming less and less of an issue as time passes.
If you need to develop a site where people will still heavily use IE6 then you might want to stay away from using the latest technologies. The pain you would go through to get things to work might not be worth it in the end especially if deadlines are tight and if you are not an expert.
Then there are the cases in the middle and here I think you need to think long and hard if you want to keep supporting IE6. I know a bunch of people who have dropped support and have found it much easier to strike the balance between CSS3 and HTML5 with the other browsers. It's still not perfect, but much easier to work with in the end.
It depends on your traffic and who is spending money on your site. For us, it's necessary to continue supporting IE6 because a not-insignificant amount of money is spent by those users, and we're not in a position to compel them to upgrade. (If they're spending time upgrading, they're not spending time spending.)
If your site is not commercial then you should have a lot more freedom in determining minimum browser requirements.
On one hand, the market isn't ready for HTML5 and CSS3-only sites. However, on the other hand, if at least a bit possible, one should avoid support for IE6 and older (see the IE6-no-more movement for inspiration) because it's good for the industry and the average internet population to get rid of obsolete and problematic technologies.
If you wish to create a modern website I.E. HTML5 then I would recommend you take a look at http://html5boilerplate.com/ If you look at this boilerplate you will notice they take advantage of the modernizr JavaScript file to bring HTML5 support to older browsers.
I also strongly recommend you read Aaron Gustafson's Understanding Progressive Enhancement The idea behind progressive enhancements is that your site will look the best if viewed in a browser that supports modern CSS and HTML5 selectors/features while still providing a baseline for legacy browsers. There is a follow up article to Progressive Enhancements that is also worth a read http://www.alistapart.com/articles/progressiveenhancementwithcss
It depends on you audience, doing HTML5 and CSS3 heavily is acceptable only when you are sure your users will use only modern browsers. ( never been so lucky yet )
For now, you can consider them only for progressive enhancements. That is, you make a site working fine in IE6, and then you add features like round borders/shadows , the <video> tag or speeding up the site using local storage just as a bonus for the wiser users.
I'm starting a big project in few weeks, and all I can do is to make it HTML5 ready using the right doctype, the new tags and the few lines of javascript that will make it compatible with the old browsers, but will not use any cool feature for now.
I keep hearing about html5 and seen on other questions/answers on this site that the current browsers do not yet support it...what I know:
it has potential to replace flash and silverlight
Google seems to be building new systems to take advantage of it
(is that correct?)
What I don't know (which is a lot, but will limit it to some points of interest):
how will existing sites work within a html5 browser (backward compatible?)
is Flash/Silerlight really gone? will they be supported? (I'm sure adobe will not be happy)
is javascript impacted? improved? will jquery still work?
is there a good site listing (high level down) what the html code impacts are?
W3C has a working draft of the differences between HTML 4 and 5.
Google seems to be building new
systems to take advantage of it (is
that correct?)
Correct
Google Bets Big on HTML 5: News from Google I/O
HTML5 and The Future of the Web
HTML 5 is a mess. Now what?
http://html5doctor.com/ is probably a good place to answer a lot of that.
Stop thinking about it as a new version. Think of it as just another step, building on what we have and introducing some new elements that let us do new stuff.
Read up on the new elements and what browser support they have, then start using them where they help you (remembering to use the right doctype).
To answer just one question:
"is Flash/Silerlight really gone? will
they be supported? (I'm sure adobe
will not be happy)"
Yes, they will be supported, since HTML5 still has the OBJECT tag and this is what is used to embed external content (such as Flash etc).
For starters, it can work in older browsers. I've got it working in most major browsers in a reasonable span of versions: http://www.stevefenton.co.uk/
Flash and Silverlight will still be a part of the internet, but what they want to do is make it possible to have video content (for example) that doesn't need a plug-in to play it back. The idea is to pick a format that all browsers will support (this is more difficult than it sounds as the codecs might require licensing, or if they don't - might not be that good).
ALL browsers that support HTML5 will also display HTML4.01 and XHTML websites.
JavaScript and jQuery WILL continue to work.
Check out the http://www.w3.org/ website for the full specifications (in draft).
how will existing sites work within a html5 browser (backward compatible?)
Just fine. HTML5 is, as far as possible, backwards-compatible. Of course, some new HTML5 tags/APIs don’t work in older browsers (although many, like the new form field types, degrade gracefully), but much of HTML5 merely specifies, and builds on, how existing browsers parse HTML.
is Flash/Silverlight really gone? will they be supported? (I'm sure adobe will not be happy)
Adobe and Microsoft haven’t cancelled work on Flash and Silverlight, and no browser-makers (not even Apple) have said they’re removing their plugin APIs. So no, Flash and Silverlight are not gone.
is javascript impacted? improved?
The HTML5 spec both defines the DOM interface for HTML (which previous HTML specs didn’t do), and adds new browser JavaScript APIs (e.g. for data- attributes and geolocation). JavaScript the language isn’t affected though, as it’s specified in the ECMAScript Language Specification
will jquery still work?
Yes.
is there a good site listing (high level down) what the html code impacts are?
You don’t have to change any HTML code for it to continue to work.
As mentioned in other answers, the W3C has a decent document of the changes from HTML4:
http://www.w3.org/TR/html5-diff/
And Dive into HTML5 is a great intro if you’re familiar with HTML 4, especially it’s introductory “5 things you should know” chapter:
http://fortuito.us/diveintohtml5/
http://fortuito.us/diveintohtml5/introduction.html