パッケージ | spark.accessibility |
クラス | public class DataGridAccImpl |
継承 | DataGridAccImpl ListBaseAccImpl AccImpl AccessibilityImplementation Object |
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
Spark の DataGrid が作成されると、その focusOwner
子オブジェクトの accessibilityImplementation
プロパティがこのクラスのインスタンスに設定されます。アクセシビリティ実装は、このプレースホルダー focusOwner
オブジェクトに配置されるため、DataGrid のアクセシビリティ実装が、アイテムエディターのアクセシビリティ実装を覆い隠すことはありません。DataGrid コンポーネント自体はアクセシビリティ実装を持ちません。この工程は、現在のバージョンの Flash Player で複数レベルの MSAA オブジェクトがサポートされていないために必要になります。任意のコンポーネントをアイテムエディターにすることができますが、コンポーネントは完全な MSAA オブジェクトである必要があります。アイテムエディターオブジェクトは MSAA ツリー構造内で、DataGrid の兄弟オブジェクトとして表示されます。各アイテムエディターのアクセシビリティ実装は、そのコンポーネントに関連付けられているアクセシビリティ実装によって処理されます。例えば、CheckBox の場合は CheckBoxAccImpl
が使用されます。アイテムエディターのアクセシビリティ実装が存在するのは、アイテムエディターセッションの存在中のみです。また、アクティブになるアイテムエディターは一度に 1 つのみです。そのため、アクティブのアイテムエディターアクセシビリティ実装のインスタンスは常に 1 または 0 個ということになります。
DataGrid
クラスで 2 つのメソッドが上書きされ、DataGrid
と DataGrid
の子 focusOwner
のフォーカスが適切に処理されます。GridItemRenderer
クラスは、アイテムレンダラーのアクセシビリティをオフに設定します。デフォルトでアイテムレンダラーは、DataGrid アクセシビリティ実装配下の単純オブジェクトとして処理されるためです。これにより、非アイテムエディターコンポーネント(CheckBox や Panel など)の DataGrid 内での使用用途が制限されますが、これらのアイテムが MSAA ツリー内で DataGrid の兄弟として表示されることを避けることができます。MSAA ツリー内ですべてのグリッドアイテムレンダラーを DataGrid の兄弟として表示すると、スクリーンリーダーのユーザーに大きな混乱を与えます。アイテムレンダラーにコンテキストや関連性が欠落しているためです。これらのレンダラーでアクセシビリティを有効にしてツリーに表示させる必要があれば、開発者がこのデフォルトの動作をオーバーライドすることも可能です。
その後、Flash Player でこのクラスを使用することにより、スクリーンリーダーなどの MSAA クライアントで DataGrid の表示と操作が可能になります。アクセシビリティ実装クラスと MSAA の背景情報については、mx.accessibility.AccImpl および flash.accessibility.AccessibilityImplementation クラスを参照してください。
DataGridAccImpl
は ListBaseAccImpl
を拡張します(DataGrid
が、ListBase
クラスを拡張する DataGridBase
を拡張するため)。Spark DataGridAccImpl
に最も類似しているのは MX AdvancedDataGridAccImpl
です。AdvancedDataGrid でも単一セルと単一行の選択がサポートされています。これは MX DataGrid ではサポートされていませんでした。
子
DataGrid の子 MSAA は次の順序になります
- 各可視ヘッダーセルにつき 1 つの子(左から順に)。ここでの「可視」とは、開発者が非表示(
column.visible=false
)にしていないという意味です。開発者が不可視にしていない列のヘッダーで、スクロールによって画面外になっている列のヘッダーは「可視」ということになります。 - 行選択モードの場合、グリッド内の各データ行について 1 つの子、または、
- セル選択モードの場合、グリッド内の各セルについて 1 つの子。不可視(説明のとおり)列の子は除きます。
子の数は、現在画面に表示されているアイテムの数ではなく、dataProvider
内の行と列の数で決まります。
ListBase
の場合と異なり、DataGrid の子の数はコントロール内のデータ行数を反映したものではありません。そのため、補助テクノロジで AccChildCount
を行数の通知手段として使用することは避けてください。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
役割
DataGrid の MSAA Role は ROLE_SYSTEM_LIST
です。
DataGrid 内の各データ行または各データセルの Role は ROLE_SYSTEM_LISTITEM
です。
DataGrid 内の各ヘッダーセルの Role は ROLE_SYSTEM_COLUMNHEADER
です。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
名前
デフォルトでは、DataGrid の MSAA Name は空の文字列です。FormItem
エレメント内にラップされた場合、この Name は FormItem のラベルに設定されます。この動作をオーバーライドするには、DataGrid の accessibilityName
プロパティを設定します。accessibilityName
プロパティを設定すると、DataGrid を表す DataGrid の focusOwner
子オブジェクトにこのアクセス可能名が適用されます。
各データ行の Name(行選択モードの場合)は、「_column1Name_: _column1Value_, _column2Name_: _column2Value_, ..., _columnNName_: _columnNValue_, Row _m_ of _n_」という形式の文字列です。各列はカンマで区切られ、列名と列値の間はコロンで区切られます。開発者によって非表示にされた列は Name 文字列から完全に除外されます。Name 文字列の例:「Contact Name: Doug, Contact Phone: 555-1212, Contact Zip: 12345, row 3 of 7」。
「Row _m_ of _n_」の部分は各国の言語に翻訳されています。
列 1 の各データセルの Name は(セル選択モードの場合)、「_columnName_: _columnValue_, Row _m_ of _n_」という形式の文字列です。例:「Contact Phone: 555-1212, Row 2 of 5」。以降の列も同じ形式をとりますが、「Row _m_ of _n_」の部分は含まれません。
「Row _m_ of _n_」の部分は各国の言語に翻訳されています。
列ヘッダーの Name 文字列は(セルまたは行選択モードの場合)、通常はヘッダーのテキストです。例:「Contact Phone」。グリッドが列でソートされている場合、ソートの適用と方向を表すため、列名には「sorted」や「sorted descending」などの文字列が追加されます。例:「Contact Name sorted」。複数列のソートの場合、レベル文字列も追加され、ソート列セットにおける列のレベルを表します。例えば、グリッドが列 3、列 2 の順でソートされ、列 2 は降順でソートされた場合、列 3 の名前の末尾は「Sorted Level 1」となり、列 2 の名前の末尾は「Sorted descending level 2」になります。ソートの昇順、降順およびソートレベルを表す文字列は、各国の言語に翻訳されています。
DataGrid またはいずれかのグリッドアイテムの Name が変更されると、該当する childID(行または列の場合)または 0(DataGrid 本体の場合)を含む MSAA イベント EVENT_OBJECT_NAMECHANGE
が DataGrid から送出されます。
アイテムエディターにアクセシビリティ名が設定されていない場合、セルの列ヘッダー名に基づいてアクセシビリティ名が設定されます。
説明
デフォルトでは、DataGrid の MSAA Description は空の文字列ですが、DataGrid の accessibilityDescription
プロパティを設定することで説明を指定できます。
各行、セルおよびヘッダーの Description は空の文字列ですが、AccImpl で設定することはできません。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
状態
DataGrid の MSAA State は、次の値の組み合わせになります。
-
STATE_SYSTEM_UNAVAILABLE
(enabled
がfalse
である場合) -
STATE_SYSTEM_FOCUSABLE
(enabled
がtrue
である場合) -
STATE_SYSTEM_FOCUSED
(enabled
がtrue
であり、DataGrid にフォーカスがある場合) -
STATE_SYSTEM_MULTISELECTABLE
(allowMultipleSelection
が true である場合)
データ行またはセルの State は、次の値の組み合わせになります。
-
STATE_SYSTEM_FOCUSABLE
-
STATE_SYSTEM_FOCUSED
(フォーカスがある場合) -
STATE_SYSTEM_OFFSCREEN
(行またはセルが画面外にスクロールされている場合) -
STATE_SYSTEM_SELECTABLE
-
STATE_SYSTEM_SELECTED
(選択されている場合)
ヘッダーセルはフォーカスを受けなかったり、選択されなかったりする可能性があるため、ヘッダーセルの State は STATE_SYSTEM_NORMAL
です。現在の実装では、ヘッダーが画面外になるようにグリッド自体が移動された場合でも、ヘッダーセルが STATE_SYSTEM_OFFSCREEN
を報告しないことがあります。
DataGrid またはいずれかのグリッドアイテムの State が変更されると、該当する childID(行または列の場合)または 0(DataGrid 本体の場合)を含む MSAA イベント EVENT_OBJECT_STATECHANGE
が DataGrid から送出されます。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
値
DataGrid とその子(行、セルおよびヘッダー)に MSAA 値はありません。
場所
DataGrid または DataGrid 内の行、データセルまたはヘッダーセルの MSAA Location は、それぞれの境界矩形です。現在画面に表示されていないアイテムの位置は定義されません。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
デフォルトアクション
DataGrid には MSAA DefaultAction がありません。行または列の MSAA DefaultAction は「Double Click」で、ヘッダーセルの DefaultAction は「Click」です。デフォルトアクション文字列が要求されたときには、各国語に翻訳された対応する文字列が返されます。
データ行またはセルに対してデフォルトアクションを実行すると、データ行またはセルがフォーカスされて選択され、セルまたは行のタイプによっては他の動作が発生することがあります。ヘッダーに対してデフォルトアクションを実行すると、グリッドがその列を基準にソートされます。ヘッダーに対してデフォルトアクションを繰り返し実行すると、ソートの順序が昇順と降順で切り替わります。このマニュアルの執筆時点では、AccImpl で、複数列の複数レベルのソートを一度に設定する方法はありません。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
フォーカス
グリッドで特定のアイテム(選択モードに応じて行またはセル)がフォーカスされていない場合、Focus は、グリッド自体にフォーカスがあることを示す 0 を返します。これが発生するのは、グリッド内にデータがない場合のみです。
行(行選択モード)またはセル(セル選択モード)にフォーカスがある場合、Focus は、フォーカスのあるアイテムの childID を返します。
DataGrid がフォーカスを得ると、MSAA イベント EVENT_OBJECT_FOCUS
を送出します。このイベントは、グリッド内の行またはセル間でフォーカスが移動したときにも送出されます。
アイテムエディターが開始または表示されたときには、フォーカス変更イベントがアイテムエディターで発生します。アイテムエディターが保存または閉じられたときには、フォーカス変更イベントが DataGrid で発生します。
選択
DataGrid では、allowMultipleSelection
プロパティに応じて、単一行または単一セル、あるいは複数行または複数セルの選択が可能です。選択すると、選択したアイテムの整数の childID の配列が返されます。
アイテムが排他的に選択されると、MSAA イベント EVENT_OBJECT_SELECTION
が送出されます。セル(セル選択モード)または行(行選択モード)が現在の選択セットに追加されると、EVENT_OBJECT_SELECTIONADD
イベントが送出されます。これと同様に、アイテム(セルまたは行)が選択範囲から削除された場合、EVENT_OBJECT_SELECTIONREMOVE
イベントが送出されます。選択がすべてクリアされた場合(選択数に関係なく)や、すべて選択または領域選択アクションが実行された場合、EVENT_OBJECT_SELECTIONWITHIN
イベントが送出されます。これ以外の選択操作では、EVENT_OBJECT_SELECTION
が送出されます。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
選択
accSelect
メソッドは、MSAA 経由による DataGrid 内の選択の変更やフォーカスの変更の要求を実装します。DataGrid の AccImpl では、DataGrid 自体、または DataGrid 内のデータアイテム(選択モードに応じて行またはセル)やアイテムセットに対するフォーカスの設定がサポートされます。サポートされているアクションには、フォーカス設定、1 つのアイテムの排他的選択、選択範囲からのアイテムまたはアイテムセットの追加と削除があり、これらはすべて Microsoft Active Accessibility の仕様に定義されています。このマニュアルの執筆時点では、セルの複数選択モードで、既に選択されている複数セル領域を accSelect
を使用して拡張し、領域の行と列を一度に増やそうとした場合、同じ操作をマウスで実行した場合とは異なる結果になる場合があります。
このプロパティは、アイテムエディターの DataGrid アクセシビリティ実装では処理されません。アイテムエディターで管理されます。
メソッド | 定義元 | ||
---|---|---|---|
DataGridAccImpl(master:UIComponent)
コンストラクターです。 | DataGridAccImpl | ||
この AccessibilityImplementation が表すコンポーネントまたはその子要素のいずれかに関連付けられているデフォルトアクションを実行する IAccessible メソッドです。 | AccessibilityImplementation | ||
AccessibilityImplementation の子要素の境界ボックスを指定する DisplayObject または Rectangle を返すための MSAA メソッドです。 | AccessibilityImplementation | ||
この AccessibilityImplementation が表すコンポーネント内の選択を変更するための IAccessible メソッドです。 | AccessibilityImplementation | ||
[静的]
DataGrid クラスでアクセシビリティを有効にします。 | DataGridAccImpl | ||
この AccessibilityImplementation が表すコンポーネントまたはその子要素のいずれかのデフォルトアクションを返すための MSAA メソッドです。 | AccessibilityImplementation | ||
コンポーネント内に子フォーカスを持つ子要素がある場合に、その符号なし整数 ID を返す MSAA メソッドです。 | AccessibilityImplementation | ||
この AccessibilityImplementation が表すコンポーネントまたはその子要素のいずれかの名前を返すための MSAA メソッドです。 | AccessibilityImplementation | ||
この AccessibilityImplementation が表すコンポーネントまたはその子要素のいずれかのシステムロールを返すための MSAA メソッドです。 | AccessibilityImplementation | ||
選択されているすべての子要素の ID を含む配列を返すための MSAA メソッドです。 | AccessibilityImplementation | ||
この AccessibilityImplementation が表すコンポーネントまたはその子要素のいずれかの現在のランタイム状態を返すための IAccessible メソッドです。 | AccessibilityImplementation | ||
この AccessibilityImplementation が表すコンポーネントまたはその子要素のいずれかのランタイム値を返すための MSAA メソッドです。 | AccessibilityImplementation | ||
AccessibilityImplementation | |||
AccessibilityImplementation | |||
AccessibilityImplementation のすべての子要素の符号なし整数 ID を含む配列を返します。 | AccessibilityImplementation | ||
[静的]
フォームアクセシビリティをサポートするためのメソッドです。 | AccImpl | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
[静的]
コンポーネントの上位要素で enabled が false に設定されている場合は true を返します。 | AccImpl | ||
true または false を返して、x、y、width および height で指定されたバウンディングボックスを持つテキストオブジェクトを、この AccessibilityImplementation が表すコンポーネントのラベルと見なすかどうかを示します。 | AccessibilityImplementation | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
DataGridAccImpl | () | コンストラクター |
public function DataGridAccImpl(master:UIComponent)
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
コンストラクターです。
パラメーターmaster:UIComponent — この AccImpl インスタンスによってアクセス可能になる UIComponent インスタンスです。
|
enableAccessibility | () | メソッド |
public static function enableAccessibility():void
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flex 4 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
DataGrid クラスでアクセシビリティを有効にします。
このメソッドは、MXML コンパイラーによって自動生成されるアプリケーション起動コードから呼び出されます。その後、DataGrid のインスタンスが初期化されると、accessibilityImplementation
プロパティがこのクラスのインスタンスに設定されます。
Tue Jun 12 2018, 10:34 AM Z