VML element isn't displayed in strict standards-compliant mode in Internet Explorer 9

Warning

The retired, out-of-support Internet Explorer 11 desktop application has been permanently disabled through a Microsoft Edge update on certain versions of Windows 10. For more information, see Internet Explorer 11 desktop app retirement FAQ.

A Vector Markup Language (VML) element isn't displayed in strict standards-compliant mode when an HTML page uses the !DOCTYPE element in Internet Explorer 9.

Original product version:   Internet Explorer 9
Original KB number:   932175

Resolution

To solve this problem, set the VML style to display:inline-block by using the following code:

vml\:* {
behavior: url(#default#VML);display:inline-block
}

More Information

The VML element is displayed correctly if you make sure the following things:

  • Don't use strict standards-compliant mode.
  • Remove the !DOCTYPE element.

For more information about strict standards-compliant mode, see Doctype.

To reproduce this problem, use the following page:

<?xml version="1.1" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="en"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:vml="urn:schemas-microsoft-com:vml">
    <head>
        <title>VML Oval</title>
        <style type="text/css">
vml\:*
{
behavior: url(#default#VML);
}
</style>
    </head>
    <body>
        <h1>VML Oval</h1>
        <div>
            <vml:oval style="width:100pt;height:50pt" fillcolor="red"></vml:oval>
        </div>
    </body>
</html>