Controlling reading order using ActionScript
The most precise means of controlling reading order is to use ActionScript. This method allows the designer to control the reading order using the .tabindex property in ActionScript. There is no distinction in ActionScript between reading order and tab order. However, when ActionScript is used to control the reading order of a movie, all instances within the movie must be included in the list of .tabindex values, including all text fields and decorative elements.
Include an instance name with every instance over the life of the movie
In controlling the reading order, it is important to ensure that every instance on the stage has an instance name. This includes all text, movie clip, and button symbols as well as all components over the life of the movie.
Do not use static text
Since it is not possible to provide an instance name to static text objects, a single instance of static text will result in the entire reading order reverting to the default. Controlling the reading order using ActionScript requires the use of dynamic text fields. This has implications for the font used in the application and potentially affects the overall file size. Learn more about handling font symbols in Animate CC.
Include offstage or obscured elements
The list of .tabindex values must include all instances over the life of the movie, including elements that are not visible and that sit offstage or are hidden under another instance. If these elements should be obscured from a screen reader user, the visible property should be set to false or the .silent property should be set to true. Also, elements not visible at the start of the movie that will be visible later must be included in the list of .tabindex values.
Control reading order when loading SWF files at runtime
In cases where a series of child SWF files is loaded into a parent movie, the .tabindex values must be listed in the child movie clip. However, it is important that the values list in the reading order of each child SWF file be unique. For example, if two child movies loaded into a parent movie each have three elements with .tabindex values of 1, 2, and 3, the screen reader will read the first value of the first movie loaded and then the first value of the second movie loaded. Next, the screen reader will read the second value of the first movie clip loaded and then the second value of the second movie clip loaded and so on. For the screen reader to read the contents of the first movie followed by the contents of the second movie, the list of .tabindex values for the first movie should be 1, 2, 3, while the list of values for the second movie should be 4, 5, 6. These values need not be sequential, but they should be unique.