Search code examples
javascriptscormjaws-screen-reader

JavaScript and JAWS - and SCORM?


I'm currently enhancing a user interface to check off various accessibility points, and then I read somewhere in a spec deep down in the fine print that what I'm doing must be JAWS compatible.

Normally that's fine, keep things simple, intuitive and abide by rules - but what about when SCORM is involved? I'm dealing with a frameset, reams of JavaScript, an aged Learning Management System, and its pretty daunting.

Is compliance with JAWS in the context of pages delivered through framesets and using loads of JavaScript possible? Should I be freaking out even more and demanding more money?

Providing code at this point would involved completing a test module and packaging it, unfortunately my budget doesn't allow for this level of question-asking, so I am hoping someone can offer some help/guidance based on information alone - if you need more, please ask!


Solution

  • You can do it, you just have to be careful. Frames and JavaScript can be bad for accessibility, but they will only cause problems if improperly used.

    SCORM requires frames (a frameset or iframe), and many people rightly say frames are bad for accessibility. The truth is, they can certainly make sites less accessible if poorly constructed (or deeply nested), but assistive browsing technology like JAWS can handle them if they're created with best practices in mind, such as providing clear titles and structure. WebAIM has a good tutorial on frame accessibility.

    As for JavaScript, JS is generally available in most assistive technology (98.4% according to a recent survey), so it isn't a showstopper. However, JavaScript can be very dangerous for accessibility if you're using it to dynamically modify the DOM or introduce interactivity (create new markup, animations, make static elements like DIVs clickable, etc.). Assistive technology sometimes doesn't know that JavaScript has modified the content of a page after the page initially loaded, so the visitor has no way of knowing there's new content right in front of him/her. If you use JavaScript to dynamically alter your page's content, be sure to use WAI-ARIA techniques.

    SCORM's JavaScript is a different topic altogether. As far as the browser is concerned, SCORM's JavaScript simply handles the course-to-LMS communication, and doesn't change any of the page content on-the-fly. This means SCORM's JS should have no bearing on JAWS, because it doesn't affect your page's markup, and doesn't affect the DOM in any way.