Branch Aware Quiz


A recent question on the forum (Duplicate Quizzing) and my plan to write an e-book dedicated to Captivate Quizzes is the reason for this post. Forum user wanted small quizzes in different languages in the same Captivate file. If the trainee chooses for a language, He should be scored only for that language. I explained that 'Branch aware', feature added to Captivate with version 6, was the way to go. Help documentation however is pretty concise: exactly 91 words.  I wanted to explore this feature more in depth, and see how to create the best experience in each language, which is not that intuitive as you'll discover. It is more the localisation of Quiz/Score slides that is cumbersome.

Example movie

Play this movie to see the result. After the title slide, you'll have to choose one out of three languages, or all the questions. There are three questions (same) in each language, totalling 9 questions. The score slide is not totally localized as you'll see. Each question has one attempt on question level. I provided two attempts on quiz level. You'll be able to Retake the quiz once, and to Review. Backwards navigation is not possible. Branch aware setting automatically disables navigation (no playbar). Watch the progress indicator, which I edited to 'X/Y'. Refresh your browser window if you want to replay the movie. 

On the question slides a text caption with 4 system quizzing variables is inserted:
  1. cpQuizInfoPointsscored: score obtained by user until now
  2. cpQuizInfoTotalQuizPoints: maximum score if all questions have been taken; this can be found in the Advanced Interaction panel (F9)
  3. cpQuizInfoTotalCorrectAnswers: number of correct answers until now
  4. cpQuizInfoTotalQuestionsPerProject: total number of questions in the Quiz, also to be found in the Advanced Interaction panel (F9)

Quiz Setup

Quiz Preferences

In the screenshot  you see that:
  • 'Branch aware' is checked
  • 'Allow Backwards movement' is unchecked
  • 'Show score at end of Quiz' is checked
  • 'Allow user to review the quiz' is checked
  • 'Hide Playbar in Quiz' is checked
In Pass/Fail I allowed two attempts, and show the Retake button. Since the score slide is the last slide of the project, I didn't specify any actions on Quiz level, both are left to 'Continue', which means going to the End slide. The progress indicator was changed like this to make it universal, because you cannot localize it in this specific situation, it needs to be the same in all question slides. I changed it in Quiz, Preferences, Default Labels:
In the movie you saw that this indicator doesn't appear as configured, probably because the factor Y, total number of slides, is unknown at the start of the quiz. 

Object Styles/Master slides

The feedback captions are replaced by shapes (rounded rectangles) and I edited the colors with the Theme Colors used in this custom theme. 

For each language I created Quiz master slides (for the used question types) to localize the buttons. As usual I dragged the Next button (invisible here) under the Clear button ('Wissen' in Dutch). I didn't bother about the Back button because I accepted to delete those Back buttons when unchecking 'Allow Backwards movement'. 

Localization remains a cumbersome work flow: you cannot translate the content of the feedback containers on the master slide, this has to be done on the slides.

It had no sense to localize the Score master slide, because each Captivate file allows only one Score slide. Read later on why I didn't drag the Review under the Retake button, which is my normal work flow for Score slides.


Dashboard to Quiz

I created a user variable v_lang that will remember the choice of the user. For its values you can use numbers, one character (my choice: 'D' for Dutch, 'F' for French, 'E' for English) or a word. This variable is populated on the dashboard slide (slide 2) with the stars. Each star is a shape button, triggering a shared standard action. In these two pictures you see screenshots of the template and of the parameters, both filled in for the Dutch button star. Statements are self-explanatory: assigning a value to v_lang, disabling all buttons, applying an effect to non-chosen buttons and showing the right text.

If the user prefers to take all questions, by clicking on the CP-button, the value of v_lang remains empty. To make it possible to check for an empty value, I needed a second user variable v_null as explained in this post: Where is Null

The CP-button on the slide controls the navigation with a conditional advanced action that has 4 decisions. First decision 'Empty' checks if v_lang is empty, the three other decisions check which language was chosen (values D, E or F). 

Quiz to Score slide

Last slide of each group of questions needs a conditional navigation because of the branching. On Exit event for question slides is not available, the action has to be triggered both by the Success and Last Attempt event in the Quiz Properties, Actions part.

Because this action EndQuiz has never to be edited, I preferred a conditional advanced over a shared action:

Score slide

What is different?

If you watch the system variables displayed in the movie, and compare them with the numbers on the Score slide, you see that they only match if all questions are taken. When only one branch has been done, you see a difference for:
  • Maximum score (cpQuizInfoTotalQuizPoints), which is used to calculate the percentage as well; it contains always the total number of questions, but the results slide shows only the maximum score for the questions in the Branch taken by the user.

  • Number of questions (cpQuizInfoTotalQuestionsPerProject) also contains the total number of questions, but on the results slide you'll see the number of questions in the Branch taken.
Consequence is that you will not be able to create a custom score slide (see: Intermediate score slides)  when Branch aware is checked.

I discovered another difference in the behavior of the Retake button. For a non-branching quiz, the Retake button will disappear automatically in two situations: when the Quiz attempts are exhausted or when the user passes the quiz. If you check Branch Aware, the Retake button does not disappear when the user passes, only when the Quiz Attempts are exhausted. Bit strange. To avoid confusion between the Review and the Retake button I use to drag the Review button under the Retake button. This prevents the user to Review a Quiz before having succeeded or finished the Quiz attempts. That work flow proves impossible with Branch aware checked. For that reason I had to show both Review and Retake buttons, and add a warning in the custom Feedback. I dragged the Retake button over the Continue button, because that button also can lead to confusion and should never be deleted. 


That was the toughest part. Only one default score slide is allowed in any Captivate project, the numbers shown in that score slide cannot be retrieved for use in custom score slides. 
Each field on the score slide has a 'label' and a 'number' part, they are linked. You can format them separately, but you cannot delete the label and keep the number result.
I had to cheat, because the labels needed localization, and I decided to change the color of the default labels to the same color as the background of the slide (luckily a solid one-color fill), to make them invisible. Then I made them small and dragged them to a corner of the slide. 

That way I was able to add custom labels, which are grouped in the Timeline; each group (Gr_Dutch,....) also includes a localized title:

The feedback on the score slide appears normally in the Review Area. It is possible to drag that area off stage. I created 8 feedback shapes and grouped them in Gr_Review. The appropriate feedback will appear due to another conditional advanced action triggered by the On Enter event of the Score slide. This action has 8 decisions, you see first 3 decisions in this screenshot; the other decisions are similar:

The buttons are not localised, and I didn't create trilingual labels for the users that took all questions. It would be possible for the buttons, when splitting them up in a button and an overlay text, but I always get tired when having to localize Quizzes, sorry for that.


Branch aware is a great feature (if you don't have to localize). I hope you discovered with me how to set it up, and where you have to be careful. Maybe the localization tips are overkill for the lucky Captivate users who never have to create a project in another language than Captivate's language :)

And for the fans, between the lines you could discover a tip about choosing between shared and advanced actions as well. Hope you discovered that tip?

8 responses
Brilliant post, thank you for taking the time to share it
Thanks for sharing this. Do you think it is possible to create something that allows you to retake the quiz, but the second time in another branch? For example, change in this example the languages to Levels. First you follow Level 1. Some information slides, then a quiz. Next: you go back to the first slide, select Level 2. You follow a new branch, new quiz. Thank you for your thoughts on this. Sam
Sam, have no idea, but I suspect this depends as much on the LMS that you use to report as on Captivate. Within the Captivate course, Branch aware makes the quizzing system variables dynamic, they will report only about the scores of the slides that the student visited. At first sight your scenario should be possible. However if the maximum score is different for the two branches/levels, how will the LMS cope with that difference in reporting data for the same SCO? Worth testing, but cannot guarantee anything.
Maybe branching isn’t the right approach then? As an alternative, I was thinking of a “start" slide with different buttons for each level. Each button jumps to the URL of a separate Quiz, stored in the LMS. What I don’t know in Captivate: if you open a new URL via “jump to” action, by default, by default, it jumps to the URL in the same window. Does this action also close the current project in a proper way, so the LMS knows it is closed? Or does it keep the state “not complete”. Now, it doesn’t really matter if the start slide’s state stays “not completed” or “completed” - since the important report comes from the Quizzes. (now that’s a tongue twister: start slide state stays) The reason why I want to launch different quizzes from a slide, and not from the LMS is because the graphic possibilities in the LMS are very limited and deliver a poor user experience.
Very useful Lieve! Thanks for sharing.
Hi Lieve, Would you be able to include audio tracks in each of the groups so that only the localized version selected by the user plays?
No problem for the question slides, since they are separate for each language. For the common slide (score slide) however, with Play Audio and a conditional action everything would work fine. The only issue is that the Play Audio command doesn't allow to create CC the same way as slide audio. Slide audio cannot be controlled by an action.
1 visitor upvoted this post.