语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
该类是 Flash Player 的 AccessibilityImplementation 类的子类。
当创建 MX 或 Spark 组件时,组件的 accessibilityImplementation
属性将设置为此类的某个子类的实例。然后,Flash Player 将使用此对象允许诸如屏幕阅读器之类的 MSAA 客户端查看和操作该组件。有关 AccessibilityImplementation 类和 MSAA 的附加信息,请参阅 flash.accessibility.AccessibilityImplementation 类。
子代
Flash Player 对于具有辅助功能的对象不支持真实层次结构。如果 DisplayObject 具有 accessibilityImplementation
对象,则会忽略其子代的 accessibilityImplementation
对象。不过,Player 确实允许组件的辅助功能实现类向内部部件公开 MSAA 信息。(例如,List 可公开有关其中的项目的 MSAA 信息。)
子代(内部部件)的数量以及用于标识子代的子代 ID 可以通过 getChildIDArray()
方法确定。在 Player 的 AccessibilityImplementation 基类中,此方法只返回 null
。Flex 的 AccImpl 类会覆盖此方法,以便返回一个空数组。它还提供了一个受保护的实用程序方法 createChildIDArray()
,其子类以及内部部件可以在各自的覆盖中使用。
角色
组件及其内部部件的 MSAA 角色可以通过 get_accRole()
方法确定。在 Player 的 AccessibilityImplementation 基类中,此方法会引发运行时错误,因为应该使用子类来覆盖它。Flex 的 AccImpl 类具有受保护的 role
属性(该属性的子类通常在各自的构造函数中设置),并且该类会覆盖 get_accRole()
以便返回此属性。
名称
组件及其内部部件的 MSAA 名称可以通过 get_accName()
方法确定。在 Player 的 AccessibilityImplementation 基类中,此方法只返回 null
。Flex 的 AccImpl 类会覆盖它,以便按以下方式构造名称,该名称以空字符串开头,并且用一个空格来分隔所添加的各个部分:
- 如果正在请求简单子代(如组合框项或列表框项),则只返回子代的默认名称。下面的其余步骤仅适用于组件自身 (childID 0)。
- 如果组件位于 Form 内部:
- 如果 Form 中具有 FormHeading 且组件位于 FormItem 内部,则会添加标题文本。如果希望避免这种情况,则开发人员应将 FormHeading 的
accessibilityName
设置为一个空格 (" ")。 - 如果需要该字段,则会添加与区域设置相关的字符串“需要的字段”。
- 如果组件位于 FormItem 内部,则会添加 FormItem 标签文本。如果希望避免这种情况,则开发人员应将 FormItem 的
accessibilityName
设置为一个空格 (" ")。
- 如果 Form 中具有 FormHeading 且组件位于 FormItem 内部,则会添加标题文本。如果希望避免这种情况,则开发人员应将 FormHeading 的
- 然后,将按以下方式确定组件名称:
- 如果组件的
accessibilityName
(即accessibilityProperties.name
)是一个空格,则不会添加任何组件名称。 - 否则,如果指定了组件的名称(即,不是 null 并且不为空),则会添加该名称。
- 否则,将调用由 AccImpl 定义且由每个子类实现的受保护的
getName()
方法来提供默认名称。(例如,ButtonAccImpl 实现getName()
,以便将 Button 的默认名称指定为所显示的标签。)如果不为空,则会添加getName()
的返回值。 - 否则(如果
getName()
返回了空值),如果设置了组件的toolTip
属性,则会添加该字符串。 - 如果设置了组件的
errorString
属性,则会添加该字符串。
- 如果组件的
描述
MSAA 描述只能通过组件的 accessibilityProperties
对象确定,而不能通过组件的 accessibilityImplementation
对象确定。因此,在 AccessibilityImplementation、AccImpl 或 AccImpl 的任何子类中都没有与该描述相关的逻辑。在 Flex 中设置描述的正常方式是使用 UIComponent 的 accessibilityDescription
属性,该属性仅设置 accessibilityProperties.description
。
状态
组件及其内部部件的 MSAA 状态可以通过 get_accState()
方法确定。在 Player 的 AccessibilityImplementation 基类中,此方法会引发运行时错误,因为应该使用子类来覆盖它。Flex 的 AccImpl 类不会覆盖它,但会提供受保护的实用程序方法 getState()
,供子类在各自的覆盖中使用。getState()
方法按以下各项的组合确定状态:
- STATE_SYSTEM_UNAVAILABLE(如果此组件或任何祖代的“已启用”为 false)
- STATE_SYSTEM_FOCUSABLE
- STATE_SYSTEM_FOCUSED(如果组件自身已获得焦点,没有为组件的子部件设置焦点)
值
组件及其内部部件的 MSAA 值可以通过 get_accValue()
方法确定。在 Player 的 AccessibilityImplementation 基类中,此方法只返回 null
。Flex 的 AccImpl 类不会覆盖它,但 TextInput 之类的组件的子类会覆盖。
位置
组件的内部部件的 MSAA 位置(而非组件自身)可以通过 get_accLocation()
方法确定。当 childID 为 0 时,从不会调用此方法;Flash Player 而是根据由 getBounds()
确定的边界矩形来确定组件的 MSAA 位置。Flex 的 AccImpl 类不会覆盖此方法;但带有内部部件的组件的子类会覆盖。
默认操作
组件及其内部部件的 MSAA DefaultAction 可以通过 get_accDefaultAction()
方法确定。在 Player 的 AccessibilityImplementation 基类中,此方法只返回 null
。Flex 的 AccImpl 类不会覆盖它,但带有默认操作的子类会覆盖。这些子类还会覆盖 AccessibilityImplementation 的 accDoDefaultAction()
方法,以便执行它们公开的默认操作。
其他
在显示或隐藏对象时,会发送 MSAA 事件 EVENT_OBJECT_SHOW 和 EVENT_OBJECT_HIDE。这些事件的对应状态将由 Flash Player 处理,Flash Player 不会呈示处于隐藏状态的任何 MSAA 组件。在显示组件时,将会对 AccImpl 使用涉及的这些状态。
属性 | 由以下参数定义 | ||
---|---|---|---|
eventsToHandle : Array [只读]
所有子类都必须返回要侦听的事件的字符串数组来覆盖此函数。 | AccImpl | ||
master : UIComponent
对此 AccImpl 实例使其具有辅助功能的 UIComponent 实例的引用。 | AccImpl | ||
role : uint
要具有辅助功能的组件的辅助功能角色。 | AccImpl |
方法 | 由以下参数定义 | ||
---|---|---|---|
AccImpl(master:UIComponent)
构造函数。 | AccImpl | ||
一个 IAccessible 方法,执行与此 AccessibilityImplementation 表示的组件关联的默认操作,或执行该组件的子元素之一的默认操作。 | AccessibilityImplementation | ||
MSAA 方法,返回指定 AccessibilityImplementation 中子元素边框的 DisplayObject 或 Rectangle。 | AccessibilityImplementation | ||
IAccessible 方法,更改此 AccessibilityImplementation 所表示组件中的选定内容。 | AccessibilityImplementation | ||
MSAA 方法,返回此 AccessibilityImplementation 所表示组件的默认操作,或该组件的子元素之一的默认操作。 | AccessibilityImplementation | ||
MSAA 方法,返回在组件内具有子焦点的子元素(如果有)的无符号整数 ID。 | AccessibilityImplementation | ||
MSAA 方法,返回此 AccessibilityImplementation 所表示组件的名称或组件子元素之一的名称。 | AccessibilityImplementation | ||
MSAA 方法,返回此 AccessibilityImplementation 所表示组件的名称或组件子元素之一的系统角色。 | AccessibilityImplementation | ||
MSAA 方法,返回包含全部所选子元素的 ID 的数组。 | AccessibilityImplementation | ||
IAccessible 方法,返回此 AccessibilityImplementation 所表示组件的当前运行时状态,或该组件的子元素之一的当前运行时状态。 | AccessibilityImplementation | ||
MSAA 方法,返回此 AccessibilityImplementation 所表示组件的运行时值,或该组件的子元素之一的运行时值。 | AccessibilityImplementation | ||
AccessibilityImplementation | |||
AccessibilityImplementation | |||
返回一个数组,其中包含 AccessibilityImplementation 中所有子元素的无符号整数 ID。 | AccessibilityImplementation | ||
[静态]
用于支持表单辅助功能的方法。 | AccImpl | ||
表示对象是否已经定义了指定的属性。 | Object | ||
[静态]
如果组件的“已启用”设置为 false,则返回 true。 | AccImpl | ||
返回 true 或 false,以表示边框由 x、y、width 和 height 指定的文本对象是否应该视为 AccessibilityImplementation 表示的组件的标签。 | AccessibilityImplementation | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
方法 | 由以下参数定义 | ||
---|---|---|---|
一般事件处理函数。 | AccImpl | ||
返回具有辅助功能的组件的名称。 | AccImpl | ||
实用程序方法,用于确定具有辅助功能的组件的状态。 | AccImpl |
eventsToHandle | 属性 |
master | 属性 |
protected var master:UIComponent
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
对此 AccImpl 实例使其具有辅助功能的 UIComponent 实例的引用。
role | 属性 |
protected var role:uint
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
要具有辅助功能的组件的辅助功能角色。
AccImpl | () | 构造函数 |
public function AccImpl(master:UIComponent)
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造函数。
参数master:UIComponent — 此 AccImpl 实例使其具有辅助功能的 UIComponent 实例。
|
eventHandler | () | 方法 |
getFormName | () | 方法 |
public static function getFormName(component:UIComponent):String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
用于支持表单辅助功能的方法。从该 AccImpl 类中的 get_accName() 调用。还从 UIComponentAccProps 构造函数调用。
参数
component:UIComponent |
String |
getName | () | 方法 |
getState | () | 方法 |
isAncestorDisabled | () | 方法 |
public static function isAncestorDisabled(component:UIComponent):Boolean
如果组件的“已启用”设置为 false,则返回 true。不检查给定组件自身。
参数
component:UIComponent — 要检查祖代是否为“已禁用”的 UIComponent。
|
Boolean — 如果组件的祖代为“已禁用”,则为 true。
|
Tue Jun 12 2018, 11:04 AM Z