除了 Flash 用户界面中包含的辅助功能之外,您也可以使用动作脚本创建可访问的文档。对于应用到整个文档的辅助功能属性,可以创建或修改称为 _accProps
的全局变量。请参阅 _accProps
。
对于应用到某个特定对象的属性,可以使用语法 instancename._accProps
。_accProps
的值是一个可以包含以下任何属性的对象:
属性 |
类型 |
“辅助功能”面板中的等效选项 |
应用到 |
---|---|---|---|
. |
布尔型 |
使影片可访问/使对象可访问(反逻辑) |
整个文档 按钮 影片剪辑 动态文本 输入文本 |
|
布尔型 |
使子对象可访问(反逻辑) |
整个文档 影片剪辑 |
|
字符串 |
名称 |
整个文档 按钮 影片剪辑 输入文本 |
|
字符串 |
说明 |
整个文档 按钮 影片剪辑 动态文本 输入文本 |
|
字符串 |
快捷键 |
按钮 影片剪辑 输入文本 |
注意:反逻辑的意思是,动作脚本中的 true
值对应于“辅助功能”面板中某个未选定的复选框,而动作脚本中的 false
值对应于“辅助功能”面板中某个选定的复选框。
单独修改 _accProps
变量并无效果。还必须使用 Accessibility.updateProperties
方法将 Flash 内容的更改通知屏幕读取器的用户。调用此方法会使 Flash Player 重新检查所有的辅助功能属性,为屏幕读取器更新属性说明,并且如有必要,向屏幕读取器发送事件以指示发生了更改。
同时更新多个对象的辅助功能属性时,只需包含一次对 Accessiblity.updateProperties
的调用即可(对屏幕读取器进行太频繁的更新可能会使某些屏幕读取器变得很“嗦”)。
请参阅 Accessibility.updateProperties()
。
要创建在屏幕读取器启用时表现出特定行为的 Flash 内容,可以使用动作脚本的 Accessibility.isActive
方法。如果屏幕读取器在运行,该方法会返回值 true
,反之会返回 false
。然后,可以设计 Flash 内容,使其以符合屏幕读取器用法的方式运行,如在屏幕读取器面前隐藏子元素。有关详细信息,请参阅 Accessibility.isActive()
。
例如,可以使用 Accessibility.isActive
方法确定是否包含主动提供的动画。主动提供的动画是指,在屏幕读取器未进行任何操作的情况下出现的动画。这可能会给屏幕读取器造成很大的混乱。
Accessibility.isActive()
方法在 Flash 内容和 Flash Player 之间提供异步的通信,这就表示,在调用此方法和 Flash Player 进入活动状态这两个时刻之间可能会出现轻微的实时延迟,从而会返回不正确的 False
值。要确保正确调用此方法,可以执行以下其中一项操作:
Accessibility.isActive()
方法,而不是在 Flash 内容第一次播放时使用此方法。例如,可以使用 onFocus
事件将此方法指定到某个按钮。这通常使影片有足够的时间进行加载,并且您可以放心地假定,屏幕读取器用户在按 Tab 键进行选择时必将选中舞台上的第一个按钮或对象。
除了使用“辅助功能”面板为对象指定 Tab 键索引之外(请参阅在“辅助功能”面板中为键盘浏览创建 Tab 键顺序索引(仅限 Flash Professional)),也可以通过将 tabIndex
属性指定给以下对象,使用动作脚本创建 Tab 键顺序:
如果为帧创建 Tab 键顺序,并且未为帧中的可访问对象指定 Tab 键顺序,Flash Player 将忽略所有以自定义方式指定的 Tab 键顺序。因此,您应为所有可访问的对象提供完整的 Tab 键顺序。此外,对于指定了 Tab 键顺序的所有对象(帧除外),必须在“属性”检查器的“实例名称”文本框中为它们指定实例名称。即使是不能通过按 Tab 键选择的项目(如文本),如果将按 Tab 键顺序读取这些项目,则也需将它们包括在该顺序中。
因为无法为静态文本指定实例名称,所以不能将它包括在 tabIndex
属性值的列表中。因此,只要影片中出现一个静态文本的实例,则会使读取顺序回复到默认顺序。
要指定 Tab 键顺序,应将顺序编号指定到 tabIndex
属性,如下例所示:
_this.myOption1.btn.tabIndex = 1 _this.myOption2.txt.tabIndex = 2
请参阅 Button.tabIndex
、MovieClip.tabIndex
和 TextField.tabIndex
。
也可以使用 tabChildren
或 tabEnabled
方法来指定自定义的 Tab 键顺序。请参阅 MovieClip.tabChildren
、MovieClip.tabEnabled
和 TextField.tabEnabled
。