storyline 360
35 TopicsNVDA Storyline 360 Software Simulation Issue
Hello all, I have been working on a software training course for a while, but I cannot share the product file, so I have tried my best to replicate the issue with a brief PowerPoint activity. My current project file has 6 scenes and 452 slides. I am looking for the easiest fix to the issue at this point, while avoiding backtracking on work. Any assistance would be GREATLY appreciated as I am close to my wits' end. Below is a synopsis of the issue, the fixes I have tried, and the attached PowerPoint Activity project file. Build Background: I used the screen recording features in Storyline 360 to create both Try Mode Steps and Test Mode Steps for scenes in the course. I turned off Show Animation in the Capture Action Fine Turning. I have ensured that hotspot and text entry interactions are at the top of the timeline, above all other elements. I have deleted triggers where possible, but some of the Play Video Screen Recording Action When the User Clicks Hotspot 1 remain, as the program won't allow them to be deleted even after turning off the animations, so I have disabled them. I had to make additional cover-ups to hide employee IDs and information, as I did not have a fake user account. The cover-ups have been hidden from accessibility tools. Issue: When navigating the course with NVDA and Microsoft Narrator, the Try Again layer keeps deploying as the user selects the hotspot button for a second and announces "Incorrect," which will lead to annoyance and confusion for the learner. The Try Again layer does not deploy in the Test Mode Steps scenes, but it does in the Try Mode Steps scenes. The Try Again layer does not deploy when using keyboard navigation without a screen reader enabled. I do not want to remove the Try Again feedback, as it is important for sighted users. Triggers on Base Layer: When the user clicks outside Hotspot 1 - Show layer Try Again When the user clicks Hotspot 1 - Jump to slide next slide (Disabled) When the user clicks Hotspot 1 - Play video Screen Recording Action Triggers on Try Again Layer: When user clicks Try Again - Hide layer this layer Solutions Tried But No Success: Running the file as a published SCORM in test environment, Review 360, and in preview mode- Try Again layer still deploys in all environments. Expanding the hotspot area beyond the identified bounds. Changing the order of the user clicks outside Hotspot 1 and the user clicks Hotspot 1 triggers on the base layer but Storyline 360 does not allow me to change the position of these triggers under Hotspot 1 in the trigger menu. Adding back in the correct layers of the screen recording as shown in scene two of my attached example.Solved473Views0likes6CommentsPlayer Setup Recommendations for 508/WCAG 2.1 AA: Menu, Transcript, Navigation Buttons
Lately, I’ve been seeing an increased focus among organizations and government entities on ensuring Storyline courses meet WCAG 2.1 Level AA and Section 508 standards. While Storyline 360 offers several ways to create accessible content, I’m looking for general best practices for configuring the Storyline player so that it is straightforward for developers to implement while also providing a seamless experience for screen reader and keyboard users and meeting these requirements. I would love to hear your recommendations on the most effective way to set up the player, whether that means using the built-in player features or developing a custom navigation interface. Specifically: Transcripts & Glossaries: Do you recommend using the built-in player tabs, such as the Notes panel and Glossary tab, or is it better to build custom on-screen versions? If using the built-in player, does the Notes panel function sufficiently to meet accessibility requirements, or would you recommend a different approach for transcripts? If you do use the Notes panel, do you recommend placing it within the menu sidebar or at the top? The Menu: For menus that outline the course structure, do you recommend excluding it to reduce “tab fatigue” for screen reader users, or including it so learners can better track their progress? If a menu is included, do you prefer using the built-in Storyline menu or creating a custom one? If you use the built-in menu, is it best practice for the sidebar to start collapsed to keep the focus on the main content, or expanded for easier access? Also, when using the built-in player menu, do you recommend including subheadings? Navigation Buttons (Next/Prev): Do you recommend using the built-in Next/Previous buttons or adding custom on-screen buttons? While I know the built-in buttons now support accessibility shortcuts, many developers still seem to create their own Next/Previous buttons. I assume this is to provide a more intuitive end-of-slide experience. In any case, I would value your suggestions and would especially appreciate understanding the reasoning behind the recommended setup.228Views0likes3CommentsStoryline: Freeform radio group labels affected by timeline order and focus order
I think the behavior I describe below is a bug, but please let me know if this is intentional. Background Information Storyline now automatically publishes a group label for radio button sets. JAWS will read "group start ___" and "group end ___" around each radio button set. NVDA reads it once at the beginning of the radio button set, I believe. I think this behavior was updated in v3.111 (Feb 21 2026) since I can take a slide between v3.110 and v3.111 without doing anything to it and it won't add the group labels on publish to my slide in v3.110. I believe the reason this feature was added was to address WCAG 1.3.1 guidelines surrounding group labels for form field sets. (Rise already has group labels automatically added.) However, I don't see any mention of it in the Storyline 360 version history. Situation - potential bug For freeform questions, the "___" portion of the announcement (the group label name) depends on two things: Which textboxes are below the answer options in the timeline (this includes textboxes on the master slides - they are treated as "below" the answer options) Of those textboxes, which one comes first in the focus order (a textbox has to be in the focus order to be used for the group label) Storyline will use whichever textbox is below the answer options and first in the focus order as the group label. The layer position of the textbox in the timeline shouldn't have any effect on the group label, correct? Is there someplace we can actually set the group label without having to use the above mentioned rules as workarounds to get it to say specific things for the group label? Here's a Review 360 slide, and storyline file attached. group-labels | Review 360Solved356Views1like3CommentsAccessible systems training
Hi all, I was wondering what people's thoughts are on best practice of making systems training in Articulate Storyline360 accessible, targeting WCAG 2.2 AA. Presumably the system being recorded itself needs to be accessible to this standard for users. How does the built in screen recording show me/try me type content behave with screen readers and key board navigation? Any experiences from end users that use assistive technologies, that have been through systems training? Thanks in advance348Views0likes1CommentNew Audio Descriptions Resource
We recently published a new article on improving video accessibility with audio descriptions in Storyline 360. If your videos include important visual details, such as on-screen text or charts, audio descriptions help ensure that learners who are blind or have low vision can access key information. In this resource, you’ll learn: When to use audio descriptions Differences between standard and extended descriptions How to add them in Storyline 360 Tips for writing effective descriptions How WCAG guidelines apply Are you using audio descriptions in your courses? Are there other accessibility topics we should cover? We want to hear from you!153Views2likes0CommentsAccessibility Checker Results Export?
Is there a way to export the full results of the accessibility checker? Our Accessibility office is trying to work with us on changes necessary and they don't have a license to access the software. We want to be able to easily share the results with them. I am also registered for the Yukon Learning Accessibility course in Feb. 2026.454Views1like1Comment(loading) speed of Storyline 360 slides
Hi all, Does anyone know what influences the loading time of storyline 360 slides? We are creating educational games with storyline, and are trying to figure out how we can decrease the amount of loading (with the three loading dots) between slides. I have a few ideas on what impacts the slide loading time, for example: Amount of layers on a slide Amount of objects on a slide Amount of images in a slide The length of javascript functions The amount of audio files The size of audio files The amount of video files And maybe other that I haven't thought of yet.. And a few questions: Does it matter if you put objects / images / video / audio on timeline start, or after let's say 1 second? How does Storyline internal "pre-load" slide work? I have read somewhere it makes an educated guess which slide comes next, and preloads it. But, as we make a slide selection based on variables, that won't work. Is there any way we can feed storyline information about the upcoming slide, so it can preload it already? I'm very curious to your insights. I will also do some research myself the next few months, and share the outcome, but it will help to gather some input and thoughts from other users before diving in further!608Views1like3CommentsNew Tutorial! Build Dynamic Animated Bar Charts In Storyline Using JavaScript
Hi Heroes, I’m excited to share the latest episode of my Storyline Magic Series with you all! In this episode, I'll be showing you how to create dynamic animated bar charts in Articulate Storyline 360, using standard Storyline shapes, variables, and a touch of JavaScript magic. 📊✨ One of the highlights of this technique is that your chart animations are controlled using Storyline number variables, and bar shapes will adjust their height beautifully across all screen sizes, ensuring consistent results for all users. By the end of the tutorial, you’ll have a reusable template that you can apply to any bar chart designs you want to bring to life in Storyline! Check out the full tutorial below, along with a link to all previous episodes in the series: Watch the full series here - https://lnkd.in/dNvyD7wv --- My name's Chris Hodgson, an eLearning developer and software trainer based in the UK. I enjoy creating fun, unique, and engaging online experiences using Articulate software! Connect with me on LinkedIn - https://www.linkedin.com/in/chrishodgson44/
1.2KViews7likes2CommentsAlways on top
I just set myself the challenge of having elements that are "always on top". I've worked on a handful of courses in the past, that had an irregular shaped header graphic (sometimes with drop shadow), where it would have been great to be able to set some elements in the Master Template to appears always on top of other elements within the module. For those courses, I had to create a slice of the header (the irregular shaped part) and paste on each slide, where the header appeared over another element on the slide. I have had some success, and of course it is a JavaScript implementation. This is very much an ALPHA release. Here's the implementation if interested in having a play with it or extending it. I'm sure there will be some elements, that I haven't played with, that may need some extra logic in the JS. For each element you would like to appear always on top, add the string "{AOT}" in the "Alternative text" field. If the element is decorative, you can just add "{AOT}". This will be taken care of during processing (removed, and set to aria-hidden=true). If the element is non-decorative, for example an exit button, you would just add "{AOT}Exit" to the alternative text. This would also be process, and "{AOT}" removed and "Exit" retained in the ALT text. Add the following script to the "timeline starts" on the SLIDE MASTER. This ensures that the script will process on every slide. const init = () => { // inititial value for z-index let z = 999; // get all elements with data-acc-text attribute starting with "{AOT}" const elements = document.querySelectorAll('[data-acc-text^="{AOT}"]'); // loop through each element elements.forEach(element => { // get the modelId and accText from the element's dataset const { modelId, accText } = element.dataset; // get the root element with the same modelId const rootElement = document.querySelector(`[data-model-id="${modelId}"]`); // set the z-index of the root element (incrementing by 1 each time) rootElement.style.zIndex = z++; // get the alternative text by removing "{AOT}" from accText and trimming the result const alt = String(accText).replace('{AOT}', '').trim(); // get the alt element with the id "acc-${modelId}" const altElement = document.getElementById(`acc-${modelId}`); // set the alternative text to the element's dataset element.dataset.accText = alt; // re-write the inner text of the alt element altElement.innerText = alt; // if the alternative text is empty (decorative), set the aria-hidden attribute to true and the z-index to -1 if (!alt) { altElement.setAttribute('aria-hidden', 'true'); altElement.style.zIndex = '-1'; } else { if (altElement.hasAttribute('aria-label')) altElement.setAttribute('aria-label', alt); } }); }; requestAnimationFrame(() => { init(); }); I've also including a very simple example file. This just demonstrates that the designated "Always on top" elements will appear over the image on the slide.754Views2likes4CommentsCapturing Text from a Shape or TextBox
I have a game with 40 questions, subdivided into 4 categories. I've created an object for each category and used states for each question within the category. My current plan is to enter the questions in the WYSIWYG environment for easier proof reading than if I tried to enter them into the Variables editor. It's a team based game and if nobody can get the answer right, I want it to save the question to a variable, then at the end of the game, I want it to email the questions to the SMEs. My problem is that unless I switch to using 40 variables, I haven't figured out a way to pull the question from the object before moving on to the next question. I had thought it would be something simple like this: const jsObject = object('6N5bhivlzyV'); set jsText = jsObject.value; setVar('theText',jsText); But, that's not working. Is my javascript bad or is there a way to do this with standard triggers?Solved570Views0likes3Comments