RE: IE8 incompatibility issues (was: Re: Issue: IE 8 adds new DOM Properties for ARIA -- not compatible with other impls)

As a Web developer, I would vote in favor of retaining the
element.ariaFoo properties, and encourage other browser vendors
to support  
that in upcoming versions. We've dropped namespace support in the
name of developer and author convenience; this falls in the same
bucket. 
Writing 
e.ariaChecked = true 
is far easier than the more convoluted 
e.setAttribute(...)

Marc Silbey writes:
 > I'm sorry for my delayed reply - as Chris mentioned, I was at MIX last week, on vacation until Tuesday and out of the office yesterday with a sinus infection...it's been a busy :)
 > 
 > Before I dive into the details of this thread, I want to step back and say that I'm excited for IE to be a part of ARIA and to be mostly in-line with other browser implementations with our beta - I think we're working together to make a very positive change in web accessibility.
 > 
 > We've been testing our implementation and will continue to test it using the test cases linked to in the best practices document. That said, we're clearly not done with ARIA yet. I appreciate the open feedback we$,1ry(Bre getting on our implementation now and I'd like the feedback to continue to flow so we can release IE8 with as close to 100% ARIA interoperability with other browsers as possible.
 > 
 > Now I want to respond to the specific issue this thread started with:
 > 
 > Chris is right that our top goal for ARIA is to be interoperable with other browsers. He's also right that we did not intentionally add functionality to our ARIA implementation. I want to share our implementation details with the group to help answer folks questions:
 > 
 > Cullen (on CC) is one of our OM developers and he implemented ARIA:
 > 
 > ------
 > "In IE, attributes need a name. The name needs to be defined such that we can provide programmatic access to it. For example, a name of $,1r|(Baria-busy$,1r}(B cannot be used in the COM accessor method names (get_aria-busy() is invalid syntax). Therefore, the property needs a way to expose both the dash-syntax as well as a way for the COM interface to access the property. Our convention in IE is to camel-case the name in place of the dash (aria-busy becomes ariaBusy). Then, we specifically say that the property$,1ry(Bs true name is $,1r|(Baria-busy$,1r}(B such that it is parsed in the HTML and that get/setAttribute() methods work as expected (in IE8 mode). Because the attribute name contains a dash, the accessor syntax in JavaScript that uses the format of element.foo cannot use the true name of the property (element.aria-busy is invalid syntax), so IE exposes the property via the camel-case format.
 > 
 > All of this is done automatically by our tools that take our interface definitions (including property and method definitions) and generate the necessary code for them. Our ARIA implementation did not add anything in the way attributes are handled. The behavior being observed is just how IE exposes properties/methods that have a name that contains invalid characters for programmatic purposes."
 > ------
 > 
 > If together we decide that we don't want to allow this DOM attribute behavior then we can either advise developers not to use it in the best practices document or we (IE) will look into doing extra work to remove the functionality in our ARIA implementation. I'd like to talk about these options and any others on one of the next wg calls.
 > 
 > Regards,
 > Marc
 > 
 > 
 > -----Original Message-----
 > From: Chris Wilson
 > Sent: Wednesday, March 12, 2008 3:19 PM
 > To: Anne van Kesteren; Simon Pieters; Dave Pawson
 > Cc: Jon Gunderson; Aaron M Leventhal; Charles McCathieNevile; Marc Silbey; David Poehlman; www-archive@w3.org
 > Subject: RE: IE8 incompatibility issues (was: Re: Issue: IE 8 adds new DOM Properties for ARIA -- not compatible with other impls)
 > 
 > Anne van Kesteren [mailto:annevk@opera.com] wrote:
 > >In IE8 you can do
 > >   element.ariaDisabled = true
 > >This is not possible in any other browser. In other browsers you are
 > >required to do
 > >   element.setAttribute("aria-disabled", "true")
 > 
 > Yup, that's clear now.  (To be more clear - the latter works in IE as well.)
 > 
 > >So if people use the former it will only work in IE8. Also, the idea was
 > >that ARIA scripts would work for older browsers as well as AT could simply
 > >read the DOM. If you introduce DOM attributes (such as ariaDisabled) this
 > >whould no longer be true.
 > 
 > That sounds like "we should never introduce DOM attributes again, and everyone should just always use getAttribute()?"
 > 
 > >> Yeah, I see that, and I've been thinking about that very issue.  Not
 > >> clear to me if Opera is happy if we simply make it so a standards-mode
 > >> DOCTYPE is necessary, as some of the invective is still demanding
 > >> removal of IE7 compatibility altogether.
 > >
 > >We're not happy with documentMode, but making X-UA-Compatible work just
 > >for standards mode would be an improvement. Just like doing IE8 mode by
 > >default is an improvement.
 > 
 > That sounds like a no.
 > 
 > -Chris
 > 

-- 
Best Regards,
--raman

Title:  Research Scientist      
Email:  raman@google.com
WWW:    http://emacspeak.sf.net/raman/
Google: tv+raman 
GTalk:  raman@google.com, tv.raman.tv@gmail.com
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc

Received on Thursday, 20 March 2008 23:27:18 UTC