
Internet Explorer is known to be a browser that is updated infrequently. One can argue for a long time why this is happening and whether it is correct or not. However, you can definitely say something else - the functions that appear in Internet Explorer are worth the closest attention of developers. This happens simply because IE itself and its functions are mainstream and, as a rule, at the time of release they are implemented in most other browsers that tend to be on the verge of innovation.
There are exceptions, so native support for JSON, support for
HTML5 DOM Storage , separation of tabs into processes,
HTML 5 Networking Events, and some other things were introduced in Internet Explorer 8 before many other browsers.
In this regard, I believe it is important to know and keep in mind that new functionality that the ninth version of the still most popular browser (but probably not the most functional and convenient) will present.
')
Retreat...

I think many people noticed that
a special section about Internet Explorer 9
appeared on Habré. This is probably the first such move in runet, aimed at popularizing innovations in the browser. In the section on Habré, you can familiarize yourself with the tests from the IE9 team in Russian and test them right away without leaving Habr. It also provides useful links and the ability to install a browser on your machine. Try it.
Introduction
Instead of introducing, I would like to talk about the current state of affairs with Internet Explorer 9 and the progress of its creation. The first mention and demonstration of test versions of the browser was held at the PDC conference in 2009. On showed how the browser will accelerate graphics and use the new Direct 2D API for GPU-accelerated text processing and font smoothing.
After that, after some time, information appeared that the IE9 development team was included in the HTML5 and SVG committees and announced their support for these technologies. SVG have been waiting for a long time by many, and I think that this news was joyful.
The following browser phenomenon took place at the MIX conference in 2010. Here we were not only shown the new features, but also at first gave us a try to build the test assembly ourselves. The test version located at
http://ie.microsoft.com/testdrive/ is available today in the second version. In addition, the developers have done a lot of work and created many visual demonstrations in order to show the new features that Internet Explorer 9 will bring with them. The developers have promised to issue a new version of IE9 for public testing every 6-8 weeks.
The first test version of IE9 included a lot of new things and, probably, the most important was the GPU-acceleration of graphics and animation based on SVG and JavaScript. The new JavaScript engine called Chakra was pleased with the significant acceleration and overtaking of the main competitor Firefox in the SunSpider test. The ACID3 test as an indicator of standards support began to give 55 points instead of 20 in IE8. Plus, Internet Explorer finally got 100% support for CSS3 selectors.
The second test build of IE9 has brought even more innovations. About them and about all others and will be discussed in this article. Immediately it should be said that the main thing that we will see in the third build in June will be support for HTML5 Video, accelerated with the help of the GPU, which was already demonstrated during MIX10, but has not yet entered the public versions of the browser.
CSS standards support
It has long been known that the Internet Explorer team is not in a hurry to implement open standards until they emerge from the status of drafts. This is due to many reasons, but as I can tell, the main thing is that IE is part of the operating system and any changes made to it must be long-term. This results in the nature of the slow development of browser versions. However, not everyone likes it. Developers always want to be at the forefront of innovation, even if you have to change the code over time due to the changed API. Microsoft obviously cannot afford such actions and has a policy of carefully introducing innovations into the browser.
In this regard, when it comes to support for CSS3, you should look at the
following table to figure out which CSS3 modules can be discussed when we talk about their possible implementation in IE9. You can make sure that there are not so many standards with the
Candidate Recommendation status. But it can be said with a certain degree of confidence that it is them that Microsoft will implement in its browser. And then there will be several confirmations of this guess.
CSS3 Backgrounds & Borders Module
Internet Explorer 9 brings the long-awaited support for border-radius - rounded corners, which are so loved by users and many designers. The following properties are supported:
- border-radius
- border-bottom-left-radius
- border-bottom-right-radius
- border-top-left-radius
- border-top-right-radius
Moreover, the developers are proud of the fact that their implementation of the corners is the most accurate and correct among browsers, as can be seen by passing
this test with different browsers. For example, which version of 4 browsers do you think is better and more correct?

In addition to these module properties, the developers plan to implement other properties in future test and final versions of IE9.
CSS3 Color Module
Support for this module in the second test version of IE9 is the implementation of the RGBA and the opacity property. Application:
background-color: rgba (255,0,0,0.5);and
opacity : 40%;
Other properties from this module will be added during development.
CSS3 Media Queries Module
The work of the properties of this module can be found on
this test page . In short, this module describes the ability of the browser to apply different CSS code depending on the current size and other display parameters. So in the example, if you reduce the size of the visible window, the appearance will change, including the pictures that will look different in a small window, their miniature appearance will be applied.
Code example:
@media (max-width: 899px) {
#demodescription {
display: none;
}
}still
@media (min-width: 450px) and (max-width: 950px) {
.placeTitleLong, .bigPhoto, .description {
display: none;
}
}I will try to make out this IE9 feature in more detail in a separate article.
CSS3 Namespaces Module
Internet Explorer 9 almost fully supports this module, which allows you to define namespaces for CSS. More information about the module in its
specification .
CSS3 Selectors
IE9 supports CSS3 selectors by
specification and passes the test at
http://tools.css3.info/selectors-test/test.html 100%.

Internet Explorer 8 passed the test with a much worse result: “From the 43 selectors 22 have passed, 1 are buggy and 20 are unsupported (Passed 349 out of 578 tests)”.
In addition, IE9 contains several selectors that are not defined in the CSS3 specification. These are the pseudo-class
: indeterminate (allows you to select controls with implicit state) and the pseudo-element
:: selection (allows you to select user-marked markup).DataURI
Data: URI is not a module in CSS, but is actively used in CSS. Data: URI is supported in Internet Explorer 8 for images. Now, in IE9 Data: URI can be used for the
script element in the
src attribute.
DOM standards support
Internet Explorer 9 extends DOM Level 2 support and adds support for select DOM Level 3 features.
DOM Core (L2 and L3) and DOM Views (L2)
Added support for
DOM Level 2 Core features:
- DocumentType
- ProcessingInstruction
- createDocument
Added support for DOM namespaces and related properties
- namespaceURI
- localName
- prefix
Developers report support for many properties from
DOM Level 3 Core and full support for
DOM Level 2 Views .
DOM Level 2 and DOM Level 3 Events
The IE9 team has implemented a standard event handling model that will allow you to drop attachEvent in favor of standard methods:
- addEventListener , removeEventListener , createEvent , dispatchEvent
- objects Event, UIEvent, MouseEvent
- DOMAttrModified
- DOM Level 3 events DOMContentLoaded, CustomEvent, KeyboardEvent, DragEvent
- event compositionstart , compositionupdate , compositionend
DOM Level 2 HTML
In IE9, there was the long-awaited support for
getElementsByClassName , plus other properties from HTML5, like
characterSet . The developers declare significant improvements in the object model of tables, working with forms.
DOM Level 2 Range and HTML5 Selection
IE9 fully supports both APIs for accessing a
selection of the page: the
DOM L2 Traversal and Range standards and
HTML5 Selection . For example, the
setSelectionRange method. Or from HTML5:
getSelection, selectionStart, selectionEnd .
DOM Level 2 Style
IE9 implements
specification support according to the standard, and not through its functions, as it was before. The developers have prepared a
page with a test for these functions.
DOM L2 Traversal
IE9 adds support for the following properties of the
DOM L2 Traversal and Range specification:
NodeIterator, TreeWalker, whatToShow, and
NodeFilter. These methods allow you to filter and bypass DOM elements.
HTML5
Some of the features from the HTML5 standard that were introduced in IE9 have already been mentioned above. In addition, it is worth mentioning that IE8 introduced a number of HTML5 features over a year ago:
DOM Storage ,
Cross-document Messaging ,
Ajax Navigations (the window.location. Hash property).
The developers claim that HTML code parsing in IE9 is already very close to the recommendations in the HTML5 Draft Specification draft.
Generalized elements
Earlier, Internet Explorer considered unknown tags in HTML as extraneous elements and did not consider them, skipping their CSS definition. This led to the following example:
<style type = "text / css">
mydiv {
color: blue;
font-weight: bold;
}
</ style>
...
<p> I am using a <mydiv> generic element </ mydiv> in this sentence. </ p>It was not displayed in IE8 as the developer expected:
.png)
In Internet Explorer 9, developers added support for such generic elements, and now the rendering is performed as the author intended:
.png)
Overlapping elements
Previously, Internet Explorer did not support overlapping tags in the way that HTML5 prescribes:
<B> this <i> affects </ b> script </ i>.When processed in JavaScript, the result might not be what the author intended. Internet Explorer 9 introduced support for such a script according to the HTML5 draft specification.
Changes in parsing blocks style and script
Previous versions of Internet Explorer did not perceive the style and script blocks as part of the DOM tree. In IE9, you get the opportunity to operate such blocks as part of the DOM. This will allow you to access the embedded code as plain text in a tree.
Parsing XHTML
IE9 will parse the document with MIME
application / xhtml + xml as XHTML.
Parsing SVG ... instead of concluding
The support of SVG, ICC profiles and GPU-acceleration will be discussed in the second part of the article. In it, I will also tell you about the updates in the tools for the IE9 developer and why the appearance of the test version of IE9 is so unsightly.