For the SELECT few…


The information published in this post is now out-of-date and one or more links are invalid.

—IEBlog Editor, 21 August 2012

Hello, I am Kun, the first developer of IE Beijing team in Microsoft. Our team has been working on the Intrinsic Controls of IE in the past year. Among these controls, the SELECT element has been greatly improved. IE6’s SELECT element didn’t support certain properties, like z-index, title, and zoom. In IE7, we have re-worked the SELECT element. This new version has features and fixes that will make IE7 a better user experience. This is work that has long been requested by web developers and it is certainly something that should have been addressed in past releases. In IE7 the work on the SELECT element along with our work on CSS is part of our focus to supply web developers with a consistent platform for great web solutions.

We are continuing to refine the Windowless SELECT elements and we are very proud of it. This should make web and application developers happier since this will allow them to have the Select control perform Z-order and Zoom the way it was intended to without elaborate workarounds and hacks. If you were one of those people relying on the Windowed Select element in your code, you should be aware of this change so as to make sure your sites and applications continue to work with IE7.

In IE7, we have taken a feature (SELECT element) that every internet user has run into in some form or another and made it work better for everyone. We did this without introducing new user behaviors or specific programmatic alterations that would force thousands of web developers to have to change their sites. Essentially, if it worked in IE6, it should work the same or even better in IE7.

SELECT element in IE7 – An Overview

In IE6, the HTML <SELECT> element was implemented through the Windows Shell ListBox and Combobox controls. Some key features were missing in the old version of the SELECT element, such as proper support for z-index, TITLE support, and zoom. Web developers had to write complex CSS and scripts to workaround these issues.

In IE7 however, we re-implemented the <SELECT> element to make IE7 more standards-compliant. This new version does not use any Shell controls any more. In fact, it is implemented totally through the MSHTML framework, including styling, UI interaction, and rendering. Thus the SELECT element in IE7 is more of an HTML element than the former legacy control.

SELECT element in IE7 – Windowless and Z-order

A big problem of IE6’s SELECT element was that it could not perform z-index.

Here is an illustration.

When a user moved the mouse over to the “Mouse Over Here” in figure 1, this triggered the select element. Z-Index=1 should be behind and hidden by the select element (which appears as a yellow box) while Z-index = 3 should appear visible above the select element.

Instead with the legacy Windowed element you will find these two SELECT elements always placed on top of the floating DIV, even though the DIV has a higher z-index value.

Figure 1
Figure 1 IE6 Select Behavior (you can still see Z-Index=1 even though it should be behind Z-Index=2 layer)

Floating DIV tags (or other block elements) are a common technique used to write DHTML menus. But with this issue, web developers had to be careful not to put any SELECT element below these menus or else they would get obstructed. Although a work around with complex scripts was possible, it was inconvenient and kludgy.

This issue comes from the fact that the SELECT element in IE6 is a window based control, which always stays above the content of its parent IE window.

The Windowless Select Element

In IE7, the SELECT element has been changed into a windowless element. This means that Listbox and the inline part of Combobox are laid out and rendered directly by MSHTML. In other words, they are drawn directly within content flow. This new windowless SELECT element will follow the z-index priority in the markup. The following screen shot shows how the sample markup above will look in IE7.

Figure 2
Fig 2 IE7 Select Behavior (Z=Index = 1 is now hidden beneath Z-Index=2 the way it is supposed to be)

The main thing that you should take away from this posting is that the Windowless SELECT element is coming to replace the Windowed SELECT element in IE7. If your web or application developers adhered to normal HTML procedures in calling the SELECT element, then it should be fine. What worked in IE6 should work better in IE7. If you were using workarounds calling on the Windowed SELECT API, you may need to re-inspect your code to make sure that it doesn’t break on IE7.

We’d love to hear any comments, feedback or experiences that you’ve had with the SELECT Element or even Z-Order so that we can continue to improve this great feature.

– Kun Cong

Comments (123)

  1. Anonymous says:

    I’m waiting to test the version 7 of IE, hope good

  2. Anonymous says:

    Nothing wrong with that. Too bad it’ll be used most for overlay ads.

    On a side note, does IE7 still have a problem where if a page uses Unicode characters (e.g. math symbols, etc.), the characters will be shown as boxes unless another font is specified? (Example: [http://us.metamath.org/mpeuni/clim4a.html]. Other Browsers smartly switch to fonts with those characters, but IE forces them to make separate, server-taxing pages with GIFs, e.g. [http://us.metamath.org/mpegif/clim4a.html] so viewers can see the glyphs in their glory.)

  3. ieblog says:

    Game Kid, when I go to the link above in a current IE7 build, I don’t see any boxes around the math symbols.

    – Al Billings [MSFT]

  4. Anonymous says:

    Do <option> elements now feature the ability to change styles as well? IE6, of course, supports some styling of <option> elements, but is quite limited, and no where near where other, more recent browsers are.

  5. Anonymous says:

    optgroup support? with styles?

    I remember I’ve had to do nasty things to options in optgroups like prepend non-breaking spaces so that options will display indented beneath the group name.

    Nychane that this will be updated?

  6. Anonymous says:

    <<Nothing wrong with that. Too bad it’ll be used most for overlay ads. >>

    I’m not sure why we’d see a rush to use floating SELECT-box based advertising, but the Internet is full of interesting surprises. 🙂

    <<On a side note, does IE7 still have a problem where if a page uses Unicode characters (e.g. math symbols, etc.), the characters will be shown as boxes unless another font is specified?>>

    Font-fallback support in Internet Explorer was improved in IE7, but it worked pretty well in IE6 (Math symbols apparently excepted). As noted, this page now renders in IE7 without boxes.

    To make a page render correctly internationall, it helps to make sure that you choose a font that contains the character you want to display (Arial is often a good bet); your HTML authoring tool should help with this. You also want to make sure that your page is delivered using a correct Content-Type header that includes the CharSet attribute, or that you use the Charset META tag to get the same behavior.

  7. Anonymous says:

    How about nested <optgroup>? Are you going to add support for that, too?

    Keep the good work, guys! The whole IE Team is doing something I couldn’t believe would happen anytime soon – I’m eager to use IE again, years after dropping it in favor of Mozilla (Seamonkey) and Firefox.

    Best regards

  8. Anonymous says:

    Opt-groups seem to work with IE6 on XPSP2. http://cita.rehab.uiuc.edu/software/mozilla/test/ts-test-page-input.php

    Type-ahead item selection would be a nice improvement.

  9. Xepol says:

    can you say animated gif??? pictures are good, video is better.

  10. PatriotB says:

    This will be a welcome improvement.

    One other (positive) consequence of this change should be reduced resource consumption. Of course on XP it’s not as big a deal compared to 9x, but every little bit helps.

  11. Anonymous says:

    Woohoo! Wow, this makes me very happy. Talk about a bug that is basically impossible to work around… this one has driven me up the wall for some time.

    Thanks, and keep the good news coming!

    ~ Tim

  12. Anonymous says:

    Addon Manager in xpsp2 is NOT enough!

    We want per site(domain) management.

    EX. ban AddOn F ON Domain M

    F is Flash mostly!!!

    We hate Make-CPU-Scream Flashes on some potal site! ex. http://news.sina.com.cn every link full of flashit

  13. Anonymous says:

    <<We want per site(domain) management. >>

    SA: Thanks for the suggestion. This feature request is on the list for consideration in a future IE release, but it will not be present in IE7.

    Do note that there are a variety of IE plugins that offer you more control over Flash.

    http://www.ozoneasylum.com/4999 lists many, including FlashSwitch.com and http://www.bbshare.com/Default.aspx?tabid=53

  14. Anonymous says:

    Any chance of talking to the standards people about adding a &lt;combobox&gt tag? Combo-box meaning a combination between a text field and a select field (ie. a dropdown that allows a custom user-defined value).

  15. Anonymous says:

    MSIE 6 and below do not support setting a specific option to be disabled. Is this also fixed as part of the reworking of the select element?

    <select>

    <option value="0" disabled="disabled">I am disabled</option>

    <option value="1">I work</option>

    </select>

    The above code will show an active select with 1 disabled option and 1 active option in FireFox (and all other browsers). MSIE incorrectly ignores the disabled attribute.

  16. Anonymous says:

    MSIE 6 and below do not support setting a specific option to be disabled. Is this also fixed as part of the reworking of the select element?

    <select>

    <option value="0" disabled="disabled">I am disabled</option>

    <option value="1">I work</option>

    </select>

    The above code will show an active select with 1 disabled option and 1 active option in FireFox (and all other browsers). MSIE incorrectly ignores the disabled attribute.

  17. Anonymous says:

    I wanted to point out that the screenshots above have a visual flaw that might be misleading. The IE6 example is shown with Windows Themes enabled (hence the "shiny" look on the dropdown button) and the IE7 example is shown with Windows Theming disabled (hence the flat gray look).

    IE7’s select control ~does~ support Windows Themes but Themes just happened to be turned off on the test machine used to generate the IE7 screenshot.

    Max: I believe there are ways to simulate a combobox using script, but this is not something we’re going to be able to make native for IE7. There’s always IE8. 🙂

    Grady: Disabled OPTION elements do not appear to be available in IE7.

  18. Anonymous says:

    Besides TABs (that already exists on IE now) there are four more simple reasons I like firefox.

    1 – I can use "CTRL 0" "CTRL+" and "CTRL-" to zoom in a page;

    2 – I can just type to find ("begin finding when you begin typing" resource), and I can use "CTRL G" to find the next entry.

    3- The download manager (because I can pause and resume whenever I want).

    4- The search box in the top right, where I can look for something without entering the site first.

  19. Anonymous says:

    I’m agreed with Clayton here – the ability to properly style optgroup elements (including padding) would be really nice.

  20. Anonymous says:

    Richard York & Clayton L.Scott: The goal of new implementation of SELECT element in IE7 is to port the windowed-based control to real "intrinsic" element. So styling on OPT/OPTGROUP is not changed much in this version. We will take this into consideration for future IE release.

    Grady: Disable of OPTION is in the list of possible improvement in future IE release.

    Thanks for these great feedbacks.

  21. Anonymous says:

    <<Any chance of talking to the standards people about adding a &lt;combobox&gt tag? Combo-box meaning a combination between a text field and a select field (ie. a dropdown that allows a custom user-defined value).>>

    Well… HTML actually doesn’t have combo boxes. Neither does XForms, as far as I can see. Of course, it can always be scripted… XBL, anyone?

  22. Anonymous says:

    re Igor Abade’s request for nested optgroups. The w3c specs specifically disallow nested optgroups. from the specs, "groups may not be nested".

    http://www.w3.org/TR/html4/interact/forms.html#edef-OPTGROUP

    hey, MS – how about rejigging those multi-selects, while you’re at it? see here: http://verens.com/archives/2005/04/27/son-of-multiselect/

  23. Anonymous says:

    When the SELECT element becomes windowless, what happens when it needs to drop down over the borders of it’s hosting window?

    Background is a security concern: If you can hide it (partly) behind another div with higher z-index, are able apply more styles to it and could drop it down with a script you could use it for instance to drop over the status bar and spoof/hide something.

  24. Anonymous says:

    Wow! I am very excited!

    Finally 🙂

    All the people that paste negative stuff about the fixing of the z-index bug, make your site compliant with all browsers! Do not make sites for just 1 browser (that really dumb 😉 )!

    IE team, Good job! I’d like to see more coming 🙂

  25. Anonymous says:

    Good job in making the <select> windowless as other visual elements.

    Pitty that combobox is not available in IE7 (Or should I say, HTML spec.?). In many case it’ll be handy to have just that.

    Yes it can be scripted, but it’ll be neater to have the elements within the element, not in a place outside the DOM(the client side script).

  26. Anonymous says:

    Why not provide an option to use the original select box if so desired? Will this not break some IE toolbars that use the MSHTML control? Now the select element will not be rendered, outside of the control’s window. In other words, the windowed select box appearing outside of the control window over other windows, is desirable in some cases.

  27. Anonymous says:

    Great! (although that was rather lenghty explanation for just one bug removed…)

    How about fixing <button> now? Default type submit, support for value, sending value only when clicked…?

    <button> is horribly buggy, even worse buggy than MSDN documents it’s buggyness 🙂

  28. Anonymous says:

    @EricLaw,

    > To make a page render correctly internationall, it helps to make sure that you choose a font that contains the character you want to display

    That means font fallback *doesn’t* work properly. The web developer can’t know what fonts are installed on the user’s machine, so the whole idea is that if the proper glyphs aren’t found in the current font, then a suitable font’s glyphs are substituted instead.

    Does Internet Explorer 7 do the right thing regarding the issues noted on the following page?

    http://girtby.net/archives/2005/10/07/internet-explorer-makes-me/

    > (Arial is often a good bet)

    I believe you mean Arial Unicode MS, yes?

  29. Anonymous says:

    @Jim– To be honest, I’m a networking guy and I know very little about font fallback; what little I’ve learned comes from dealing with IDN display issues.

    I can say that the page you’ve referenced renders correctly ("not-implies" character and all) in current builds of IE7.

    I’m afraid I can’t speak to the exact font-fallback algorithm in IE7, but I know that there was a team working on that for IE7 and it appears that their efforts resolved many of these issues.

  30. Anonymous says:

    > Pitty that combobox is not available in IE7

    > (Or should I say, HTML spec.?). In many case

    > it’ll be handy to have just that.

    Now that this control is done through MSHTML, it seems like the IE7 team should take some initiative and add an editable attribute to allow editing the text in the textbox.

  31. Anonymous says:

    The width of the SELECT element often needs to be set because of screen design concerns. Just as often, the width of the text in the OPTION tags is *greater* than this width.

    In IE, this means that the text of each option is cut off. With other browsers, as the dropdown options display when you activate the control, the width increases so that option text is completely visible.

    Consider this usability concern in balancing other requests for this control.

  32. Anonymous says:

    Combo box is defined very well by WHATWG in Web Forms 2:

    http://whatwg.org/specs/web-forms/current-work/#the-datalist

  33. Anonymous says:

    Thanks for another great post!

    How about styling on the arrow of the select menu? That has always been annoying (in all browsers).

    Perhaps the BG color for the main color and the color attribute to also apply to the arrow?

    I’d also like to see optgroup styling made available for IE7.

    Since only IE bothers with any IECCSS (IE conditional comments stylesheet) how about some sort of added support for throw IE’s proprietary items inside?

    <meta http-equiv="imagetoolbar" content="no" />

    Or allowing some sort of clientside includes?

  34. <select> now styles correctly… good.

    <option disabled> still doesn’t work… why not?

    Take a break from developing all the proprietary technology that I can’t use (because it’s proprietary) and implement standards, please.

  35. Anonymous says:

    Talking about z-index; will IE7 fix the general issues with the z-index implementation as described on http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html and more in detail on http://www.aplus.co.yu/css/z-pos/ ?

  36. Anonymous says:

    This (although known) is great to hear.

    However, I wanted to know if this bug was fixed to? (No bug # to reference, because MS has no public Bug tracking list)

    If I have the following HTML fragment:

    <select name="foo" size="1">

    <option value=""> – choose – </option>

    <option value="ff0000">red</option>

    <option value="00ff00">green</option>

    <option value="0000ff">blue</option>

    </select>

    If I submit the form, selecting red, I get

    &foo=ff0000

    selecting green, I get

    &foo=00ff00

    selecting blue, I get

    &foo=0000ff

    However, if I select nothing, or choose the " – choose – " option (pressuming a different option was pre-selected)

    Internet Explorer, [INCORRECTLY] sends the param as:

    &foo=%20-%20choose%20-%20

    instead of:

    &foo=&bar=somevalue

    (bar added, just to indicate that the foo param, SHOULD have NO VALUE passed.)

    So, in IE7, is this FIXED?

  37. Anonymous says:

    This will be a great improvement, I always found this problem a frustrating one in IE.

    Despite these additions being present in many other current browsers I’m really glad to see the MS developers enthusiasm for new IE features. I’m sure that it will eventually show in the quality of the release.

  38. Anonymous says:

    Please add type-ahead item selection

    If a select item has items:

    abc

    aba

    ccb

    I should be able to focus on the control and type abc, and have it select the right item. This is so annoying in IE6 where it would end up selecting ccb

  39. Anonymous says:

    Thank you all for fixing this bug. I recognise that it was probably a fair amount of work, and I want you to know that I appreciate it.

    IE7 looks like it will be the most Standards compliant browser that MS has ever released. Thank you. Thank you. Thank you.

    There are a few replies requesting this enhancement or that to the select box. To the majority of these, I say "STICK TO THE STANDARDS". Some people will say "but it will make it so much easier". Get real. For every hour of your time saved, thousands of hours are spent trying to make pages work the same.

    My request for an enhancement that would be a HUGE benefit (especially to those AJAX coders):

    Add a meta-tag (or some type of page based configuration option) to indicate that the event model should follow the Firefox model. Don’t get me wrong, it’s not because I think Firefox’s event model is better (although I do think it is better), it is because it is a superset of the IE model. It would be a great benefit to application developers to not have to code different events handlers for the different browsers. I think if IE and FF were both able to use the same model, Opera and Safari would enable the same ability.

  40. PatriotB says:

    "Why not provide an option to use the original select box if so desired? Will this not break some IE toolbars that use the MSHTML control? Now the select element will not be rendered, outside of the control’s window. In other words, the windowed select box appearing outside of the control window over other windows, is desirable in some cases."

    The article doesn’t really say anything about whether the drop-down list is implemented with MSHTML or whether it uses a separate window like the old combobox. It says "This means that Listbox and the inline part of Combobox are laid out and rendered directly by MSHTML" but doesn’t say anything about the list part of the combobox. (I think the fact that it specifically says "inline part of combobox" rather than "combobox" in general, may suggest that the dropdown part of the combobox is still a separate window.)

    Could someone from the IE team clarify this? Thanks!

  41. ieblog says:

    PatriotB,

    You are correct. Bonus points for paying attention 🙂

    The drop down part of the SELECT element does use a separate window as you’d expect so that it is fully visible when dropped down. The drop down is dismissed if you click away from it or move focus elsewhere as you’d expect in any Windows application.

    Thanks

    -Dave Massy

  42. Anonymous says:

    <meta http-equiv="imagetoolbar" content="no" />

    @John: For what it’s worth, the imagetoolbar was removed for IE7.

  43. Anonymous says:

    Several people have been reporting and demanding normal, standard support for the

    – disabled attribute for optgroup

    – disabled attribute for option

    – label attribute for optgroup

    – label attribute for option

    – multiple attribute for select

    – option defaultSelected is not supported by IE6

    see

    http://www.gtalbot.org/BrowserBugsSection/MSIE6Bugs/DefaultSelectedTrueOption.html

    – objSelect.add(objOption, null) is not supported by MSIE 6

    see

    http://www.gtalbot.org/BrowserBugsSection/MSIE6Bugs/DefaultSelectedTrueOption.html

    etc,etc,etc…

    There are many bugs to fix in MSIE 6 regarding select objects.

  44. Anonymous says:

    Anything that makes the next version of IE more web standards compliant is a good thing. It’s more important than tabs. Bravo!

  45. Anonymous says:

    @EricLaw,

    Thanks, it sounds like glyph substitution might be working in Internet Explorer now. That’s great!

    John’s question about the image toolbar meta element reminded me about another issue though. With current versions of Internet Explorer, it looks for certain meta http-equiv elements. However if that information is included as a proper HTTP header, it gets ignored. Remember that http-equiv is meant to be a poor man’s substitute for proper HTTP headers, so it seems nonsensical to have the meta element hack working but the right way not working. Is there any chance of this being fixed for Internet Explorer 7?

    @Nick,

    That’s not "Firefox’s" event model, that’s the standard W3C DOM event model, supported by Firefox, Mozilla, Opera, Konqueror, Safari, Omniweb, etc. I *think* I read somewhere that proper event handling isn’t on the cards for Internet Explorer 7.

    If they were to support the two different models simultaneously though, I don’t think you’d need to tell it which to use explicitly; they could just use the first one that an event was registered with.

  46. Anonymous says:

    Hi,

    I have been using IE7 from the day it was released and am very happy with it. But lately im having problems with it when i access mail at yahoo. When ever i open a mail message in yahoo the browser just closes. This is happenning from the past 3 days. Has anyone else encountered this problem?

    Any help in this matter is very appreciated.

  47. Anonymous says:

    The sad fact is that most people that even take the trouble to read this blog are already Browsing with Firefox.

    The bottom line is that if Microsoft don’t get this product to market real soon, then nobody is going to interested whether it lives up to the hype or whether it is usually bug infested rubbish!

    Dave Wrixon

  48. Anonymous says:

    "With current versions of Internet Explorer, it looks for certain meta http-equiv elements. However if that information is included as a proper HTTP header, it gets ignored."

    @Jim: The only case I’m aware of where this is still true is the MSThemeCompatible tag. We should not have implemented this as a HTTP-EQUIV meta. Instead, we should have used META NAME=MSThemeCompatible, as we did for the DownloadOptions meta introduced in XPSP2.

    If you know of other instances, I’ll look into them.

    Thanks!

  49. Anonymous says:

    This is good news, all I can say for now.

  50. PatriotB says:

    How does one use the DownloadOptions meta? All I could find is the following on http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/name_1.asp:

    "Microsoft Internet Explorer 6 for Microsoft Windows XP Service Pack 2 (SP2) and later. Associated CONTENT attribute determines what buttons are visible on the File Download dialog box.

    Note If more than one META tag is set with the DownloadOptions value, Internet Explorer uses the last one."

    What values can it be set to? Can the documentation please be updated? 🙂

  51. Anonymous says:

    Why does the expanded select list on the right (i.e., not the drop down version) have a shaded border in the version with WinXP themes turned on? Shouldn’t they have the thin, single-pixel line?

  52. Anonymous says:

    I’d like to see the keyboard navigation for the SELECT element improved, so typing out the full name of an option works properly. Currently, keyboard navigation only works on the first letter of an option, and hitting the letter repeatedly goes through the options.

    Other browsers have a better implementation where typing the full word jumps directly there.

    Although I haven’t used the IE7 beta, I think this is a major drawback of accessibility in IE6.

  53. Anonymous says:

    "I’d like to see the keyboard navigation for the SELECT element improved, so typing out the full name of an option works properly."

    I totally agree. It’s very nice for things like "select your country" where probably 70% of users are from the US but typing "U" brings up Uganda. If I could type even just "Un" it would already make going through the list that much easier. Of course you do need to decide how to tell the difference between an additional letter and a retype (e.g. when I type "Un" I really meant "forget U, I really want N").

  54. Anonymous says:

    Al Billings [MSFT]: "Game Kid, when I go to the link above in a current IE7 build, I don’t see any boxes around the math symbols."

    Not around, but in place of them, i.e. even if there’s a Unicode font installed that IE can use, it will show boxes anyway unless explicitly chosen.

    Thanks either way.

    Matt Ryall: "I’d like to see the keyboard navigation for the SELECT element improved, so typing out the full name of an option works properly.[…]Although I haven’t used the IE7 beta, I think this is a major drawback of accessibility in IE6."

    IE7 sounds good, and I hope we’ll actually be using it soon. Microsoft could use some input and error reports from more people who use the Internet. I doubt hiding your light will brighten it for long.

  55. Anonymous says:

    Kyle Mulin: I have tried what you said, but I can’t get the submitted string "&foo=%20-%20choose%20-%20" on IE6/IE7, I get "foo=" with your html code. And when I change the first option just like "<option> – choose – </option>", removing " value="" ", I get the submitted string is "foo=-+choose+-" on IE6/IE7 which is by design. So can you tell me how you get this result? some specific conditions, settings on your machine, or a page to reproduce this issue?

    Thanks for your great feedbacks.

  56. Anonymous says:

    @gamekid: The symbols render correctly with no boxes.

    @PatriotB: The documentation is really poorly formatted. The answer is that you want to click on the CONTENT link at the top of the NAME attribute article to see the values. Specifically, the options for DownloadOptions are:

    <META NAME="DownloadOptions" CONTENT="noopen">

    <META NAME="DownloadOptions" CONTENT="nosave">

    If you use the first, downloads from the page containing the meta cannot be Run/Opened from the File Download dialog. For the second, downloads can only be Run/Opened.

  57. Anonymous says:

    Consider this list of options in a select box:

    Cat

    Carp

    Chicken

    Crab

    Cow

    Ostrich

    Wallaby

    Whale

    In Firefox, clicking on this select box and typing C-O-W would quickly select the "Cow" item. In IE6, typing C-O-W would select "Cat", "Ostrich" and finally "Wallaby". This behaviour makes it difficult to quickly select a known item in a large list of options, such as choosing your country from a list of all countries. Now that the select element is not implemented using a native control, would it be possible to change its behaviour to act more like it does in Firefox?

  58. Anonymous says:

    As much as I want it to act like Firefox, what does the standard say about what should happen when users type?

  59. Anonymous says:

    I haven’t memorised them completely *yet* 😉 but I’m pretty sure that they don’t speak to the issue. Something like that should be left to the implementation. I personally like firefox’s behaviour better, but I don’t think that the browsers need to be _exactly_ the same, as long as they follow the standards.

  60. Anonymous says:

    To pick up on the side comments regarding font switching (as described in this Mozilla document: http://www.mozilla.org/projects/intl/fonts.html):

    Font-fallback support did not work well in IE6. Many "lesser-used scripts" with currently inadequate font support rely on browser font switching to provide the missing glyphs, and alas IE6 is the ONLY major browser that cannot do this. (Makes me wonder whether Microsoft really wants those markets.) Web authors should be able to specify any font and have the missing glyphs supplemented by any other installed fonts that have support those code points. I hope IE7 will improve on this.

  61. Garry Trinder says:

    First of all, thank you all for your great feedback and comments.

    We (@ the IE Intrinsic and SELECT Controls Team) do read your suggestions and take them seriously. Issues like the disabled function, themes, keyboard navigation and a lot of other issues were discussed with great passion among ourselves weeks or months before. We agree that we want to fix them as well but timing and ensuring quality for this release means that some will be pushed out to a later release…but we do track them to remind us.

    BigGary, MattRyall, CodeMastr:

    The autocomplete feature of text entry is something that is similar to IntelliSense as described in VS MSDN. We agree that this is a better user experience and want to see it as well in a future release.

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vcovrAutomaticStatementCompletion.asp

    KyleMulin:

    Xuemin is one of our testers and we are trying to reproduce your bug as described but we need more data to do so.

    Thanks again for your support and feedback, reading these really makes our day (and night)

    regards,

    FrankYu[MSFT]

  62. Anonymous says:

    On Wednesday, January 18, 2006 4:11 AM – Kae Verens wrote

    re Igor Abade’s request for nested optgroups. The w3c specs specifically disallow nested optgroups. from the specs, "groups may not be nested".

    http://www.w3.org/TR/html4/interact/forms.html#edef-OPTGROUP

    However the said spec clearly states:

    Note. Implementors are advised that future versions of HTML may extend the grouping mechanism to allow for nested groups (i.e., OPTGROUP elements may nest). This will allow authors to represent a richer hierarchy of choices.

    So, it would be a great leap ahead if IE7 supoport for nested OptGroups.

    Even better if the new SELECT tag could be rendered as a menu, in special when using the OptGroup it could be rendered as an hierarchical menus.

    Just as the example in the specs.

  63. @Eric – another example of a header that is honored in a <meta> tag but ignored in a real header is the Refresh header.

    If a Refresh header is sent that is longer than 255 characters, it is ignored.

    See http://matthew.vaneerde.com/http-refresh.asp

  64. Anonymous says:

    Hi Kun,

    how about implementing

    efectively ( ala firefox ) the

    <select style="width:2px" ></select>

    so that the box in the scree

    is small, but

    when you open the combo you can see

    everything

    ¿ what about getting to an option

    writing the first letters of that

    option … incredible ( ala firefox-gtk-linux ) !!

    regard!

  65. Anonymous says:

    Could you imagine if Microsoft had the Firefox team?

    <<Firefox 2.0 alpha due next month>>

    <<There also plans for enhanced security, blacklisting and anti-phishing measures to be fitted to the new version.>>

    <<The minutes note that this will be a ‘big year’ for Firefox with both version 2.0 due for release and version 3.0 already on the drawing board.>>>

    I love this one from the article the most.

    <<Little is known about IE 7.0.>>

    Yeah, really? Can you listen Microsoft? Your consumers want more NOW! And they are getting it from that other company.

    Get our your browser.

    We don’t want to hear anymore, Duh, well we want to get it right. Um, well we don’t know exactly. Get out of the game, if you can’t get this out. Firefox is kicking your asses.

    Your ALREADY outdated. And you can’t even release the thing yet.

  66. Anonymous says:

    Make it work in IE6 since half the world will still be using it so the hacks will still be needed.

  67. Anonymous says:

    @<<Little is known about IE 7.0.>>

    Proof positive that some people aren’t reading the IEBlog. So far, we’ve posted about Antiphishing, Enhanced security, protected mode, SSL, IDN, and pretty much every major feature you’ll see in IE7. And more detail will be forthcoming with the Q1 preview release.

    @Maurits: The refresh length limit is an interesting finding, but at least this one is supported in the header parsing code. I’ll file a bug.

  68. Anonymous says:

    Two more things to fix for <select> while you’re at it:

    * options don’t support &nbsp; correctly (put two in a row and it becomes just one space)

    * option doesn’t support white-space:pre;

    Those would be greatly appreciated. 🙂

    Thanks,

    Drew

  69. Anonymous says:

    Sorry, my sample was typed from memory.

    <form name="asdf" method="get">

    <select name="foo" size="1">

    <option> – choose – </option>

    <option value="ff0000">red</option>

    <option value="00ff00">green</option>

    <option value="0000ff">blue</option>

    </select>

    <br/>

    <select name="bar" size="1">

    <option value=""> – choose – </option>

    <option value="ff0000">red</option>

    <option value="00ff00">green</option>

    <option value="0000ff">blue</option>

    </select>

    <br/>

    <input type="submit" name="submitbutton" value="submit"/>

    </form>

    The above code, [foo] will send the node value, rather than the attribute value, if the first option is selected, but [bar] will send the attribute value.

    I read in the reply by Xuemin Ji, that this is by design, and testing in Firefox/Opera I get the same results.

    I felt stupid, when I checked this, then re-ran a bunch of tests to recall what the error was… and I found it!

    The problem, is that when you access the element, via JavaScript to get the value (e.g. for pre-form-submission validation, the results are **NOT** as expected.

    If the selected OPTION has no attribute defined named "value", then requesting:

    //obj is a reference to the SELECT object

    alert(obj.value);

    returns "" (blank), but SUBMITS "-+choose+-"

    As a developer, we have to adjust testing logic, to account for this.

    E.g.

    Was:

    if(obj.value != ”){…}

    Now has to be (for IE only):

    var selIdx = obj.selectedIndex;

    if(obj.value != ” && obj.options[selIdx].text != ‘ – choose – ‘){…}

    Over time, I had to change my logic (this is the reason why my original example didn’t quite make sense), to alert my validation routines, whether a select list, had a ‘blank’,’choose’,’select’,’any’,’all’ type option at index 0. In doing so, my routines would have to check for (obj.selectedIndex > 0) instead.

    Thanks, Kyle

  70. Anonymous says:

    My current issue with IE select inputs is that they fail to resize in a consistent manner with other elements. Given a select and a text input box each set with the same font size, the select box will resize differently (i.e. more) when page font-size is adjusted (i.e. using the View/Text Size menu)

  71. Kyle the behavior you describe is in accordance with the spec.

    As far as Javascript is concerned, op.value is whatever is in the value="…" attribute.

    As far as HTML is concerned, if the value attribute is missing, then the CONTENTS of the option tag is submitted. (Quote from the HTML 4 spec: "If this attribute is

    not set, the initial value [p.220] is set to the contents of the OPTION element")

  72. Anonymous says:

    It’s great to know we had worked on the right direction to improve user satisfaction! 😎

    My team worked on IE7 Font Linking to make IE7 smarter than IE6. For any character in Unicode BMP plane, even if web developer hasn’t assigned a font name or assigned a WRONG font name, IE7 will render it legibly as long as there is a Windows stock font that can shape it. This improvement will not only be seen for math symbols, but also for many other characters in Hebrew, Greek, Cyrillic, Latin Extended-B, IPA-Extenstions…

  73. Anonymous says:

    Please, please, stop mucking about with IE and just license someone else’s rendering engine. It’s going to take ages for you to fix half the CSS bugs. You should have started this process 5 years ago and it’s too late now.

    Please just buy Opera or something and bin IE. It is a daily nightmare for a web developer

  74. Anonymous says:

    @Maurits

    Re: "the behavior you describe is in accordance with the spec"

    I beg to differ. I’ve tested this code, in every other browser I could get my hands on, and they all do it the other, correct way.

    SelectElement.value returns whatever value would be submitted, if the user had clicked the submit button.

    If you read: (from MSDN > DHTML > SELECT.VALUE)

    <http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/value_3.asp&gt;

    It states: "Sets or retrieves the value which is returned to the server when the form control is submitted." (hint, hint, this is MICROSOFT’s own documentation!)

    And in the ECMA Spec, you referenced:

    <http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-59351919&gt;

    It states: "The current form control value."

    So, as far as us Web(/App) Developers are concerned, it’s a bug.

    Thanks,

    Kyle

    PS Here’s a full sample to try out.

    <form name="asdf" method="get">

    foo: <select name="foo" size="1">

    <option> – choose – </option>

    <option value="ff0000">red</option>

    <option value="00ff00">green</option>

    <option value="0000ff">blue</option>

    </select> (no value attribute defined)

    <br/>

    bar: <select name="bar" size="1">

    <option value=""> – choose – </option>

    <option value="ff0000">red</option>

    <option value="00ff00">green</option>

    <option value="0000ff">blue</option>

    </select> (value attribute defined, with value of empty string)

    <br/>

    baz: <select name="baz" size="1">

    <option></option>

    <option value="ff0000">red</option>

    <option value="00ff00">green</option>

    <option value="0000ff">blue</option>

    </select> (no value attribute defined, nor any node content defined (e.g. both are empty strings))

    <br/>

    <input type="submit" name="submitbutton" value="submit"/>

    <br/>

    Click below to get current values for each select element:<br/>

    <b style="cursor:pointer;" onclick="alert(‘value is: [‘ + document.forms[0].elements[‘foo’].value + ‘]’);">foo</b> | <b style="cursor:pointer;" onclick="alert(‘value is: [‘ + document.forms[0].elements[‘bar’].value + ‘]’);">bar</b> | <b style="cursor:pointer;" onclick="alert(‘value is: [‘ + document.forms[0].elements[‘baz’].value + ‘]’);">baz</b>

    </form>

  75. Anonymous says:

    How about the OBJECT tag, the select is one of two windowed controls, do you have any intention of tackling that element also?

    Regards,

    -Z

  76. Dave Massy says:

    Hi Zubin,

    For the Object tag to be windowless and honor Z-Index the ActiveX control being hosted has to be implemented as a Windowless control. Internet Explorer has had the abilit to host Windowless Activex controls since IE4.

    Flash and Windows media player both have Windowless implementations but the mode needs to be explicitly enabled. See http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_14201 and http://support.microsoft.com/default.aspx?scid=kb;en-us;308491

    Thanks

    -Dave

  77. @Kyle – that’s interesting, I hadn’t thought of it that way.

  78. Anonymous says:

    @ FrankYu[MSFT]:

    "We (@ the IE Intrinsic and SELECT Controls Team) do read your suggestions and take them seriously. Issues like the disabled function, themes, keyboard navigation and a lot of other issues were discussed with great passion among ourselves weeks or months before. We agree that we want to fix them as well but timing and ensuring quality for this release means that some will be pushed out to a *later release*…"

    MSIE 6 beta 1: released march 2001

    MSIE 7 beta 1: released october 2005

    therefore, the logical conclusion/deduction means that "later release" means:

    MSIE 8 beta 1: will be released march 2010

    To correct my previous post:

    objSelect.add(objOption, null) is not supported by MSIE 6

    http://www.gtalbot.org/BrowserBugsSection/MSIE6Bugs/SelectAddOptionNull.html

    Many hundreds of web authors wishing to use, to comply with W3C web standards have been waiting, hoping [..deep breath..], expecting, [..sigh..] and demanding thousands of times in thousands of ways that the final release of MSIE 7 would finally get to fix hundreds and hundreds of CSS 2.x bugs, HTML 4.01 bugs, absence of support of CSS 2.x properties, incorrect implementation of CSS 2.x properties, absence of support for key DOM 2 interfaces, UAAG 1.0 guidelines, etc,etcetc. Hundreds of them complied with your demands by reporting nicely, diplomatically, professionally their requests, demands, feature requests, with testcases, with quoted references, etc,etc,etc…

    All that we hear from Microsoft and this IEBlog is a "give us more time" message … but what exactly did the IE software development team do between september 2001 and july 2004??

    I do not know a single company on this planet that disposes more human resources, financial resources, technological resources and resources of all kinds than Microsoft. What else, what more, what is it that Microsoft still has not got, still needs???

    Gérard Talbot

  79. Anonymous says:

    >>the logical conclusion/deduction means that "later release" means:

    MSIE 8 beta 1: will be released march 2010<<

    Arithmetic error aside, I notice that you’re conveniently omitting the entire history of IE before version 6, as well as IE6 for XPSP2, which introduced a significant number of features.

    IE8 planning is already underway, and we appreciate the valuable feedback we’ve been receiving on what we should be working on, as well as the feedback we’ve received on IE7. Thanks!

  80. Anonymous says:

    I hope to have you admit re-distribution only for a rendering engine for the old OS. I do not take care of even a thing working only in the IE component browser which I made by oneself.

  81. Anonymous says:

    There is a problem with select element on site wich using "DXImageTransform.Microsoft.Gradient" filter if user is scrolling down the page. For example look at http://www.letectvi.xf.cz/enu/boeing-777 on the select element on the right near "Show specification for:".

  82. Anonymous says:

    Im currently using the leaked Beta 2 (build 5299).

    Bugs:

    – Toolbars are not displayed correctly in pop-up windows (Links bar, MSN toolbar, for example)

    – Third-party toolbars (MSN toolbar, for example) that were visible before installing IE7 are now hidden by default. Users must find out that they can only re-enable them by clicking Tools – Toolbars.

    – The RSS feed from Germany’s largest news site doesn’t work (http://www.spiegel.de/schlagzeilen/rss/index.xml)

    – Typo: Under the Programs tab in Internet Options: the word "are" is missing in "Enable or disable browser add-ons that installed in your system". Also: Why "in your system"? That sounds strange.

    Suggestions:

    – Couldn’t figure out how to start printing from Print Preview for 2 hours :-). Many users won’t see the Print button in the lower right corner of the window. Suggestion: Add it to toolbar again.

    – AVI animation when deleting browsing history: The animation pretends that elements are moved to tbe recycle bin. You should use the Throw Away animation instead that’s used when deleting documents permanently (by pressing Shift+Del, for example).

    – It should be possible to specify feed properties already in the Subscribe to This Feed dialog box (update interval etc.)

    – It should be possible to get notified if feeds were updated with new content.

    – It should be possible to reorder open tabs by dragging.

    – Unclear: What’s the difference between "Disable Phishing Filter" and "Turn off automatic website checking"?

    Otherwise: A phantastic release! Extremely fast, well though-out tab handling, etc.

    Keep up the good work!

    Roland

  83. Anonymous says:

    Im currently using the leaked Beta 2 (build 5299).

    Suggestions:

    – It should be possible to drag the url of the open tab to a new one, so you have two tabs with the same url.

    Nice release!

    Arjan

  84. Anonymous says:

    @Roland– I would not suggest running a leaked build because there’s no reason to believe that it’s the actual bytes and not infected with trojans. A bad guy willing to violate the law to leak Microsoft’s code isn’t likely to be above finding a way to make a little cash from it.

    In any case: The question about the AVI is an interesting one. It turns out that the animation is correct on Windows Vista but not downlevel. This is a limitation of the API on XP, but I’m sure you’ll agree that this is a pretty minor thing.

    Disable phishing filter turns off the feature entirely. Turn off automatic website checking means that the local heuristics still run, but no call is made to the remote web service.

  85. Anonymous says:

    Are any of the most basic problems with DOM access of SELECT elements

    expected to be fixed? Among these are:

    var a = new Option(‘a’,’a’), b = new Option(‘b’,’b’),

    s = document.createElement(‘select’),s2;

    s.add(a,null);

    s.add(b,null); // doesn’t work in IE; IE expects, incorrectly, that

    // the 2nd argument should be an index rather than

    // a reference to an element.

    // s.add(b,a); // should reverse the order of options; but even coded as

    s.add(b,0); // this fails, (? because b already has a parentNode,

    // and the add() method requires options to be

    // parent-less

    s2 = document.createElement(‘select’);

    s2.add(a); // should move the option from s to s2, but fails,

    // presumably because a hasn’t been removed from s yet?

    // OK, then

    s.removeChild(a);

    s2.add(a); // still fails; when you remove a node from its parent,

    // IE apparently fabricates a #document-fragment node

    // to act as a "surrogate parent", instead of setting

    // a.parentNode = null. This prevents(?) s2.add from

    // working correctly.

    There are a whole slew of issues like this, many that are more general,

    that get in the way of simple SELECT-handling code. Is there any hope?

  86. Anonymous says:

    This is great! Now how about an HTML 4 feature that is still not supported: implicit association of &lt;label&gt;s to controls?

  87. Anonymous says:

    Hello. Apparently still an issue with IE 7.0.5112.0 (Beta 1), using .Net 1.1 to render a dhtml menu over an IFrame containing an asp.Net DropDownList control

  88. Dave Massy says:

    Hi Chameleon,

    Sorry if it wasn’t clear from this post but the new Select element work has only been added to IE7 since beta 1. You can expect to see this work in the next preview build.

    Thanks

    -Dave Massy [MSFT]

  89. Anonymous says:

    I was wondering if this new select will support title tags for each option tag. In IE6 after resizing the select to a smaller size the options are cut off. In other browsers you can then add a title tag so that a tooltip will display the option’s full title on mouseover. I would assume this would be part of making it a standard HTML control, but I wanted to check and make sure.

  90. Alex Hu says:

    Please, for god sake,

    don’t let the dropdown list cut off the long text… to slove this problem, we have to use third party combobox which has performance cost… also, thanks for changing it to the windowless element.

  91. Jeff L says:

    Wow, congrats, you guys are finally where you should have been 7 years ago.

    Quote from KunCong above

    "Disable of OPTION is in the list of possible improvement in future IE release. "

    What do you mean "possible improvement"?? Support the damn standards, fix your mess of a browser. Disabling options is something we would LIKE to do…but can’t, because you won’t let us.

    By the way, maybe you guys should spend some time over here: http://www.w3.org/

    Quote:

    "he following elements support the disabled attribute: BUTTON, INPUT, OPTGROUP, OPTION, SELECT, and TEXTAREA."

    http://www.w3.org/TR/html4/interact/forms.html#adef-disabled

  92. Marcus T says:

    Great news this. This also makes life much easier for detecting clicks on SELECT objects. Our product records internet macros in Internet Explorer and with the old windowed control it gets the mouse event before the document, so you couldn’t use elementFromPoint using the mouse coords. We had to use a rather convoluted process of working out which SELECT object was clicked on. With IE7 it works just like any other DHTML object. Much easier! Thanks.

  93. Ron Buckton says:

    @Galeno in this preview it looks like "Ctrl +" zooms in, "Ctrl -" zooms out, and "Ctrl *" resets the zoom.

    I’m glad to see select now observes z-order. I’m tired of having to place an IFRAME behind any absolute DIV tags that I want to show above a SELECT element. I have yet to experiment, but does the new select play well with filters like Alpha?

  94. Internet Explorer 6 has lots of &quot;issues&quot; when it comes to displaying SELECT boxes.  Last week I found one which manifests itself when you create a SELECT box using the DOM.  Then I found a way to fix it.

  95. Negli ultimi mesi sono stato impegnato (tra le altre cose :-)) su un progetto piuttosto articolato basato

  96. Shiny Zhu says:

    症状:

    如果你采用了ajax来动态填充内容,在填充select的时候,页面上有两个select并排,如果填充的内容长度超过默认的长度,则在IE7下不会自动扩展后面一个select框的位置。如图所示第…