Skip to main content
Participant
September 11, 2008
Answered

Pressing Tab key activates player controls

  • September 11, 2008
  • 3 replies
  • 10683 views
I'm simulating an application that requires the use of the Tab key. Within Captivate the Tab key is a shortcut for a click box that simply advances to the next slide. During playback when the Tab key is pressed, in addition to advancing to the next slide, a player control button is enabled as indicated by it being highlighted. In the simulation the user may be required to press the Tab key a specific number of times, which in turn advances to the next slide and highlights the next player control button. Once the user has pressed Tab the required number of times, any one of the player controls will be highlighted. In the simulation, users are usually required to press Enter after a sequence of Tabs, which in addition to executing the desired simulation action, also executes the currently highlighted player control button. This could be anything from Rewind to Exit and everything in between. That's the problem in a large nutshell.

I've tried the "tab_no_yellow.swf" and "tab_no_yellow_global.swf" wizards to no avail. The result of using these files has been varied. They include no change at all, no action at all, and the user has to press Tab twice for every single press in the real application.

I've tried disabling the player controls altogether which resulted in completely bizarre Tab key behavior. In this configuration, pressing the Tab key appears to go through a list of 'hidden' player controls before executing the programmed click box action. It's pretty consistent ... it takes six Tabs to execute "goto next slide" the first time and five Tabs thereafter. If Enter is pressed before it gets through all the hidden player controls, it executes whatever player control it happens to be on.

Here's the environment this is happening in:
Captivate 3
Skin: BMP Playbars
Playbar: Captivate
Show borders: disabled
Publishing: SWF only - no html - Flash Player 7 (also tried 8 & 9)

The resulting SWF file is played as an animation on a Lectora (Trivantis) generated html page in a fixed IE 6 browser window - no toolbars, no address bar, no scrollbars, etc.

Any help to resolve this dilemma is greatly appreciated.
    This topic has been closed for replies.
    Correct answer crg381
    Thanks for your reply. I had discovered that information earlier, but still couldn't get the application to work. In the end, it was part of the solution though. Here's what it took to get things working:

    In Captivate
    - Disable the playbar
    - Disable 508 Compliance
    In Lectora
    - Add 'SeamlessTabbing' as a parameter to the .swf object and set its value to 'false'

    3 replies

    Inspiring
    September 13, 2011

    Hello,

    I am trying to get a successful workaround with this issue, but so far, no luck.

    I've tried editing the standard.js as suggested above, along with the htm file, but it didn't help.

    I also downloaded a trial version of flash and edited the playback bar. I'm not sure if that works, though, because the edited playback bar doesn't display as an option when I go to Project > Skin Editor. I'm not sure if I am doing something wrong since I've never used Flash before. Here are the steps I took:

    1. Opened the playback bar (I chose Steel.fla) in Flash

    2. Selected Action on the timeline.

    3. Selected Windows > Actions

    4. Added the this.tabChildren=false; line of code.

    5. Flash wouldn't allow me to simply save the new file. I had to Save As. So I saved as Steel_custom.fla

    6. I also had to save the file to a different location, so I saved it on my desktop.

    7. I selected Publish.

    8. I then moved the file to: C:\Program Files (x86)\Adobe\Adobe Captivate 5\en_US\Gallery\Playbars\AS3

    9. I re-opened Captivate and attempted to change the playback bar to the new one, but it doesn't display.

    I would appreciate any feedback on if the steps I took are correct or if I'm missing something. I would also love to know if there's a better work around at this point. I'm using CP5.

    Also, is there a work around for publishing to an exe file?

    Thanks in advance!

    Known Participant
    September 13, 2011

    If you have never used Flash before there are any number of things that may be wrong that you wouldn't know to look for. The only thing I see that I would have you double check right off is #8:

    8. I then moved the file to: C:\Program Files (x86)\Adobe\Adobe Captivate 5\en_US\Gallery\Playbars\AS3

    "the file"

    Make sure that the file is the published Steel_custom.swf file and not Steel_custom.fla file.

    That would be the most obvious reason it wouldn't display in the Captivate selections that I can think of without a closer look at your work.

    Inspiring
    September 13, 2011

    Oh thanks! That was exactly it. I had moved the .fla file instead (and felt dumb because all of the other files were .swf, so I should have known... )

    So far, it seems to be helping.

    Known Participant
    January 21, 2011

    This is still a problem in Captivate 5. I have software training that requires the student to click the tab key after text entries. After doing this the focus is switched to the captivate player bar far left rewind button. I can't figure out how to disable this. It isn't connected to the browser because this is all contained in the swf file. I have tried turning off accessibility but that doesn't seem to affect this. I even edited the player bar and tried to turn off the tabbing function from that location.

    I have also tried adding the extra click box to take the focus when the tab button is pressed but that didn't work either.

    I can't actually disable the player bar because it need to stay active, I just don't want the focus switched there each time the tab key is pressed. I had someone inadvertantly press the enter key and ended up back at the beginning of the training and didn't know what happened.

    Any one know how to how smart this thing?

    Help! Thanks!

    Known Participant
    January 24, 2011

    I solved my own problem on this for anyone else who needs it.

    Open the AS3 flash version of the playerbar that you are using and add the following line of code to the Actions layer on the main timeline:

    this.tabChildren=false;

    This shuts off tabing on the playerbar without affecting it on the rest of the captivate project.

    Inspiring
    March 5, 2011

    Hi there,

    I'm having the same problem described in the original post using Captivate 5... text entry boxes that use a Tab key as a shortcut are activating the rewind button on the playbar. I tried to edit the playbar in Flash as suggested with 'this.tabChildren=false;' in the Actions layer on the main timeline. This didn't work, but maybe I'm doing something wrong? I'm not a Flash expert at all. Here's what I did:

    1. With the playbar's fla file open in Flash, from the Window drop-down menu, I selected Actions.
    2. After the first two lines, I added the coding suggested, so that my first three lines ended up looking like this:

    var movieWidth = 550;
    var movieHeight = 400;
    this.tabChildren=false;

    Am I adding the coding in the wrong spot?

    Thanks so much for any help you can provide!

    :

    this.tabChildren=false;

    KCWebPlaza-5meuTi
    Inspiring
    September 12, 2008
    There is a well documented workaround for this posted in these forums numerous times, or you can read complete instructions in this Captivate blog.. Basically, you add a line to your HTML page your Captivate is playing within, and you can bypass the default Tab functionality in the browser.
    crg381AuthorCorrect answer
    Participant
    September 13, 2008
    Thanks for your reply. I had discovered that information earlier, but still couldn't get the application to work. In the end, it was part of the solution though. Here's what it took to get things working:

    In Captivate
    - Disable the playbar
    - Disable 508 Compliance
    In Lectora
    - Add 'SeamlessTabbing' as a parameter to the .swf object and set its value to 'false'