Issue with restricting navigation with custom buttons and keyboard shortcuts

I've created a course with custom previous and next buttons. For Section 508 compliance, I've added keyboard shortcuts to these buttons so the learner can also use the left and right arrow keys to navigate.

However, I must also restrict the navigation on each slide so that the learner cannot advance to the next slide until either a) the timeline ends, or b) the interactions on the slide have been completed.

So I've followed some instructions I found on this site to set the next button in Disabled state upon entering the slide, and a trigger to change the state to Normal when the timeline ends. Then I added another trigger to try to restrict the corresponding keyboard shortcut (right arrow key) as well. The trigger I created is designed to jump to the next slide when the user presses the right arrow key if the state of the next button is Normal (which occurs at the end of the timeline per the first trigger).

This seems like it should work, but the right arrow key is allowing navigation to the next slide prior to reaching the end of the current timeline, despite the fact that the next button is in Disabled state until the end of the timeline.

I'm creating these triggers at the slide level instead of the master slide level because each slide has different conditional requirements.

I've also checked to make sure there are no "stray" or conflicting triggers that might be affecting it.

Any insights would be greatly appreciated.

7 Replies
Crystal Horn

Hi Brad.  I like your thinking!

As an alternative, I would suggest making a true/false variable that is adjusted when the slide interactions and/or timeline is complete.

You could then add a condition to your trigger that is based solely on that variable rather than the state change of the player button.

For example:

  • Adjust variable Slide1Done when timeline of Slide 1 ends
  • Jump to next slide when user presses the right arrow key IF the value of Slide1Done is True

Feel free to share what you've got so far, and we can take a look at that, too!

Brad Goertz

Thanks, Crystal. I used the solution you suggested, and things work fairly well. I still had an issue with how to handle it when a learner revisits a page. Here's what I came up with:

1) Create the Slide1Done variable.

2) Create 4 triggers on Slide1:
--2a) Adjust variable Slide1Done to True when the timeline ends (or another
--2b) Change the state of Btn_Next to Normal when Slide1Done changes if Slide1Done is True (this handles the state change the first time the learner visits the page)
--2c) Change state of Btn_Next to Normal when the timeline starts IF Slide1Done is True (this handles when the learner revisits a page)
--2d) Jump to the next slide when user presses the right arrow key IF Slide1Done is True

3) Repeat these steps for every slide in the course.

Ashley Terwilliger

Hi Lyndsey,

What version of Storyline are you using? With your permission, I’d like to take a look at your project file to investigate what’s happening. I’ll delete it when I’m done troubleshooting.

If you’d prefer to keep the file private, please share with me directly by uploading it here.

It'll also be helpful to know what browser you're using, and if you're using a particular screen reader or simple the tab/arrow keys to navigate.