Storyline Example: Generating Closed Captions

Jun 27, 2012

One of the complaints I've seen with Storyline's accessibility is the challenge of adding Closed Captions. There are a few ways to accomplish this in Storyline but most of the methods I've seen in practice make it difficult to separate the caption from the presentation. In other words, folks are putting text boxes on the slide to time the text. 

Here's a way to add CC to your presentations that is fast and easy - with the bonus of providing a toggle control to show or hide the CC and centralized styling and position of the display from a single object.

Take a look. The file is pretty self-explanatory, it employs relatively simple concepts with decent results. It's pretty easy to manage.

Story source file


176 Replies
Mark Cairns

Hi Jennifer, 

I've seen this issue before where the button stops working.

Try this. Delete the CC button on the master slide layout then add a new one and apply the trigger again.

Also, in one of the Master Slide layouts you have a lowercase 't' for the slide layer name. It should be the same as the first one to work properly - showTranscript

Here's a working version attached.

Sheryl Haney

Steve, I'm having a similar issue with multiple layer slides as Simon Ray.  Attached is a dummy file that illustrates the issue.  When the Caption is visible on a layer and you click the Captions button, it pauses the layer audio.  I sure hate to break up all the wonderful layers in my actual course file to avoid this behavior.  Any assistance you can provide will be greatly appreciated.

Jason Hammes

Hi There!

I really like this method for building in CC. I am trying to apply it to a video library I am putting together. Basically I will have a slide with an icon that when clicked pulls up a layer and plays a video.

I created a Feedback Master slide with the triggers and variable per Steve's instructions. When I preview I just cannot get that showTranscript layer to display.

I have messed with this nearly all day and am stuck. So, I am throwing it out to the community for some help.

I removed the media to shrink the file.

Stephanie Harnett

Hi Jason. I believe the issue is related to the fact that you are attempting to trigger a layer that is on the feedback master. My understanding is that you can't do this (anyone from Articulate, can you confirm this?).

To workaround it, copy the CC box that is on the 'show transcript' layer of the feedback master and place it on the base layer. Set it so its hidden by default and then adjust the triggers on the base layer from 'show layer' to 'change state' of the CC box.

Emily Ruby

Hello Jason and welcome to Heroes!

Stephanie is correct. You will not be able to trigger a layer on a Feedback Master Layer to show up.

What you need to do is create a new layer with your CC box and have that trigger to open/close upon clicking a button. You will also then need to adjust your variable to reference a text box within the layer.

I had added this to your slide here for reference.

Hope this helps!

Chris  Simonsen

Hey Steve, Great post. Just what I was looking for. I have a question though, I only want the captions to show up when there is text to display.  the caps box from the master seems to appear on all slides once the toggle is set.  Is there a way to only have the caps appear when there is text to display.



Dan Graham

Bill Harnage said:

So, could you take this one step further and make the CC part of the master template and then add a toggle button on the player??

Will have to test that out..

Just FYI.  I did a good bit of research on creating a toggle button that can be placed on the player.  I ended up adding a 'CC' button to the player that adjusts the 'CCtextShow' variable that I created.  Toggling this variable allows the user to show/hide the CC Text layer that I placed on the master slide.  

Here's the javascript code that I used...

var player=GetPlayer();

var cctext = player.GetVar("CCtextShow")

if(cctext == false)

{player.SetVar("CCtextShow", true)}



Just thought the community might find it helpful.  My client was TOTALLY against the idea of placing a 'CC text' button on the slide itself, so putting it on the player really worked out well.  

If anybody want's to see a sample of the the player in action, just let me know!

Alexandra McCormick

Steve's solution worked wonderfully. But I have the same issue with audio on multiple layers. You have to re-click the CC button to show the transcript. The transcript only displays from slide to slide if you are on the base layer. Is there anyway to have the transcript display when moving from the base layer to another layer?

I also have some slides with audio just on the base layer and learners clicking items on screen, such as a timeline, to show information on other layers. The audio continues to play from the base layer, but the transcript is no longer visible  because the learner is viewing information on another layer. Is there anyway to make the transcript visible?

david mckisick

Steve's solution has worked well for us in the past, but the text auto resizes, which has become a serious issue for us. It appears that there is nothing that can be done to fix this due to the nature of using a placeholder text variable to "feed" text into. What this means is that the text in one part of the slide will appear bigger or smaller than others.

Has anyone come up with a way to prevent this auto resizing from happening or another solution for CC where this does not happen?

P.S. Dan, your javascript idea worked great for me and it is very innovative. The idea behind it is that you open the Player window and add a "button", then have it execute Dan's javascript. This uses Steve's closed caption solution with the closed caption layer on the master slide and imitates the function of the toggle trigger used for the CC button. To make it work you have to use Dan's custom variable, "CCtextShow".

Steve Flowers

Hey David - 

Couple of ways around this:

  • Make your container taller so that if the text is too long it has 2 lines to fill before it starts compressing. You could make it 3 lines high as well. As long as the text is within a shape, it should wrap the line. By default, text will also float in the middle of the shape.
  • Make your CC text a bit shorter for each segment. I usually aim for 7 to 10 words. This ends up being 2 to 4 seconds of audio on average.
david mckisick

Thanks Steve. Yes, I also aim for 7 to 10 words, and on slides that contain a lot of text, I have had 20-30 placeholder objects for the CC. This is very time consuming, but it's better than the alternative of creating a closed caption layer for each slide where it becomes difficult to line up the text boxes with the audio on the base layer, because you can't see the timeline on the base layer to see where all the audio lines up.

I really do wish that Articulate would develop a solution for closed captioning as good or better than Captivate, because Captivate has a far better built in solution for this that is very easy to make use of.

This discussion is closed. You can start a new discussion or contact Articulate Support.