Download Now!
For developers and consumers alike, successful W3C and Ecma International web standards are important for making the web better. A comprehensive test suite is an important part of a healthy standard, along with a clear specification and great implementations of the standard. Without thorough tests that assess the normative statements in a specification, a proposed standard is just a document on a website.
Any browser can claim to support some or all of a specification. The test results from a comprehensive test suite are the best way to determine which browsers will render the same markup consistently. Web developers have told us that seeing the test results, chapter-by-chapter, spec-by-spec, enables them to spend their valuable time building rich, interoperable web experiences for their customers.
We developed 19 new test cases and updated 46 test cases in conjunction with development of Internet Explorer 10. The IE Testing Center now offers a total of 7589 test cases. We continue to work closely with these two web standards organizations by submitting these test cases officially within each working group’s official process.
We welcome your continued feedback on the test cases using the appropriate W3C mailing list for each working group. For ES5 test cases please open bugs in the test262 bug database.
The first table below summarizes the test results by specification with Internet Explorer 10 along with each of the major shipping browsers running on the Windows. The second table at the bottom of this page provides links to each of the test cases we submitted to each appropriate working group to help the web become more interoperable.
Thank you,
Web Standards | Number of Submitted Tests | ||||||
---|---|---|---|---|---|---|---|
HTML5 | 326 | 100% | 75% | 72% | 74% | 90% | 36% |
SVG 1.1 2nd edition | 74 | 100% | 93% | 93% | 88% | 97% | 95% |
CSS | 236 | 100% | 69% | 59% | 63% | 68% | 62% |
DOM | 127 | 100% | 89% | 85% | 90% | 94% | 100% |
Web Performance | 37 | 100% | 66% | 0% | 0% | 68% | 30% |
Web Applications | 471 | 100% | 83% | 48% | 33% | 60% | 21% |
JavaScript | 6,318 | 100% | 97% | 100% | 91% | 100% | 91% |
Asynchronous Script | ||||||
---|---|---|---|---|---|---|
Async property on a Dynamically-Created Script is true by default | pass | pass | fail | pass | pass | fail |
Changes to the 'async' attribute are reflected in the async property | pass | pass | fail | pass | pass | fail |
An async script does not block the parser while downloading | pass | pass | fail | pass | pass | fail |
An async script executes as soon as possible after a download is complete | pass | pass | fail | pass | pass | fail |
A script element with both async and defer set will execute asynchronously | pass | pass | fail | pass | pass | fail |
A dynamically created external script executes asynchronously | pass | pass | fail | pass | pass | pass |
Ordered async script execution when script.async = false | pass | pass | fail | pass | pass | fail |
Async script element execution delays the load event | pass | pass | fail | pass | pass | fail |
Correct order of script element execution around DOMContentLoaded | pass | fail | fail | pass | pass | fail |
Document.write() silently fails from an Async script | pass | pass | fail | pass | pass | fail |
Removing an ordered async script before execution | pass | pass | fail | fail | pass | fail |
An empty script element should return script.async=true | pass | pass | fail | pass | pass | fail |
Audio/Video Elements | ||||||
---|---|---|---|---|---|---|
buffered returns a TimeRanges object. | pass | pass | pass | pass | pass | pass |
Content inside the audio element is not shown to the user. | pass | pass | pass | pass | pass | pass |
Content inside the audio element is not shown to the user. (image) | pass | pass | pass | pass | pass | pass |
Content inside the video element is not shown to the user. | pass | pass | pass | pass | pass | pass |
Content inside the video element is not shown to the user. (image) | pass | pass | pass | pass | pass | pass |
currentTime is initially zero. | pass | pass | pass | pass | pass | pass |
loop is a boolean attribute. | pass | pass | pass | pass | pass | pass |
media is "all" by default. | pass | pass | pass | pass | pass | pass |
media plays automatically when autoplay is true. | pass | pass | pass | pass | pass | pass |
media plays automatically when autoplay is true. (audio) | pass | pass | pass | pass | pass | pass |
'canPlayType' method returns the empty string for 'application/octet-stream'. | pass | pass | pass | pass | pass | pass |
preload is ignored if autoplay is present. | pass | pass | fail | pass | pass | pass |
The 'HTMLVideoElement' interface supports setting 'poster' to a relative URL | pass | pass | pass | pass | pass | pass |
The 'HTMLVideoElement' interface supports setting 'poster' to an absolute URL | pass | pass | pass | pass | pass | pass |
The src IDL attribute of media elements reflects the content attribute. (relative URI) | pass | pass | pass | pass | pass | pass |
Seeking to a value less than 'initialTime' seeks to 'initialTime'. | pass | pass | fail | fail | pass | pass |
'error' attribute returns 'null' when no error has occurred. | pass | pass | pass | pass | pass | pass |
'pause' method sets 'paused' attribute to true. | pass | pass | pass | pass | pass | pass |
The 'video' element represents the frame at the current playback position when paused at an intermediate location after seeking. | pass | pass | fail | pass | pass | pass |
Playback changes speed when 'playbackRate' is set. (positive value) | pass | fail | fail | pass | pass | pass |
'volumechange' event fires when the 'volume' attribute changes. | pass | pass | pass | pass | pass | pass |
'volumechange' event fires when the 'muted' attribute changes. | pass | pass | pass | pass | pass | pass |
The inherited 'NETWORK_NO_SOURCE' property of the 'HTMLAudioElement' interface is a constant | pass | fail | pass | fail | fail | pass |
'HTMLAudioElement' inherits 'playbackRate' from 'HTMLMediaElement' and supports getting its default value | pass | fail | pass | pass | pass | pass |
'HTMLAudioElement' inherits 'NETWORK_NO_SOURCE' from 'HTMLMediaElement' and supports getting its value | pass | pass | pass | pass | pass | pass |
'duration' returns NaN when no media data is available. | pass | pass | pass | pass | pass | pass |
'playbackRate' returns 1.0 if it has not been set. | pass | fail | pass | pass | pass | pass |
'ratechange' event fires when 'playbackRate' changes. | pass | fail | pass | pass | pass | pass |
'preload' IDL attribute reflects the content attribute. ("metadata") | pass | pass | pass | pass | pass | pass |
removing the 'src' attribute does not invoke the media element load algorithm. | pass | pass | pass | pass | pass | pass |
The inherited 'seeking' property of the 'HTMLVideoElement' interface is read-only | pass | pass | pass | pass | pass | pass |
Audio rendering reflects the specified volume and mute state for the 'video' element for inaudible states. | pass | pass | pass | pass | pass |