Escaping IE's compatibility mode? - html

I work for a private company writing web apps. Most of the web apps were written prior to me and require users browsers' to be in compatibility mode (IE8-10).
For my IE10 users, I'd like to start implementing HTML5 features. Given an application that's in compatibility mode and uses frames/framesets, is there a way I can run in compatibility mode for most of the application but escape a frame and have that run using HTML5? Should I not being using frames to achieve this? Would an iframe work?
The HTML5 frame I'm referring to does work, but only when the browser (IE10) is in standards mode.
Thanks.

is there a way I can run in compatibility mode for most of the application but escape a frame and have that run using HTML5?
No, you cannot. A frame will always inherit the parent page's document mode.
Should I not being using frames to achieve this? Would an iframe work?
Ideally you shouldn't be using old-style frames for anything; they've been considered obsolete for a very long time. That's probably outside the scope of this answer though.
But no, switching to an iframe won't make any difference in this context.
Your only options are:
convert the existing code to use standards mode,
convert the new code to use compatibility mode, or
open the HTML5 page in a completely new browser window.
Given those options, I expect you will probably give up and go with option (2) as the easy way out. Or (3) if you really need the new browser features.
But I'd encourage you to consider option (1). It is often a lot less work than you'd think to convert a site to work in newer modes. Do you know what the exact issues are that are holding it back?

Related

load different page depending on frame suport

I have a simple frameset which works fine and when frames arnt supported it shows a link to the frame free version. What I would like is for the page to redirect to the frame free version if the browser doesn't support frames. I have googled without success and I am sure it can be done but as yet I haven't worked out. Ideas please?
You can use 'Browser Sniffing' and blacklist those without support however this is generally a bad idea.
Also you should avoid using frames are they have been dropped from HTML5 and are an accessibility nightmare
Use either CSS positioning or iframes to achieve similar results

What is the Best Tool to Automate HTML5 Backwards Compatibility Testing in Various Browsers

I'm using Modernizr to make my HTML5 site backwards compatible. It's great, but is there a tool to run automated, headless tests which will parse my HTML for HTML5 features, then test each my code and its features in numerous browsers, and generate a report that I can use to add any polyfills I may have left off or know that I've successfully covered all of my bases using Modernizr?
unfortunately, no. Such a tool has not been made publicly available by anyone.
Even if there was, it would be extremely difficult to do properly. Some things have polyfills that shouldn't be used (see rounded corners and OldIE), or the polyfills that do exist may not be needed in some/most cases.
This is something that is best left to the developer to properly check and test during development.
My basic workflow whenever I am using a feature that I am unsure of, is
check caniuse.com, comparing the data to my own analytics to determine if I even need to detect it. if no - stop. If yes...
Add the Modernizr test for that feature. If a polyfill is needed, then...
Add yepnope test, loading one of the polyfills listed in the metadata filed of Modernizr v3 detect.
rinse, wash, repeat

Pure HTML5 videoconference

I want to make a single web application avoiding any flash code. This application must contain videoconference, and I want to implement it in pure HTML5. It is possible? I know about websockets, but don't know really if videoconference can be implemented through them with a relative performance (at least, 24fps + sound at a right resolution, minimum 640x480), and both endpoints being web apps (both endpoints should use browser).
Thanks in advance
Anyone following up this question - on Feb 4th, 2013 they produced the solution with WEBRTC in Chrome and Firefox. For examples see https://hacks.mozilla.org/2013/02/hello-chrome-its-firefox-calling/ or http://www.html5rocks.com/en/tutorials/webrtc/basics/ or https://code.google.com/p/sipservlets/wiki/HTML5WebRTCVideoApplication
You can't really use HTML5 video for live streaming at the moment, and it doesn't have support for web cams yet.
Ericsson has modyfied a WebKit browser and is showing how this can be done with hopfully upcoming HTML5 Stream API. See Beyond HTML5 - Implementing and stream management in WebKit
It is impossible to capture web-cam images/microphone feed just through JavaScript (although there are plug-ins which let you handle output through flash), so it would be necessary for you to have some kind of application/plug-in installed.
The speed part is just for the client to worry. I mean, web sockets will be as fast as the connection permits.
You should do some research about web workers, since they would be very useful for speeding up your application (you could have microphone interface, web-cam interface and UI all with their particular worker, thus never blocking the application or rendering it unresponsive).
EDIT: the aforementioned jQuery plug-in works through the use of <canvas>.
As Jonas said, according to the situations now, we can't build video conference with HTML5. There are many limitations with browsers also. As there is no common video codec supported by all browsers. And live-streaming is also properly supported by safari only(using HTML5 video tag). As per my experience we can't build live-streaming on windows with any browser properly.
But if you wanna get some information about live streaming see https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html
you can use this source to test your live-streaming examples
"http://xfunoonx.api.channel.livestream.com/3.0/playlist.m3u8"
This content will work only with safari on Mac.

Does HTML5 change anything if I don't use video or audio?

I keep hearing all about HTML5 and how great it is, but if I don't really care about audio and video, is there anything it really changes for me? I've read up on the new tags it supports and they just don't seem to be all that revolutionary beyond its video and audio capabilities.
Shamelessly copy-pasted from wikipedia:
The canvas element for immediate mode 2D drawing.
Timed media playback (possibly not interesting for you)
Offline storage database (offline web applications). See Web Storage[21]
Document editing (via DOM API and user interface)
Drag-and-drop
Cross-document messaging
Browser history management
MIME type and protocol handler registration.
Microdata
Browser-based SQL databases
Oh, and WebSockets to replace AJAX and Comet.
http://en.wikipedia.org/wiki/HTML5#New_APIs
DOM storage
Canvas
Drag'n'drop
Semantic microformats support
One of the biggest deals about HTML5 which is under reported is that HTML4 never defined error handing, but this is well defined in HTML5. All browser vendors are building HTML5 parsers that conform to this spec. While this is not sexy, the end result will be that browsers will become more interoperable with each other (especially in cases where the author makes an error). In the long run this should mean you'll spend less time trying to get all browsers to work correctly, and users will benefit from less broken sites in their browser of choice.
HTML5 also allows you to make more application quality sites, using many of the technologies mentioned in the other answers. Opera Dragonfly (the project I'm involved with) is a complex web app which doesn't use audio or video but takes advantage of a large number of HTML5 technologies. We use AppCache to make sure it still works when you are offline, Web Storage to save user preferences and history (we can store a lot more information than cookies allowed) and will likely use Web Workers to allow the app to use more than one process at once (will speed up performance on mult-core machines).
If you are doing anything with graphics then the Canvas API gives you a lot of drawing options, while SVG (an open vector format) can be used within your HTML pages now. Previously pages had to be served as XML for SVG to be included inside them.

Is it possible to listen to any kind of internet radio with HTML5 directly?

Is it possible to listen to any kind of internet radio with HTML5 directly? I mean is it posible to play live mp3 streams in HTML5 complaint browsers?
Yes, it is.
Take a look at the former specification of html5:
http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#attr-media-src
There is a huge load of specialities about streaming in html5.
And furthermore, take a look at this:
http://web.psung.name/zeya/ - a whole html5 media server.
EDIT
Actually it's like impossible to stream live media.
It's not that it'll stay impossible, but actually it isn't implemented at all - well none of the today's HTML5 browsers are going to support this in the next month's, because the real "live-stream", as known from flash (or equal) hasn't really been specified by the w3-committee - yet.
2. EDIT
As previous experiments showed, it may be possible to use streams without explicitly implement something specific for them. The "non"-stream way works on both streams and static files.