Site Navigation

Wednesday, April 30, 2008

bug 230 - no Element.attributes array in IE8

Issue: #230
Affects: IE8 Beta 1, IE8 Beta 2

When inspecting an element (especially in IE) we often look to the attributes array to get information on what is set.

There are actually 4 ways to get access to an attribute using the attribute array.

1.) Iterate over each index in the array
2.) Iterate over each key in the array (associatively)
3.) Get by index
4.) Get by key

Unfortunately in IE8 Beta 1, all of the above are broken!

Example:

Test DIV
with id="testme"
with style="border:1px dashed red;padding:4px;"
with align="center"








Known Workarounds: None.



Related Issues: None.

Bug/Site Feedback |
Submit a bug

Tuesday, April 29, 2008

bug 163 - no valign in table cells in IE8

Issue: #163
Affects: IE8 Beta 1
Fixed in: IE8 Beta 2
MSIE Feedback ID: 333908


A regression bug has been found in IE8 (Beta 1) whereby it is impossible to set the valign attribute of a TD or TH cell.

No matter what you try to set this to: valign="top", valign="middle", valign="bottom" it will always set it to behave as "bottom".

Example:

topmiddlebottom
topmiddlebottom



Known Workarounds: None.


Related Issues: None.

Bug/Site Feedback |
Submit a bug

Saturday, April 26, 2008

bug 173 - form field focus issues in Safari

Issue: #173
Affects: Safari 3.1 (Win), {Safari 3.1 (Mac)?}

As more and more applications go online in this Web 2.0 world, interactions with forms are critical to an applications success. Safari leads the way with built-in textarea resizing but it has a major issue with form field focus.

Since data entry in forms is a crucial part of online forms, ensuring that your forms are both keyboard and mouse navigable is important. Unfortunately in Safari the keyboard navigation breaks if you use the mouse on radio or checkbox elements. This becomes a major issue because although radio and checkbox elements are keyboard accessible, in general users prefer to use the mouse to make their selection(s).

The issue is this. If you use the mouse to select a radio or checkbox field one expects that that field has the focus and thus a 'Tab' will take you to the next available field (or whatever is defined in the tabindex order). When the user presses 'Tab' in Safari, the focus resets to the first form field on the page!

If you use the mouse for other types of fields, or use only the keyboard the issue doesn't occur.

Example: (Try it out!)

First Name:
Last Name:
Email:
Life Story:
Gender:
Female
Male
Pets Name:
Spam Preferences:
Pornography (NSFW collection)
Medications (weight loss, ED, muscles)
Mortgage/Loan (impossible rates)
Religion (guilt, pressure, overtones)
Fakes (fake rolex, cartier, artwork)
Hot Stocks (buy! buy! insider info)
Pirated software (OEM, Bulk, Download)
Illegal Music/Movies (Torrents, P2P)
Surprise Me! (Scams, popup, virus)
Address Line 1:
Address Line 2:
Comments:




Known Workarounds: None.



Related Issues: (bug 132).

Bug/Site Feedback |
Submit a bug

Friday, April 18, 2008

Bug or Feature? - Round Two

Round Two - Safari changes your styles did you know?

Other rounds: [One|Two|Three|Four|Five]

We're back again with another round of "Bug or Feature?" (see round one) highlighting a particular behavior in one or more browsers, that, well, could be a Bug, or it could be a Feature... we'll open up the comments for your vote and opinion.

Alright, what's todays "Bug or Feature"?

Synopsis:
In Safari, usability of textarea elements has been greatly improved by allowing the user to decide how wide and how tall it should be, by making a grippy that the user can drag to stretch. Its a great feature, that many other browsers are looking into (Ask ASA, it's on his top 10 for Mozilla Firefox).

What is interesting, is that as a developer, if you ask for the .innerHTML of an element that wraps a textarea in JavaScript, it will report back exactly what you supplied... *except* if the user changed the dimensions of the textarea, the style attribute is now filled with margins, paddings, width and height values that you didn't specify.

If I have the following HTML, I would expect it to return the same content:

Example HTML snippet:

<div>
<textarea name="a_textarea" cols="40" rows="4">
Hello World
</textarea>
</div>


Expected [div].innerHTML returned:

<textarea name="a_textarea" cols="40" rows="4">
Hello World
</textarea>


Question:

If the user stretches the textarea in Safari (or later in other browsers), and you asked for the .innerHTML and got something different than the HTML fragment above...

Try it yourself.


(ignore the br tag in the alert (blogger auto-inserts this)

Is this a Bug? Or a Feature?

Vote "Bug" or "Feature", and add your thoughts.

Wednesday, April 16, 2008

bug 403 - another getElementsByName() bugs in IE

Issue: #403
Affects: IE6, IE7
Fixed in: IE8 Beta 2


Related to (bug 411), another bug with getElementsByName( name ); has been noted.

If you dynamically change the name attribute of an element (e.g. an input box) it will affect the form submission, but in IE it won't actually change the name attribute. See these bugs: (bug 199), (bug 235), (bug 237), (bug 240) & (bug 242)

What this also means, is that in IE, if you try to retrieve the elements you have renamed, you will not be able to retrieve them.

Example:

<script type="text/javascript">
var myElem = document.forms[0].elements['oldname'];
myElem.name = 'newname';//can't use .setAttribute() due to another IE bug

//how many elements with the name 'newname' do we now have?
alert(document.getElementsByName('newname').length + ' elements found!');
</script>


In IE, this will alert ZERO.


Known Workarounds: None.



Related Issues: None.

Bug/Site Feedback |
Submit a bug

bug 385 - valid CSS class names that fail in IE6

Issue: #385
Affects: IE6

In IE6, attempting to use a valid class name that starts with an underscore will fail.

Example:

<style type="text/css">
._myCSSClass {
/* This is a valid Class Name, but it will fail in IE6 */
border: 1px solid #ff0000;
margin: 1px;
padding: 3px;
}
</style>



Known Workarounds: None. The only option is to name all classes with an initial [a-zA-Z] character.

Example Workaround Code:

<style type="text/css">
.myCSSClass {
/* This is a valid Class Name, AND will work in IE6 */
border: 1px solid #00ff00;
margin: 1px;
padding: 3px;
}
</style>



Related Issues: None.

Bug/Site Feedback |
Submit a bug

Thursday, April 10, 2008

bug 371 - named anchor links are broken in IE8

Issue: #371
Affects: IE8 Beta 1, IE8 Beta 2
Fixed In: IE8 PR 1


MSIE Feedback ID: 331609

A regression bug has been found in IE8 Beta 1 whereby an anchor link will not work if the anchor doesn't contain a text node.

Example:

<a name="broken"/>

<a name="works">This works</a>



Known Workarounds: None.



Related Issues: None.

Bug/Site Feedback |
Submit a bug

Tuesday, April 8, 2008

bug 333 - microsoft drops all support for opacity in IE8!

Issue: #333
Affects: IE8 Beta 1 - IE8 RTM?
Status Fixed in IE8 PR1 (see notes)
MSIE Feedback ID: 331735

According to blogs around the 'Net and the IE Feedback site Microsoft has dropped all support for CSS opacity in IE8.

This includes the CSS3 property:

opacity: 0.25;
AND
filter:alpha(opacity=25);

Apparently this is "By Design". As a developer I seriously hope they reconsider this. The filter hack wasn't the best, but no method to set opacity is certainly not "innovation".


Example:

<style type="text/css">
.inDragMode {
opacity: 0.25;
filter: alpha(opacity=0.25);/* Hack for IE 6-7? */
}
</script>



Known Workarounds: Fixed (Notes): One.
As part of IE8's push towards better supporting Web standards they needed to alter the syntax of the proprietary filter() syntax. To make opacity work in IE8 (and all browsers), you'll need to do this.


#faded {
opacity: .5; /* Standards Based Browsers */
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); /* IE (before IE8) */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* IE8 */
}

or for the short form:

#faded {
opacity: .5; /* Standards Based Browsers */
filter: alpha(opacity=50); /* IE (before IE8) */
-ms-filter: "alpha(opacity=50)"; /* IE8 */
}



Related Issues: None.

Bug/Site Feedback |
Submit a bug

Will IE8 fix IE's DOM Support issues - Poll Results

Will IE8 fix their DOM Support:

In our last poll, we asked if you felt that IE8 would fix their DOM Support? The poll was live long before the IE8 Beta 1 came out and thus nothing was known about the new version since Microsoft isn't very forthcoming with sharing a road map with developers.

Regardless, the mood of the development community was reflected in the results that came in before the beta release, and was only slightly different after developers got some first hand experiences.



Results:
Yes Completely - 4%
Not A Thing - 16%
Minor Fixes Only - 15%
Mostly Fixed - 3%
Fix Some, Break Some - 30%
I Don't Care Anymore - 5%
Don't Make Me Laugh - 27%


To be honest, most were taken back by Microsoft's commitment towards standards, and actually taking the (correct) brave step to render in Standards Mode by default.

Many of the long standing bugs DOM Bugs were fixed, although there were many that didn't see any attention at all. New features were added, but the overall UI was hardly improved upon at all (from legacy chrome/usability bugs, to the un-movable toolbar issues).

If history of IE7 development is to repeat itself, expect a few more betas for IE8, then an RC (Release Candidate), and a final RTM (Release To Market) date sometime late in Q4, 2008 or Q1, 2009 if they continue to fix ignored issues.

As noted here day 1, we promised to link into the public bug tracking systems for each browser, when and where they became available (and we certainly have done so - if you find a bug listed here that doesn't reference the IE Feedback bug number, please let us know!). When IE8 Beta 1 was released, Microsoft re-opened their "IE Feedback" site at Microsoft Connect, so that developers could view and track bugs with input from Microsoft. It isn't a full public bug tracking site, but it has been dearly missed since it was dismantled after the IE7 release, in fact one of the reasons that this Blog started! ;-)

We hope that the IE Feedback site will stay open forever (or some similar site) so that developers can continue to benefit from its presence, however when directly questioned, the response was less than an absolute yes on the IE Blog.

We wish the IE Team the best of luck on shipping IE8 with great DOM Support to an eager developer base, lets just hope we can close a bunch more issues before it is shipped out the door!



Bug/Site Feedback |
Submit a bug

Sunday, April 6, 2008

bug 284 - no native XMLHttpRequest object in IE

Issue: #284
Affects: IE6, IE7, IE8

What!? you say? "They added this in IE7!" - Well yes, no, not quite!

Microsoft did add a non-ActiveX version of XMLHttpRequest ("XHR") so that if a user had turned off ActiveX for security reasons, AJAX would still work (this was a good thing).

However there is a key feature of JavaScript Objects that makes them so useful is that you can Prototype on them to add properties, methods, expando properties, or even subclasses. In addition it doesn't extend from Object, thus any prototyping done there won't be available on XHR, and none of the methods on XHR are exposed.

In IE6, the XHR Object was an ActiveX control only, in IE7 they added a "native" one, but it was just access to the XHR Object that didn't require ActiveX. In IE8 Beta 1 there are no changes, but In IE8 RTM, will we see a true native XMLHTTPRequest Object?


Example:

Lets say you wanted to improve the user experience when an AJAX request is sent to the server.


  • You might want to set a timeout that a response is expected by, and if it isn't cleared, automatically call an error handler.

  • You might want to queue up/discard duplicate requests if the browser has already sent a request in, and is waiting for a response.

  • You might want to add some debug capabilities to trace the progress of your AJAX Requests

  • Since an AJAX request might be very expensive on your server, you might want to add the ability to pass in a "cancellation" request, that is "tied" to the original request... this way if the user closes a window, or runs another query, you could send a quick "one-way" request to the server to cancel the first request.



In any of these cases, being able to store applicable info on the XHR object is ideal, and adding methods would enable callbacks to be self-contained.


<script type="text/javascript">
var myXHR = new XMLHttpRequest();
myXHR.lastAccess = null;
myXHR.requestTimeout = 15000;
myXHR.requestTimeoutHandler = myTimoutHandler;
</script>


The above will fail in IE, since expando's and prototypes are not an option.

Want to see what Properties/Methods are exposed on XMLHttpRequest in your browser?
Click the button to find out! (check in other browsers too)


(PS If you subscribe to this Blog via RSS/Atom, please try the button on the Blog site as we needed to update the sample several times to overcome some Blogger auto-line-break issues. - thanks)


Known Workarounds: None.


Related Issues: (bug 186), (bug 181).

Bug/Site Feedback |
Submit a bug