Follow

Solution for Captivate Courses that complete before course loads...

Avatar

Question

The SCORM standard requires a SCORM player to assume content will not be reporting completion status until the content sets the status to incomplete. So the best practice for content providers is to immediately set the status to incomplete. Unfortunately, Captivate didn’t follow that best practice. It waits until the embedded SWF file starts playing and then it sets the status to incomplete. This causes a completion if you exit the content prior to the SWF loading...is there a way around this?

 

Answer


One of our clients passed this along to us...We were able to correct Captivate to follow the best practice by modifying the HTML file that it generates. We added a line between line 103 in the image below. This line sets the lesson status to incomplete immediately after initialization instead of waiting for the SWF file to load.

 

captivate_code.jpg

 

You can edit the HTML files already published from your Captivate movies, or you can republish them using the attached Captivate template which we have customized. The attached file Custom.htm, can be saved to C:\Program Files\Adobe\Adobe Captivate 4\Templates\Publish\SCORM\1_2\Custom.htm and then selected on this screen during the publishing process.

captivate_settings.jpg

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

  • Avatar
    Philip Hutchison

    Regarding this statement:

    "The SCORM standard requires a SCORM player to assume content will not be reporting completion status until the content sets the status to incomplete."

    I'm curious where this is stated in the SCORM spec, and which version of the spec it's referring to. I don't recall ever seeing this requirement, and I can't find any mention of it in the SCORM 2004 4th Ed docs.

  • Avatar
    Mike Rustici

    Hi Philip,

    The behavior apples to all versions of SCORM and even dates back to AICC. It can be a bit tricky, but it is correct. The rationale for this behavior derives from an underlying assumption of SCORM that by default activities are non-communicative assets. I believe this default was chosen to make it easy to automatically aggregate dumb assets into a course. If you start with the assumption that an activity is not going to communicate, then it is logical behavior to set that activity to completed if it is launched and exited without receiving any communication of status.

    In SCORM 1.2, this behavior is defined in section 3.4.4 of the Run-Time book, under the definition of cmi.core.lesson_status. From "LMS Behavior":

     

    "If a SCO sets the cmi.core.lesson_status then there is no problem. However, the SCORM does not force the SCO to set the cmi.core.lesson_status. There is some additional requirements that must be adhered to successfully handle these cases:

    • Upon initial launch the LMS should set the cmi.core.lesson_status to "not_attempted".

    • Upon receiving the LMSFinish() call or the user navigates away, the LMS should set the cmi.core.lesson_status for the SCO to "completed"."

    In SCORM 2004, the behavior is more subtle as it is defined in the sequencing and navigation spec.

     

     

    3.13.2. Completion Set by Content 

    The Completion Set by Content element indicates that the content object associated with the activity is responsible for communicating whether or not the activity is complete; this 

    information affects the activity’s attempt progress information (refer to Section 4.2: Tracking Model).  This element contains a boolean (True/False) value.  The default value for Completion Set by Content, if not defined explicitly for the activity, is False. 

    [snip]

    If the Completion Set by Content element on a leaf activity is defined as False and the activity’s associated content object does not communicate completion information, the LMS will assume the activity has been completed when the current attempt on the activity ends – attempt progress status will be True and attempt completion status will be True. 

    3.13.2. Completion Set by Content 
    The Completion Set by Content element indicates that the content object associated with the activity is responsible for communicating whether or not the activity is complete; this information affects the activity’s attempt progress information (refer to Section 4.2: Tracking Model).  This element contains a boolean (True/False) value.  The default value for Completion Set by Content, if not defined explicitly for the activity, is False. 
    [snip]
    If the Completion Set by Content element on a leaf activity is defined as False and the activity’s associated content object does not communicate completion information, the LMS will assume the activity has been completed when the current attempt on the activity ends – attempt progress status will be True and attempt completion status will be True. 

     

    ADL doesn't think that all communicative content needs to change this default value (see ADL Note at the end of this section), however we disagree. ADL makes the assumption that content will fully launch and, if well written, have the opportunity to set a status value immediately upon launch. In reality however, there arise many situations where the content launch will not fully complete due to many eventualities such as pop-up blockers, dropped connections or users' rapid navigation. And, of course, in the real world, not all content is well written. We recommend overriding this sequencing rule in all content as well as a couple others ( more info).

  • Avatar
    Philip Hutchison

    Thanks for the clarification, that makes sense. It's disappointing the official SCORM documentation doesn't spell this out more clearly. It should be explicitly mentioned in the RTE book under lesson_status/completion_status.

Powered by Zendesk