How can I force focus on a default object in a slide, or slide layer?

Jul 25, 2019

I am trying to add a popup  where the focus is immediately set to the base object of a slide layer (for example) when a screen-reader (SR) user triggers a button to open the popup. The popup (show layer) opens ok, but the SR user has to hit the tab key again to read the default popup content.

Is there a way to force focus on a default object in the layer or slide when a slide or slide layer first opens, so the user doesn't have to hit tab to get to the first item? Perhaps some JavaScript method?

6 Replies
Noel Sapp

I have the same request. Dealing with 508 compliance has become standard practice in government work. However, the most basic of interactions prevent compliance.

As the original post explains, showing a layer response once a button is activated does not provide access to the layer information to those using assistive technology. Not at least without first manually tabbing several times through other content to then return the loop back to the new popup visible response layer.

For a simple example, imagine a base layer with three button responses:

  1. For buttons A, B, and C, there are layer responses triggered by the click of a button.
  2. Button A triggers a layer display of "Correct! This is why your answer is correct!" Responses for Button B and C has the same response of "Incorrect! This is why your answer is incorrect!"
  3. Using a screen reader, the user can keyboard-tab through the slide title, slide body text, and then the three button options. As expected.
  4. The problem comes when that user decides to activate a button. If Button A is targeted and clicked, the response should literally be the very next information the user hears through the screen reader. As it is for sighted uses.
  5. What happens, instead, is that upon activating Button A the tab order continues directly to Button B, then Button C, completely ignoring what is visually represented to a sighted user. For those using assistive technology, they are completely unaware that a response exists not to mention actually having it presented to them. At least not until they cycle through the Tab order returning, eventually, to the new visible response layer.

Surely there is a way to force focus onto a layer once made visible to provide the same information, at the same time, in the same method to those needing it?

The only work-around I can even think of is to provide a strict "text" version of the slide's contents within the Notes tab on each slide. If that is the only option, then how can any interaction claim to be compliant?

Noel Sapp

I'm curious if you found what you were looking for? This may be low-hanging fruit, but how deep did you go into the Tab Order window? I just noticed that I was incorrectly using it. The interaction response layers can be manually ordered in that Tab Order window to fall after the interaction button click. This solves a lot of what I was having troubles with.

This is for interactions though. I'm still struggling doing the same with actual graded questions.

David Sprouse CU

Hi Noel. I believe  I have a solution to 95% of the problem, that is to move focus immediately to the new layer being displayed, when the screen-reader (SR) or keyboard user hits the tab key again. (In my original post, I wanted to have the SR read the first object of the layer without having to hit tab again).  I created a short 9-minute video for my team on how to work with tab order for interactive content that uses Slide Layers.)

This works with the current classic and modern (stable) players. It does not work in preview mode of the beta player, but does work once published to HTML5.

Let me know if the attached video is helpful, or you need a bit more information.

If you want to see how it works with a screen reader such as NVDA, you can run a sample of the current classic player project from my 360 site using a screen reader.  If I recall correctly, I tested with NVDA, JAWS 18 and VoiceOver on Mac

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