By continuing to use the site you agree to our cookie policy. Accept



A tale of accessibility: Internet Explorer and the Noscript Tag

October 2nd, 2009

In our ever increasing quest to make our sites accessible, we often investigate new ways of developing a rich interface without impacting on the original functionality. This usually involves developing an unobtrusive Javascript solution. One such example is the recent re-design of the TJS site and the different services we offer. Each service was designed to be accompanied by a brief description. This was to be used to provide extra information and where necessary a link to further clarify how this service could be useful to our potential customers.

However, the increase in content inevitably reduced the ease with which visitors could quickly browse our offered services. A solution was therefore decided upon that used an accordion effect to toggle the display of the extra content. Making use of the jQuery library, the initial and unfortunately non-final solution used the NOSCRIPT element as a container for the content. The NOSCRIPT element "allows authors to provide alternate content when a script is not executed" e.g. when Javascript is disabled. The internal content of the element could then be manipulated to the correct position on the page without any problems occurring while the Javascript loads. This solution worked flawlessly in most modern standards compliant browsers such as our chosen development platform Firefox and even the older usually more troublesome browser Internet Explorer 6.

This did not end up as the final solution due to one reason, Microsoft's decision to remove the ability to access the NOSCRIPT element's content using Javascript in Internet Explorer 7 & 8. This doesn't seem to fit with my interpretation of the standards nor the majority of recent browsers and is some what confusing. I don't believe it presents any security problems and according to the official specification the only limitation mentioned is that it "should only be rendered by a script-aware user agent". To me rendering suggests being displayed on the page, this does not mean we shouldn't be able to manipulate it as we see fit.

As you can see from the final version of the Services page, the solution we developed achieves the same effect and degrades perfectly fine if Javascript is disabled. It just took a bit more effort to reach a solution suitable for all browsers.