IT翻訳 Nobuyuki の仕事部屋

ボランティアでソフトウエアーローカライズのために翻訳をしている。

Gecko Info for Windows Accessibility Vendors更新対応10

2005-06-09 23:20:15 | InTranslated
急な仕事が入り、2 日ほどお休みしました。m(._.)m
本日の翻訳の対象は、表です。MSAA Role Support というタイトルが付けられています。MSAA(Microsoft Active Accessibility)の Role オブジェクトが、XUL、DHTML、xhtml2 でどのようにサポートされているかを一覧表にしています。この表は、Rev.1.13に新たに追加されたものです。Rev.1.02 には存在しません。

ところで、長い表なので、これをいつものように翻訳を長々と対照させても、あまり見やすい構成にならないと思います。かといって、表の項目を一点一点英文と和文を対照させる事を、このブログで実現するのも、労力の要る仕事です。

そこで出した結論は、リンク先に英語、日本語、それぞれの表を置きますので、原文と訳文を対照させる時は、別ウィンドウで表示させて、比較してください。お手数をおかけしますが、私の今のスキルでは、これで精一杯の対応です。(-_-;

英語へのリンク→MSAA Role Support
和訳へのリンク→MSAA Role のサポート

長い表なので、比較するのも大変と思いますがよろしくお願いします。


原文全体へのリンクです。
旧バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.02
新バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.13

なお、訳文について、気がつかれたことがある方は忌憚なく、ご意見をお寄せください。m(__)m



Gecko Info for Windows Accessibility Vendors更新対応9

2005-06-06 22:40:54 | InTranslated
このタイトルの翻訳の話からそれますが、 Mozilla Japan に草稿を公開した文書で、新たに完成稿にできたものがありますので、タイトルとリンクをご紹介します。
原題: bootstrap.pl:Embed/REQUIRES-based build mechanism
訳題: bootstrap.pl: 組み込み / 要求をベースとするビルドメカニズム

これらは、Mozilla Japan に強力する有志のメンバーによる校正を経た末に完成したものです。私が日ごろから言っております、翻訳は共同作業であることを、 Mozilla Japan のローカライズの仕組みが具現している由です。

さて、またいつもの課題に戻ることにします。
旧バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.02
新バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.13
原文(旧):  青色表示
原文(新):  緑色表示
訳文(新):  黒色表示
*注記/コメント: 赤色表示

DHTML Accessibility is Supported

This means that you may encounter roles that are not typically in HTML content. Be prepared for new combinations of roles and states in content, such as ROLE_SLIDER, ROLE_PROGRESSBAR and STATE_REQUIRED. In addition, check the STATE_FOCUSABLE bit on tables, which indicates a traversable DHTML spreadsheet. Please see the DHTML accessibility documentation page for more information on this topic.


DHTML アクセシビリティがサポートされる

この事は、普通 HTML のコンテンツにはない役割を見つける可能性があることを意味します。コンテンツにおいて役割と状態の新しい組合せがある事を予め知っておいてください。例えば、ROLE_SLIDER、ROLE_PROGRESSBAR、STATE_REQUIRED です。さらに、下の表にある STATE_FOCUSABLE のビットを調べてください。探索可能な DHTML のスプレッドシートを示します。この件で、詳細を知りたければ、DHTML アクセシビリティ文書のページ をご参照ください。



IAccessibles Persist

Unless the document changes, retrieving the IAccessible more than once for the same object will return the same IAccessible*. The uniqueID will remain the same as well. If the document does change, EVENT_REORDER, EVENT_HIDE and EVENT_SHOW are used to indicate where the changes will occur. Because of the persistence, relations and events can be mapped within an assistive technology's internal model.



IAccessibles は保持される

ドキュメントが変わらなければ、同じオブジェクトに対して IAccessible を複数回検索すると、同じ IAccessible が返ってきます。一意の ID も同一のままです。もしドキュメントが変わると、変更の発生する場所を指示するのに EVENT_REORDER、EVENT_HIDE、EVENT_SHOW が使われます。保持性があるので、リレーションとイベントは補助技術の内部モデル内で、マッピングされることが可能です。



Page Loading is Tracked via STATE_CHANGE events

When a new document is about to be loaded, an EVENT_STATE_CHANGE occurs on the root ROLE_DOCUMENT object for a window. The STATE_BUSY flag is now set for the root pane object.

Once the new page is ready to be displayed and traversed via its IAccessible tree, the old content window is destroyed, and a new window is created. Next, another EVENT_STATE_CHANGE is fired for the new root ROLE_DOCUMENT object for the window, with its STATE_BUSY flag cleared.




ページの読み込みは、STATE_CHANGE イベント経由で追跡される

新しいドキュメントが読み込まれようとする時、ウィンドウの ROLE_DOCUMENT ルートオブジェクト上で、EVENT_STATE_CHANGE が発生します。そして、STATE_BUSY フラグがルートペイン・オブジェクトに対して設定されます。

新しいページが、IAccessible ツリー経由で表示され、探索される準備が整うと、古いコンテンツウィンドウは破壊され、新しいウィンドウが作られます。それから、そのウィンドウの新しい ROLE_DOCUMENT ルートオブジェクトに対して EVENT_STATE_CHANGE がもう一つ起動され、STATE_BUSY フラグがクリアされます。



長い節でしたが、新たに大幅に書き足された『IEnumVARIANT によるクライアントエンドの性能向上』をこれで完了します。

本日までの完了分は、あらたに新草稿へ追加反映します。
なお、訳文について、気がつかれたことがある方は忌憚なく、ご意見をお寄せください。
旧草稿新草稿
以上


Gecko Info for Windows Accessibility Vendors更新対応8

2005-06-05 23:27:47 | InTranslated
本日は昨日とは一転して、夏のような暑い一日でした。
お陰様で、予定どうり、花壇の古い花株を雑草も含めてすべて引き抜き、新しい土壌を作ることができました。(^o^)
古い花株は、根を深く張っていませんでしたので、簡単に抜けてきました。徒長して根の旺盛な力をすでに失ってしまっているようです。あと、土の中からいくつかチューリップの球根を回収しました。中には、大きく育って昨年の秋に植えたときよりずっと大きくなっているものもありました。大きなものだけ、選りすぐって、また来年花を楽しむことができるかもしれません。(^^)

さて、このバージョンの更新も順調に進んでいます。折り返し地点を過ぎて、そろそろゴールを意識し始めました。

それでは、作業にとりかかりましょう。(^-^;

旧バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.02
新バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.13
原文(旧):  青色表示
原文(新):  緑色表示
訳文(新):  黒色表示
*注記/コメント: 赤色表示

Required and Invalid States are Supported

Gecko defiines two state constants using previously unused alert states:
const unsigned long STATE_REQUIRED = STATE_ALERT_LOW;
const unsigned long STATE_INVALID = STATE_ALERT_HIGH;


要求された状態、無効な状態がサポートされる

Gecko は未使用の警告の状態を使って、2つの状態の定数を定義します:
const unsigned long STATE_REQUIRED = STATE_ALERT_LOW;
const unsigned long STATE_INVALID = STATE_ALERT_HIGH;


Document Structure Exposed in MSAA Tree

BSTR roles are used for important roles that have not been defined by Microsoft. When the role is retrieved in a VARIANT returned from get_accRole, check to see if variant.vt == VT_BSTR. If it is, than variant.bstrVal contains the role string.


MSAA ツリーに表示されるドキュメント構造

BSTR の役割はマイクロソフトによって定義されていない重要な役割に対して使われます。get_accRole から返される VARIAN に役割が含まれる時、variant.vt == VT_BSTR であるかどうか調べてください。そうなっていれば、variant.bstrVal は役割を表す文字列を保持しています。


The role string may be an HTML tag name followed by comma, space and the namespace of the current element. In most current cases the namespace can be ignored, but it may become important in the future. The following HTML tags are exposed as BSTR's:

abbr, acronym, blockquote, form, frame, h1, h2, h3, h4, h5, h6, iframe, q, tbody, tfoot, thead

In addition, an HTML list uses the bullet BSTR role to expose bullets and numbers that are automatically inserted into the formatting by Gecko. In addition, ROLE_LIST with STATE_READONLY and ROLE_LISTITEM are used to expose the list structure. This makes it important to check the STATE_READONLY flag when encountering a ROLE_LIST, because the HTML list form element also uses ROLE_LIST, but without STATE_READONLY set.


役割の文字列は、HTML のタグ名で、その後にコンマ、スーペース、現在の要素の名前スペースが続きます。現在たいていは、名前スペースは無視できますが、将来は重要になるかもしれません。以下の HTML タグは BSTR として表されます:

abbr、 acronym、 blockquote、 form、 frame、 h1、 h2、 h3、 h4、 h5、 h6、 iframe、 q、 tbody、 tfoot、 thead

さらに、HTML のリストは Gecko によるフォーマット化へ自動挿入される黒丸や数字を示すのに bullet BSTR の役割を使用します。さらに、STATE_READONLY や ROLE_LISTITEM と一緒に ROLE_LIST はリストの構造を示すのに使われます。ROLE_LIST を見つけると STATE_READONLY フラグを調べるのが重要になります。というのは、HTML のリストのフォーム要素も STATE_READONLY を設定しないで ROLE_LIST を使うからです。


Positional Descriptions are Supported

The accDescription field is overriden for the following roles:

ROLE_LISTITEM, ROLE_MENUITEM, ROLE_RADIOBUTTON, ROLE_PAGETAB and ROLE_OUTLINEITEM

For everything other than outline item, the positional description is in the form "n of m" where n is an integer indicating the position within other similar objects in a group, and m represents the number of objects in that group. For example, "3 of 5" indicates the 3rd object out of 5.

For outline item, more information is provided, in a format that reads "L#, n of m with c" where # represents the level that the outline item is at, and c represents the number of children. The n of m position relates to the position within the current outline level.

Finally, true descriptions are now exposed with the text "Description: " prepending the description. This makes it clear that the description is truly intended to be read. Neither "Description:" or "of" in the above strings is ever localized, so they should be parsed out.



位置の記述がサポートされる

以下の役割に対して accDescription フィールドがオーバーライドされます:

ROLE_LISTITEM、 ROLE_MENUITEM、 ROLE_RADIOBUTTON、 ROLE_PAGETAB、ROLE_OUTLINEITEM

見出し項目以外のすべてに対して、位置の記述は "n of m" の形で存在し、n はグループ内の類似する他のオブジェクト含めた中での位置を示す整数です。m はグループに存在するオブジェクトの数を表します。例えば、"3 of 5" は 5 つの中の 3 番目のオブジェクトを示します。

見出し項目に対しては、"L#, n of m with c" というフォーマットで、さらに多くの情報が提供されます。# は見出し項目が存在するレベルであり、c は子の数を表します。n of m の位置は現在の見出しレベル内の位置に関連付けられています。

最後に、記述の前に付加されるテキスト "Description: " を使って本当の記述は、今表示されます。記述を本当に読んで欲しいと言っている事が、これによってはっきりします。上記の文字列内の "Description:" も "of" 決してローカル化されていませんので、ともに解析されるはずです。



もっと続けようかと思ったけれど、これでやめます。ここで全力疾走しても、続きませんから・・・・・・残念!(`ヘ´)

本日までの完了分は、あらたに新草稿へ追加反映します。
なお、訳文について、気がつかれたことがある方は忌憚なく、ご意見をお寄せください。
旧草稿新草稿
以上


Gecko Info for Windows Accessibility Vendors更新対応7

2005-06-04 22:06:35 | InTranslated
先ほど雨が激しく振り出して、ロフトにある私の書斎は大きな雨音に、BGM で流していたシューベルトのピアノソナタが聞こえなくなるほどでした。梅雨の予感。
我が家の花壇に植えられた、ノースポルとムルチコーレは、知らない間に盛りを過ぎて、徒長気味です。
マリーゴールドの苗が、育ってきており、古い花を抜いて、新しい苗に植え替えようとしておりました。今週末は、その予定でしたのに、こんな大雨では作業ができないかもしれません。本日晴れ間の見えた午後の内に、済ませておけばよかった。天気予報では、晴れといっていたのに。残念。
どこか、気の晴れない週末です。(・_・、 

原文(旧):  青色表示
原文(新):  緑色表示
訳文(新):  黒色表示
*注記/コメント: 赤色表示

MSAA Features We Do Not Support

These features are slated for possible future development://→ここと直下の段落は落とされています。既に実現されているので、落とされたのでしょう。//

* More MSAA events: EVENT_OBJECT_NAMECHANGE, EVENT_OBJECT_VALUECHANGE, EVENT_OBJECT_SELECTION, EVENT_OBJECT_SELECTIONADD, EVENT_OBJECT_SELECTIONREMOVE, EVENT_OBJECT_SELECTIONWITHIN
* Accessibility for XUL (eXtensible User-interface Language), and the browsers that use it (Netscape, Mozilla).

No one has yet asked for the following features (if you need something, please contact Aaron Leventhal ):

* IAccessible methods that we don't currently support:
get_accHelp get_accHelpTopic put_accName put_accValue
* We do not currently support the Visual Basic (IDispatch) bindings for IAccessible.
* We do not currently support directional navigation.
* We do not currently support scroll bars as IAccessible objects, although we do support EVENT_SYSTEM_SCROLLINGEND and ISimpleDOMNode::ScrollTo(), explained below.
* We do not currently support MSAA alerts.
* We do not currently support STATE_SYSTEM_MOVEABLE, STATE_SYSTEM_SIZEABLE or STATE_SYSTEM_MARQUEED.
* We do not currently support ROLE_SYSTEM_ROW, ROLE_SYSTEM_ROWHEADER or ROLE_SYSTEM_COLUMNHEADER. Internet Explorer doesn't either, and we're going for compatibility. You can get this information via our additional DOM support.



MSAA Features We Do Not Support

No one has yet asked for the following features (if you need something, please contact Aaron Leventhal ):

IAccessible methods that we don't currently support:

* get_accHelp
* get_accHelpTopic
* put_accName
* put_accValue
* We do not currently support the Visual Basic (IDispatch) bindings for IAccessible.
* We do not currently support directional navigation via accNavigate()
* We do not currently support scroll bars as IAccessible objects, although we do support EVENT_SCROLLINGEND and ISimpleDOMNode::ScrollTo(), explained below.
* We do not currently support STATE_MOVEABLE, STATE_SIZEABLE or STATE_MARQUEED.
* We do not currently support ROLE_SYSTEM_ROW, although Internet Explorer doesn't either, and the reason seems apparent. It is not obvious where the ROLE_SYSTEM_ROW should exist in the tree when the HTML rowspan attribute is used to combine to cells in different rows. There are currently two techniques for parsing tables: 1) use accLocation() to get the coordinates for each cell and feed that into an algorithm that builds up your own table data structure, or 2) use ISimpleDOMNode and parse the table
* See below for the complete list of roles and notes about what we support



サポートしない MSAA 機能

以下の機能はだれにもまだ要請されていません。(必要なものがあれば、Aaron Leventhal にご連絡を下さい ):

現在サポートしていない IAccessible のメソッド:

* get_accHelp
* get_accHelpTopic
* put_accName
* put_accValue
* IAccessible に対して Visual Basic (IDispatch) のバインディングを現在サポートしていません。
* accNavigate() による方向指定操作は現在サポートしていません。
* 下記に説明していますように、 EVENT_SYSTEM_SCROLLINGEND と ISimpleDOMNode::ScrollTo() はサポートしていますが、IAccessible オブジェクトとして現在スクロールバーはサポートしていません。
* STATE_SYSTEM_MOVEABLE、STATE_SYSTEM_SIZEABLE や STATE_SYSTEM_MARQUEED は現在サポートしていません。
* ROLE_SYSTEM_ROW を現在サポートしていませんし、Internet Explorer もまたサポートしていません。その理由ははっきりしているように思えます。HTML の rowspan 属性が複数の行でセルに結合するのに使用される時、ROLE_SYSTEM_ROW がツリーのどこに存在すべきかは明確でありません。現在は表の分析に 2 つの技術が存在します:1) accLocation() を使って各セルの座標を取得し、それを、独自開発の表データ構造を構築するアルゴリズムへ取り入れるか、または、2) ISimpleDOMNode を使って、表を解析するかです。
* サポートされている役割と注記の一覧は下記の表をご参照ください。



Intentional Differences with Internet Explorer

For the most part, where we support a method of IAccessible, we have tried to duplicate Internet Explorer's uses of IAccessible. Please let us know if you find any differences not listed here:

How Page Loading is Tracked//→ここ以下の段落は大幅に変更追加されています。改訂版では、段落毎に翻訳を進めて行きます。//


When the current MSAA tree is no longer relevant, an EVENT_OBJECT_STATE_CHANGE occurs on the root pane object. The STATE_SYSTEM_BUSY flag is now set for the root pane object.

Once the new page is ready to be displayed and traversed via its IAccessible tree, the old content window is destroyed, and a new window is created. Next, an EVENT_OBJECT_STATE_CHANGE is thrown for the new root pane, with its STATE_SYSTEM_BUSY flag cleared.




Intentional Differences with Internet Explorer

For the most part, where we support an MSAA feature, we have tried to duplicate Internet Explorer's use of it. Please let us know if you find any differences not listed here:


Internet Explorer との意図的な相違

MSAA の機能をサポートするほとんどの部分では、Internet Explorer が MSAA を使用することの再現を試みています。ここに挙げられていない相違に気付かれたならご連絡下さい:


Accessible Relations are Supported

The accNavigate() method can be used with new constants defined for Gecko. The results are always returned via VT_DISPATCH.

enum { NAVRELATION_LABEL_FOR = 0x1002 };

enum { NAVRELATION_DESCRIPTION_FOR = 0x100f };

These two relations can be used on a ROLE_STATICTEXT object to determine what form control is being labelled or desribed.

enum { NAVRELATION_LABELLED_BY = 0x1003 };

enum { NAVRELATION_DESCRIBED_BY = 0x100e };

These two relations are they inverse; they can be used on form controls. If the form control has an accName, you can get the IAccessible that it was labelled by in order to get more formatting information. It is also useful to check for a description.


アクセシビリティの関係がサポートされる

accNavigate() メソッドは Gecko 向けに定義された新しい定数と一緒に使用できます。結果はかならず VT_DISPATCH.accNavigate() 経由で返されます。

enum { NAVRELATION_LABEL_FOR = 0x1002 };

enum { NAVRELATION_DESCRIPTION_FOR = 0x100f };

これら 2 つの関係は ROLE_STATICTEXT オブジェクトで、どのフォーム制御がラベル付けされているか、記述されているか見つけるのに使用可能です。

enum { NAVRELATION_LABELLED_BY = 0x1003 };

enum { NAVRELATION_DESCRIBED_BY = 0x100e };

これら2つの関係はまた逆です。フォーム制御で使用可能です。フォーム制御が accName を備えるなら、さらにフォーマット化情報を得るために、IAccessible を取得して、これによって accName はラベル付けされます。記述を調べるのにも役に立ちます。


Note that the label and description relations may be used to prevent redundant information from being presented by the screen reader, since the label and description can occur both on their own, and in the name or description fields of an IAccessible.

enum { NAVRELATION_DEFAULT_BUTTON = 0x100d };

When used within an HTML form or a XUL dialog, the NAVRELATION_DEFAULT_BUTTON relation will return the IAccessible for the default button.


ラベルと記述の関係はスクリーンリーダが冗長な情報を提供するのを防止するのに使われることに留意してください。というのは、ラベルと記述は自分自身の名前や記述に現れるだけだなく、IAccessible の名前や記述領域にも現れるからです。

enum { NAVRELATION_DEFAULT_BUTTON = 0x100d };

HTML フォームや XUL ダイアログ内で使われる時、NAVRELATION_DEFAULT_BUTTON relation オブジェクトは初期設定のボタンに対して IAccessible を返します。


この節の途中ですが、本日はここまでとします。

本日までの完了分は、あらたに新草稿へ追加反映します。
なお、訳文について、気がつかれたことがある方は忌憚なく、ご意見をお寄せください。
旧草稿新草稿
以上





Gecko Info for Windows Accessibility Vendors更新対応6

2005-06-03 22:46:36 | InTranslated
Le vent se leve.
Il faut vivre.
風たちぬ、いざ生きめやも。---- P. ベルレーヌ(訳者;堀口大学でしたかね?)

英訳すると、
A breath of wind has risen.
So, life has a reason. by Nobuyuki(^_^ゞ

さて、本日もいつものように・・・・・・・


原文(旧):  青色表示
原文(新):  緑色表示
訳文(新):  黒色表示
*注記/コメント: 赤色表示

旧バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.02
新バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.13

How to track where the event happened, within your own offscreen model

Because screen readers sometimes store data in their own data structures, it is important for them to have a unique identifer for each potential target of an event. This way, when an event occurs, they can correlate objects within their own data model with objects that MSAA events occur on.
//→この段落は、大きく書き換えられています。//

How to track where the event happened, within your own offscreen model

Ordinary zero-indexed child IDs are not practical for representing events. The problem is that the child ID system that is used by MSAA doesn't work well when you have a deep tree of objects in a window. It would be impractical to number all of the nodes in a document starting at 0, because whenever a node is inserted or removed it would be computationally very expensive to renumber things. So, the Firefox childID handed back from events is based on an algorithm that uses the pointer value of the related internal DOM node. This computed child ID for events is always a negative value, unique to the IAccessible firing the event


普通、子の ID が添え字 0 から始まるのはイベントを表すのに実用的でありません。問題点は、MSAA が採用する ID システムは、ウィンドウでオブジェクトが深いツリー構造となっている場合うまく機能しないことです。ドキュメントのすべてのノードに 0 から始まる番号をふることは実用的でありません。というのは、ノードが挿入されたり削除される都度、番号付けをやり直すのはプログラム上高価につくからです。そこで、イベントから戻される Firefox の子 ID は関連する内部 DOM モードのポインター値を使うアルゴリズムに基づくようになっています。イベントに対して計算されるこの子 ID は必ず負の数であり、イベントを起動する IAccessible にとって一意です。

We provide support for this in several ways:

1. You can QueryService to an ISimpleDOMNode (see below), and get a unique (within the document) 32 bit ID for the DOM node via the get_nodeInfo() method.
2. When an event occurs, we hand you a window handle and a childID. The childID we give you is either CHILDID_SELF, if the event occured on the root, or a unique ID. If you wish, you can use this unique ID to correlate back to the unique ID's you store when loading the MSAA tree, obtained via method #1 (ISimpleDOMNode::get_nodeInfo).
3. Ordinarily, one would use the lVal field in the VARIANT structure with get_accChild and the other IAccessible methods, to specify which direct child they wish to use. Possible values are lVal=CHILDID_SELF (0) to directly refer to the current IAccessible, or an lVal >=1 to refer to one of the immediate children. Additionally, you can now use the unique childID given when an event occurs, and treat it like a childID of the root pane accessible, to get whatever decendant accessible the event occured on, no matter how deep in the tree it is.
//→この段落も、全面的に書き換えられています。//

These negative childID's from events can be used with AccessibleObjectFromEvent(), or on the root accessible of a window with any IAccessible method that takes a VARIANT, such as get_accChild().

Because screen readers usually cache an entire document's worth of data, it can be extremely useful for them to receive a child ID that helps them correlate back to a known object. We provide support for this technique via ISimpleDOMNode::get_nodeInfo(), which returns a uniqueID for any IAccessible that can be cached in the internal model. When an event is received, the negative childID should match one of these cached uniqueID's, if the entire document has been stored and kept current. Keeping an internal cache current means getting new subtrees of IAccessibles whenever an EVENT_REORDER is received, indicating important changes have invalidated part of the model.


これらのイベントからの負の数である子 ID は AccessibleObjectFromEvent() によって使用されるか、get_accChild() のような、VARIANT を採るすべての IAccessible のメソッドによってウィンドウのルートアクセシビリティで使われます。

スクリーンリーダは、普通全ドキュメントに匹敵するデータをキャッシュするので、既知のオブジェクトに正しく戻ることができるようになる子 ID を受け取るのはスクリーンリーダにとってとてもありがたいことです。内部モデルでキャッシュされることが可能なすべての IAccessible に対する一意の ID を返す ISimpleDOMNode::get_nodeInfo() によって、私たちはこの技術に対してサポートを提供します。イベントが受け取られた時、全ドキュメントが保持され、現状維持されているなら、負の数の子 ID は、これらのキャッシュされた一意の ID の中のひとつと合致します。内部キャッシュを現状維持するとは、EVENT_REORDER が受け取られる時は必ず、IAccessibles の新しいサブツリーを取得することであり、重要な変更が発生してモデルの一部が無効化されたことを示します。


本日までの完了分は、あらたに新草稿へ追加反映します。
なお、訳文について、気がつかれたことがある方は忌憚なく、ご意見をお寄せください。
旧草稿新草稿

(^-^)/~~~~ またね・・・・




Gecko Info for Windows Accessibility Vendors更新対応5

2005-06-02 23:30:40 | InTranslated
都に雨のふるごとく、我が心にも涙降る。(;_;)

旧バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.02
新バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.13


原文(旧):  青色表示
原文(新):  緑色表示
訳文(新):  黒色表示
*注記/コメント: 赤色表示

MSAA Support: IAccessible Methods

To use MSAA with Gecko, you'll need the tools and docs that come with the MSAA SDK . The method AccessibleObjectFromWindow() will get you the root IAccessible corresponding to the top level window. Hold on to this root IAccessible, and use it to walk through the entire tree of IAccessible's.

We currently support MSAA for HTML content, ala the IAccessible interface and MSAA events.//→新しい節ではこの文が削除されています。//

* IAccessible methods that we support:
get_accParent get_accChildCount get_accChild get_accName
get_accValue get_accDescription get_accRole get_accState
get_accFocus get_accDefaultAction accLocation accSelect
accHitTest accDoDefaultAction accNavigate get_accKeyboardShortcut


MSAA Support: IAccessible Methods

To use MSAA with Gecko, you'll need the tools and docs that come with the MSAA SDK . The method AccessibleObjectFromWindow() will get you the root IAccessible corresponding to the top level window. Hold on to this root IAccessible, and use it to walk through the entire tree of IAccessible's.

IAccessible methods that we support:

* get_accParent
* get_accChildCount
* get_accChild
* get_accName
* get_accValue
* get_accDescription
* get_accRole
* get_accState
* get_accFocus
* get_accDefaultAction
* accLocation
* accSelect
* accHitTest
* accDoDefaultAction
* accNavigate
* get_accKeyboardShortcut



MSAA サポート: IAccessible メソッド

Gecko で MSAA を使用するために、 MSAA SDK を備えているツールとドキュメントが必要になります。AccessibleObjectFromWindow() メソッドで、トップレベルのウィンドウに対応するルート IAccessible が取得できます。このルート IAccessible を保持して IAccessible の全ツリーを移動するのに使用して下さい。

サポートしている IAccessible のメソッド:

* get_accParent
* get_accChildCount
* get_accChild
* get_accName
* get_accValue
* get_accDescription
* get_accRole
* get_accState
* get_accFocus
* get_accDefaultAction
* accLocation
* accSelect
* accHitTest
* accDoDefaultAction
* accNavigate
* get_accKeyboardShortcut



MSAA Support: IAccessible Events and Unique ID's
What MSAA events do we support?

* EVENT_OBJECT_FOCUS is fired for focus changes on any kind of focusable object
* EVENT_OBJECT_STATECHANGE is used in check boxes, radio buttons, text fields, combo boxes and list boxes. It's also used in the root pane object to show when the STATE_BUSY flag changes from loading new content.
* EVENT_SYSTEM_SCROLLINGEND is used to indicate when a document has scrolled, even if only 1 line. Gecko does it's best to fire this event when the scrolling is finished, rather than fire excessive events.
* EVENT_SYSTEM_MENUPOPUPSTART and EVENT_SYSTEM_MENUPOPUPEND are fired when XUL menus are opened or closed.
* EVENT_SYSTEM_MENUSTART and EVENT_SYSTEM_MENUEND are fired when the XUL menubar is activated or deactivated.
* EVENT_OBJECT_SHOW, EVENT_OBJECT_HIDE and EVENT_OBJECT_LOCATIONCHANGE are fired for the caret object.

MSAA Support: IAccessible Events and Unique ID's
What MSAA events do we support?
//→サポートされるイベントが倍くらいに増えています。//

* EVENT_FOCUS is fired for focus changes on any kind of focusable object
* EVENT_STATECHANGE is used in check boxes, radio buttons, text fields, combo boxes and list boxes. It's also used in the root pane object to show when the STATE_BUSY flag changes from loading new content.
* EVENT_SCROLLINGEND is used to indicate when a document has scrolled, even if only 1 line. Gecko fires this event when the scrolling is finished, rather than fire excessive events.
* EVENT_SCROLLINGSTART is fired when the user has jumped to a named anchor within the page. The event is fired on the first accessible object in the part of the document that has been jumped to.
* EVENT_MENUPOPUPSTART and EVENT_MENUPOPUPEND are fired when XUL menus are opened or closed.
* EVENT_MENUSTART and EVENT_MENUEND are fired when the XUL menubar is activated or deactivated.
* EVENT_VALUECHANGE is fired for sliders, progress meters and other objects who's get_accValue() may change. Note that sliders
* EVENT_SHOW, EVENT_HIDE and EVENT_LOCATIONCHANGE are fired for the caret object.
* EVENT_REORDER is fired on an object whenever its children change. EVENT_SHOW and EVENT_HIDE may also be fired with the reorder event, for the child who's visibility changed. The show and hide events are not fired on every IAccessible when a new subtree of IAccessibles changes visibility -- only the top IAccessible. The exception is progress meters, which are guaranteed to fire EVENT_SHOW and EVENT_HIDE events when they are displayed or hidden.
* EVENT_ALERT is fired when an object of ROLE_ALERT appears or changes. This should indicate to a screen reader to read the contents of the alert (it may be a container who's descendents should be read).
* EVENT_SELECTION is fired on children of single selection containers along with the EVENT_FOCUS as selection/focus move together in that case.
* EVENT_SELECTIONWITHIN is fired on multi selection containers when the current selection changes within. In addition, EVENT_SELECTIONADD and EVENT_SELECTIONREMOVE are fired on the the child who's selection changed.



SAA サポート: IAccessible イベントおよび一意の ID
私たちがサポートする MSAA イベントは何?

* EVENT_OBJECT_FOCUS はすべてのフォーカス可能なオブジェクト上でフォーカスの変更のために起動されます。
* EVENT_OBJECT_STATECHANGE はチェックボックス、ラジオボタン、テキストフィールド、コンボボックス、リストボックスにおいて使用されます。また、STATE_BUSY フラグが新しいコンテンツを読み込み中の状態から何時変更になるかを示すのに、ルートペインオブジェクトでも使用されます。
* EVENT_SYSTEM_SCROLLINGEND は一行だけであっても、ドキュメントがいつスクロールしたかを示すのに使われます。スクロールが完了する時、過剰にイベントを起動せずに、このイベントを起動するのが最適である事を Gecko が示します。
* EVENT_SCROLLINGSTART はユーザがページ内で名前付きのアンカーへ移動した時に起動されます。イベントは移動先のドキュメント内部の最初のアクセシビリティのオブジェクトで起動されます。
* EVENT_SYSTEM_MENUPOPUPSTART と EVENT_SYSTEM_MENUPOPUPEND は XUL メニューバーが開かれたり閉じられた時起動されます。
* EVENT_SYSTEM_MENUSTART と EVENT_SYSTEM_MENUEND は XUL メニューバーが有効になったり無効になった時に起動されます
* EVENT_VALUECHANGE は get_accValue() が変更することができるスライダー、プログレスメータ、他のオブジェクトに対して起動されます。
* EVENT_OBJECT_SHOW, EVENT_OBJECT_HIDE と EVENT_OBJECT_LOCATIONCHANGE はキャレットオブジェクトのために起動されます。
* EVENT_REORDER はオブジェクトでその子が変わる時にかならず起動されます。EVENT_SHOW と EVENT_HIDE はその外観が変わる子に対して、同じく起動されることがあります。見せたり隠したりするイベントは、一番上の IAccessible以外は IAccessibles の新しいサブツリーが、すべての IAccessible で外観を変更する時は起動されません。例外はプログレスメータであり、表示されたり、隠されたりする時、EVENT_SHOW や EVENT_HIDE イベントをかならず起動するようになっています。
* EVENT_ALERT は ROLE_ALERT のオブジェクトが出現したり変わったりする時に起動されます。こうして、スクリーンリーダが警告内容を読み上げるように指示を出します(警告内容は、読み上げられる下位層を備えた、コンテナかもしれません)。
* EVENT_SELECTION は 単一項目選択コンテナが備える子において、EVENT_FOCUS と一緒に起動されます。この場合、選択とフォーカスが一緒に移動します。
* EVENT_SELECTIONWITHIN は複数項目選択コンテナで、現在の選択が内部で変わる時に起動されます。さらに、選択が変更された子において、EVENT_SELECTIONADD と EVENT_SELECTIONREMOVE が起動されます。



本日までの完了分は、あらたに新草稿へ追加反映します。
なお、訳文について、気がつかれたことがある方は忌憚なく、ご意見をお寄せください。
旧草稿新草稿


途中で恐縮ですが、本日はここまでにします。
雨がしとしと降っています。梅雨ももうそこまで来て、出番を待つ敵役のように控えておりますぞ。(゜゜)




Gecko Info for Windows Accessibility Vendors更新対応4

2005-06-01 22:04:11 | InTranslated
本日もいけいけどんどん。(^-^;

旧バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.02
新バージョン: Gecko Info for Windows Accessibility Vendors Rev.1.13


原文(旧):  青色表示
原文(新):  緑色表示
訳文(新):  黒色表示
*注記/コメント: 赤色表示

How to Find a Gecko Window

All Mozilla windows have the window class called "MozillaWindowClass". In addition, you can find out whether a window is a content window or a XUL UI window. This is done by checking the low bit of the control ID, which is returned when you make the Win32 API call controlId = ::GetWindowLong(hWnd, GWL_ID) & 1. If the result is 0, this is a UI window; if it is 1, then this is a content window. At this point, embedding clients don't use XUL, so for them you only need to find the top MozillaWindowClass window. Fortunately, you won't need separate logic for all different clients. Whenever you see a MozillaWindowClass window focused, keep moving to the first child if it has a control ID of 0. If it has a control ID of 1, find the first ancestor that also has a control ID of 1. This is where you should start when using MSAA to get the content tree for a Mozilla application.
//→この節は跡形もなく変更されています。//

How to Find the Content Window and Load the Document

Screen readers need to find the content window so that they know where to start grabbing the MSAA tree, in order to load the current document into a buffer in their own process. The content window always has the class MozillaContentWindowClass.

In total, Gecko supports the following window classes:

* MozillaUIWindowClass - root UI window, at the root of the window hierarchy
* MozillaContentWindowClass -- root document window
* MozillaContentFrameWindowClass - root of a subdocument created by a (frame) or (iframe) element
* MozillaHiddenWindowClass - ignore these windows, they are used to help manage other windows
* MozillaWindowClass - general filler window, a catch all



コンテンツウィンドウの見つけ方と、ドキュメントの読み込み方法

スクリーンリーダーは、自らの処理で現在のドキュメントをバッファに取り込むために、コンテンツウィンドウを見つけ MSAA ツリーの獲得を開始するポイントを知る必要があります。コンテンツウィンドウはかならず、MozillaContentWindowClass というクラスを備えています。

Gecko は以下に示すウィンドウクラスをすべてサポートします:

* MozillaUIWindowClass - ウィンドウ階層の根底にあるルート UI ウィンドウ
* MozillaContentWindowClass -- ルートドキュメントウィンドウ
* MozillaContentFrameWindowClass - (frame) や (iframe) 要素によって作られるサブドキュメントのルート
* MozillaHiddenWindowClass - これらのウィンドウを無視してください。他のウィンドウの操作の支援をするのに使われます。
* MozillaWindowClass - 一般的な埋め草ウィンドウ、多目的



When you see any of the above windows receive focus, first check the role. If it is ROLE_PANE or ROLE_DOCUMENT then this should be treated as a document for the default modality of the screen reader. If it is a ROLE_APPLICATION or ROLE_DIALOG then stay in focus tracking mode -- there is no need to parse the document. This can happen because of the new DHTML accessibility technology.


上記のウィンドウのいずれかに気付いたなら、始めにその役割を調べてください。ROLE_PANE や ROLE_DOCUMENT ならば、スクリーンリーダの初期設定モード用のドキュメントとして処理されるべきです。ROLE_APPLICATION や ROLE_DIALOG であれば、フォーカスの追跡モードであって、ドキュメントの解析は必要ありません。というのは、新しい DHTML アクセシビリティテクノロジーのお陰でこれが可能になります。


Once you know that you have a document, go up the ancestor chain of windows until you see a MozillaContentWindowClass or a MozillaUIWindowClass. If it is a content window, you may use AccessibleObjectFromWindow() to get the root IAccessible for the content, and begin traversing the tree from there.


ドキュメントがあると分かれば、ウィンドウの上層へ、MozillaContentWindowClass か MozillaUIWindowClass を見つけるまで、連鎖をたどってください。もしそれが、コンテンツウィンドウであれば、AccessibleObjectFromWindow() を使ってコンテンツ用に ルート IAccessible を取得し、ツリーからツリーへと移動を開始できます。


Gecko also helps determine when to load a new window by firing two EVENT_STATE_CHANGE's on the root ROLE_DOCUMENT accessible -- the first state change indicates the document pane is now busy loading. The second state change indicates the document pane has finished. When handling the event, use get_accState() to check the STATE_BUSY flag. When the document has finished loading the busy flag will be cleared.


Gecko はまた、ROLE_DOCUMENT accessible で 2 つの EVENT_STATE_CHANGE を起動することで、新しいウィンドウをいつ読み込むべきかの決定をし易くします。最初の状態の変更はドキュメントのペインが今読み込みで塞がっていることを示します。2 番目の変更はドキュメントのペインが読み込みを完了したことを示します。イベントを処理するとき、get_accState() を使って STATE_BUSY フラグを調べてください。ドキュメントが読み込みを完了すると、塞がっていることを示すフラグはクリアーされます。


本日までの完了分は、あらたに新草稿へ追加反映します。
旧草稿新草稿

(^-^)/~~~~