IT翻訳 Nobuyuki の仕事部屋

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

Gecko Info for Windows Accessibility Vendors校正その14

2005-05-02 08:02:06 | InReview
さて本日がいよいよ校正の最終日となるでしょう。
2W ほどかかりましたが、全体にかなり読み違い、誤訳が多くて自分でもやや恥ずかしく思うような草稿でありました。(^^;
日本語を英語に置き換えただけで、内容をじっくりと推敲していないところが多いと自己反省したしだいです。もちろん、知識不足で専門家の意見が必要な箇所も多々あります。特に今回は、コーディングの説明が多くて、プログラムの知識が要求される文書です。
このような文書の対応として、主にふたつ考えられます。

1.内容が分からない部分を明らかにして、専門化に確認する。
2.自分なりに、翻訳に必要なプログラムの知識を習得する。

1. は、 Mozilla Japan に草稿公開することで、ある程度支援が得られます。分からない部分を明確に宣言するように、草稿訳注という形でコメントを入れるようにしています。
2.は、まあボチボチですね。JavaScript、C、Java と色々読み漁っています。editor を使って coding もしますが、たとえ簡単なプログラムでも上手く行った時は、結構うれしいですね。余談になりますが、net というのは、何かアメーバーのように自己増殖します。coding を覚えようとすると、net の中で、実に様々な機会が提供されます。そこで、net の利用者が、自分でどんどん coding を覚えて、やがて net の発展に貢献できるような人材を、net 自身がで育成しているような感じがします。
また、当文書でも盛んに open source について述べられていますが、プログラムをカスタマイズして、自分なりに便利なものに作り変えて行くことが出来るなんてすばらしいことです。まあ、私には縁遠い世界ですが、しかし、素人ながらプログラムには大なり小なり、知的好奇心をくすぐられるところがあります。数学の解を得るのに、色々なアプローチがあるように、coding の表現にも創造性を発揮できる領域が存在するようです。

話はそれましたが、今後も自分なりに、翻訳を通じてプログラムの勉強は継続して行きたいと思います。さて、いつもながらの校正作業へかかりましょう。


原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

ISimpleDOMDocument

There is one ISimpleDOMDocument interface for each XML or HTML document in Gecko, which you can use to get important information global to the document. If a given node's get_nodeType method returns NODETYPE_DOCUMENT, then you know you can QueryInterface to an ISimpleDOMDocument. The root accessible can also always be QueryInterface'd to an ISimpleDOMDocument.


ISimpleDOMDocument

Gecko の各 XML や HTML ドキュメント用の ISimpleDOMDocument インターフェイスがひとつあります。これはドキュメントにグローバルな重要情報を取得するために使われます。もし任意のノードの get_nodeType メソッドが NODETYPE_DOCUMENT を返すならば、ISimpleDOMDocument に QueryInterface 出来ることが分かります。ルートアクセシビリティはまた必ず ISimpleDOMDocument に QueryInterface されます。


Here are the methods for ISimpleDOMDocument:
HRESULT get_URL (/* [out] */ BSTR *url); // Location of document
HRESULT get_title (/* [out] */ BSTR *title); // From the (TITLE)
HRESULT get_mimeType(/* [out] */ BSTR *mimeType); // For example text/html or text/plain
HRESULT get_docType (/* [out] */ BSTR *docType); // From the (!DOCTYPE ..)
HRESULT get_nameSpaceURIForID( // Translate namespace ID's from ISimpleDOMNode
/* [in] */ unsigned short nameSpaceID, // calls into the actual namespace URI's
/* [out] */ BSTR *nameSpaceURI);
HRESULT put_alternateViewMediaTypes(/* [in] */ BSTR * commaSeparatedMediaTypes); // For example "aural, braille"


以下が ISimpleDOMDocument 用メソッドです:
HRESULT get_URL (/* [out] */ BSTR *url); // ドキュメントの位置
HRESULT get_title (/* [out] */ BSTR *title); // (TITLE) から
HRESULT get_mimeType(/* [out] */ BSTR *mimeType); // 例えば text/html また text/plain
HRESULT get_docType (/* [out] */ BSTR *docType); // (!DOCTYPE ..) から
HRESULT get_nameSpaceURIForID( // ISimpleDOMNode から名前スペース ID を翻訳する。
/* [in] */ unsigned short nameSpaceID, //実際の名前スペース URI へ呼び出す
/* [out] */ BSTR *nameSpaceURI);
HRESULT put_alternateViewMediaTypes(/* [in] */ BSTR * commaSeparatedMediaTypes); // 例えば "aural, braille"


Keyboard User Interface and API

Fortunately, Gecko uses the standard keyboard API's for each supported platform.

For a large number of keyboard commands, we emulate Internet Explorer's keyboard shortcuts. Our keyboard plan describes our current design and future possibilities.

キーボード//→キーボードの//ユーザーインターフェイスと API

幸い Gecko はサポートされている各プラットフォーム用に標準キーボード API を使います。

数多くのキーボードのコマンドは、Internet Explorer のキーボードショートカットをエミュレートします。私たちの keyboard plan は現在の設計と将来の可能性について説明します//→私たちのキーボードプランによって、現在の設計と将来の様々な可能性について説明します//


Beyond HTML: Other Types of Web Content

*You may have heard of some content types beyond HTML, and want to know if Gecko based products will support them:


HTML を超えて: 他の種類のウェブコンテンツ

*HTML を超えたコンテンツの種類があるのを聞かれた方がいるかもしれません。そして Gecko による//→をベースとした//製品がそれらをサポートするかどうか知りたくなるかもしれません:

MathML : an XML dialect used to display full math notation on web pages. Here's the ongoing Mozilla project to support MathML . We do not currently have plans to support MSAA for MathML - we will likely suggest use of the external DOM for this, because MSAA simply does not have the right stuff in it to support mathematics.

MathML : ウェブ上で完全な数学の概念を表示するのに使われる XML 言語です。MathML をサポートする Mozilla プロジェクトが進行中です。現在は私たちは MathML 用に MSAA をサポートする計画はありません。 - これには外部的 DOM を使用する事を提案する//→外部的に DOM を使用する事を推奨する//可能性が大きいです。というのは、数学をサポートするために MSAA は単にそこで//→内部に//適任の人材を備えていないためです。

SVG : Scaleable Vector Graphics. Essentially W3C's XML-based version of Flash - mixes well with other markup based content, supports the DOM and has accessibility features. Mozilla's SVG Project has been through several stalls and rebirths -- SVG will probably become more of a priority if other well known browsers support it. We won't know how, or whether, we'll support SVG accessibility until a better implementation comes along.

SVG : Scaleable Vector Graphics. 本質的に Flash の W3C XML ベース版で - 他のマークアップベースのコンテンツと融和しており、DOM をサポートしアクセシビリティ機能を備えています。 Mozilla の SVG プロジェクト は幾多の失敗と再生を経ています。SVG は他の有名なブラウザに支援されれば、おそらくもっと高い優先度を獲得するでしょう。より良い実装が実現するまでは、SVG アクセシビリティをサポートするかどうか、またその方法も明らかになっていません。

Questions or Comments?

Please discuss accessibility issues on the Mozilla-Accessibility mailing list . You can also e-mail me (Aaron Leventhal) directly at aaronleventhal@moonset.net .

Maintained by Aaron Leventhal.

質問 または コメント?//→ 質問やコメントについて//

Mozilla-アクセシビリティメールリストでアクセシビリティの問題について話し合いましょう。また直接私宛に e-mail を送って下さい。 (Aaron Leventhal) aaronleventhal@moonset.net .

管理者: Aaron Leventhal.


以上で校正作業をこれで完了します。あとは Mozilla Japan の公開校正をへて、速やかに完成原稿に上げたいと思います。そうすれば、一連のアクセシビリティ関連の文書が一段落しますので、ホット一息つけるかもしれません。\(^o^)/

一応校正を反映しました草稿をリンクします。また、 Mozilla Japan の翻訳活動に興味のある方は、下記の Mozilla をクリックしてみてください。
訳題: Windows アクセシビリティベンダー向け Gecko 情報(校正後)





Gecko Info for Windows Accessibility Vendors校正その13

2005-05-01 06:55:38 | InReview
本日もイケイケどんどん。
Gecko



原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

ISimpleDOMText

DOM nodes that are text nodes support ISimpleDOMText. This extension is useful if you need to work on a character by character basis, whereas IAccessible provides only node by node support. Text nodes must be leaf nodes, so there is no need to check for this interface if the current node has any MSAA or DOM children. Text nodes always support ISimpleDOMNode as well as ISimpleDOMText.


ISimpleDOMText

テキストノードである DOM ノードは ISimpleDOMText をサポートします。IAccessib がノードのサポートによってノードだけを提供する一方で、この拡張は、文字べースで//→文字を使って//文字について作業する必要がある場合に役に立ちます。テキストノードはリーフノードでなければいけませので//→いけないので//現在のノードが MSAA や DOM の子を備えているならば//→現在のノードが MSAA や DOM の子を備えているかどうか*1//、このインターフェイスを調べる必要はありません。テキストノードは必ず ISimpleDOMNode と ISimpleDOMText の両者をサポートします。


*1→if 以下は条件を表す副詞節ではなく、check の目的語で名詞節となっているようです。

Here are the methods for ISimpleDOMText:
// Includes all DOM whitespace; IAccessible::get_accName does not
HRESULT get_domText(BSTR *domText);

// Bounding rect clipped to window
HRESULT get_clippedSubstringBounds(
[in] unsigned int startIndex,
[in] unsigned int endIndex,
[out] int *x,
[out] int *y,
[out] int *width,
[out] int *height);


以下が ISimpleDOMText 用のメソッドです。
// すべての DOM ホワイトスペースを保持するが、IAccessible::get_accName は保持しない
HRESULT get_domText(BSTR *domText);

// window に rect を切り抜いて止める(草稿訳注:この訳は自信なし)//*2→Bounding rect をウィンドウへはめる//
HRESULT get_clippedSubstringBounds(
[in] unsigned int startIndex,
[in] unsigned int endIndex,
[out] int *x,
[out] int *y,
[out] int *width,
[out] int *height);


*2→get_bounding_rect(font, pointsize, angle, (x,y), s) というメソッドもあるようです

// Bounding rect unclipped
HRESULT get_unclippedSubstringBounds(
[in] unsigned int startIndex,
[in] unsigned int endIndex,
[out] int *x,
[out] int *y,
[out] int *width,
[out] int *height);

// rect を止めない(草稿訳注:これも同様自信なし )//→Bounding rect を外す//
HRESULT get_unclippedSubstringBounds(
[in] unsigned int startIndex,
[in] unsigned int endIndex,
[out] int *x,
[out] int *y,
[out] int *width,
[out] int *height);


// Scroll to this part of the subsstring
HRESULT scrollToSubstring([in] unsigned int startIndex,
[in] unsigned int endIndex);

// subsstring のこの部分へスクロールする
HRESULT scrollToSubstring([in] unsigned int startIndex,
[in] unsigned int endIndex);


// Get the current font being used -- this is better than using
// the ISimpleDOMNode CSS property methods, because it provides
// a single font name, rather than a comma delineated list of possibilities
HRESULT fontFamily([out] BSTR *fontFamily);


// 現在のフォントを使ってもらう//→使用されているフォント取得する// -- これは
// ISimpleDOMNode CSS プロパティメソッドを使うよりよい。というのは、
//コンマで括られた可能性一覧ではなく、単一のフォント名を提供するから
HRESULT fontFamily([out] BSTR *fontFamily);


以上
終わりが見えてきました・・・・・・(^_^)

Gecko Info for Windows Accessibility Vendors校正その12

2005-04-30 07:23:00 | InReview
昨日は、あたかも夏の一日のようにお暑うございました。まだ 4 月でございますよ。今朝は丁度よい程度に涼しくてよかったです。それでは朝の一仕事として校正作業を。・・・・・・・その前に昨日好評であった Mozilla VS Gecko 仮面 を再びどうぞ。


原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示

The get_computedStyle method is used to find out the cumulative, computed results for all style rules applied to a node. The return value numStyleProperties specifies the number of style properties for this node, and the last 2 parameters return 2 arrays corresponding to style property name and style property value. Another [in] parameter, useAlternativeMediaProperties, indicates whether you want style information for the default media type (usually screen), or a set of alternative media types specified in nsISimpleDOMDocument::set_alternateViewMediaType(mediaTypeString) . See the W3C's website for a list of official media type name . Unfortunately, at this time the argument useAlternateView is ignored.
HRESULT get_computedStyle(
/* [in] */ unsigned short maxStyleProperties,
/* [in] */ boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
/* [out] */ BSTR *styleProperties,
/* [out] */ BSTR *styleValues,
/* [out] */ unsigned short *numStyleProperties);


get_computedStyle メソッドはノードに適用されるすべてのスタイルルールのために累積//→蓄積され//、計算された結果を見出すのに使われます。戻り値 numStyleProperties はこのノード用のスタイルプロパティーの数を決め、//訳抜け→最後の 2 つのパラメーターは//スタイルプロパティー名とスタイルプロパティー値に対応する 2 つの配列を返します。もう一つのパラメータ(値)//→[in]パラメーター// useAlternativeMediaProperties は初期設定メディア方式(ふつうは画面)用に、もしくは nsISimpleDOMDocument::set_alternateViewMediaType(mediaTypeString) に決められた代替メディア方式用にスタイル情報を必要とするかどうか//→用のスタイル情報を必要とするか、もしくは nsISimpleDOMDocument::set_alternateViewMediaType(mediaTypeString) に定められた代替メディア方式を必要とするかどうか*1//を示します。公式なメディア方式名の一覧表は W3C のウェブサイトを見てください。残念ながら、今回は引数 useAlternateView は無視されます。
HRESULT get_computedStyle(
/* [in] */ unsigned short maxStyleProperties,
/* [in] */ boolean useAlternateView, // TRUE なら、nsIDOMDocument::set_alternateViewMediaTypes におけるセットとして//→に設定された*2//メディア用プロパティを返す。
/* [out] */ BSTR *styleProperties,
/* [out] */ BSTR *styleValues,
/* [out] */ unsigned short *numStyleProperties);


*1→indicate whether you want style information for the default media type (usually screen), or a set of alternative media types と whetehr A or B の構文である
*2→*1にあるように、初期設定メディア方式ではなく、代替方式を指示する

A variation on this method is get_computedStyleForProperties, which lets turns the styleProperties array into an [in] parameter, letting you specify only those style properties you're interested in. This helps minimize the cost of marshalling for those times in which you're interested in only a few style properties per node.
HRESULT get_computedStyleForProperties(
/* [in] */ unsigned short numStyleProperties,
/* [in] */ boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
/* [in] */ BSTR *styleProperties,
/* [out] */ BSTR *styleValues);


このメソッドの仲間のひとつは get_computedStyleForProperties であり、興味//*→関心//のある属性だけを決定させることで、このメソッドは styleProperties 配列をパラメーターへと変えさせます//*3→styleProperties 配列を[IN]パラメーターへと変えさせます//。この事は、ノードあたり興味のあったスタイルプロパティの//→関心のあるごくわずかなスタイルプロパティの//回数分のみで済むので、マーシャリングのコストを最小限に抑えます。
HRESULT get_computedStyleForProperties(
/* [in] */ unsigned short numStyleProperties,
/* [in] */ boolean useAlternateView, // TRUE なら、nsIDOMDocument::set_alternateViewMediaTypes におけるセットとしてメディア用プロパティを返す。
/* [in] */ BSTR *styleProperties,
/* [out] */ BSTR *styleValues);


*3→「このメソッドは」がなくても、styleProperties が「変えさせます」の主語になるようです

To scroll the document in order make a specific element visible in the window, use scrollTo(boolean placeTopLeft). If the parameter placeTopLeft is TRUE the document will be scrolled so that the element is placed in the top left corner of the window. If placeTopLeft is FALSE, the document will only be scrolled if the element is not already visible, or the document will be scrolled the minimum amount to make the element visible anywhere within the current window.
HRESULT scrollTo([in] boolean placeTopLeft);


ウィンドウで見える特定の要素を作るためにドキュメントをスクロールするために//*→ウィンドウで特定の要素が見えるよう順繰りにドキュメントをスクロールするには//、scrollTo(boolean placeTopLeft) を使って下さい。パラメーター placeTopLeft が TRUE ならエレメントがウィンドウの上部左角に来るようにドキュメントがスクロールされます。placeTopLeft が FALSE ならばもしエレメントがもう見えなければ、ドキュメントはスクロールされるだけか、また現在のウィンドウのどこかにエレメントを見せるために最低限の移動分だけスクロールされます。
HRESULT scrollTo([in] boolean placeTopLeft);


You can also get to any other node by traversing the ISimpleDOMNode structure. The DOM content tree is a superset of the MSAA tree. In other words, you can always QueryInterface from an IAccessible to an ISimpleDOMNode, but often not the other way around.
HRESULT get_parentNode (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_firstChild (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_lastChild (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_previousSibling(/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_nextSibling (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT childAt(/* [in] */ unsigned childIndex, /* [out] */ ISimpleDOMNode **newNodePtr);


ISimpleDOMNode 構造を探索することでまたどこか他のノードへ移動できます。DOM コンテンツツリーは MSAA ツリーの上位集合です。つまり、IAccessible から ISimpleDOMNode へ必ず QueryInterface できますが、その逆は簡単には出来ません。
HRESULT get_parentNode (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_firstChild (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_lastChild (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_previousSibling(/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT get_nextSibling (/* [in] */ ISimpleDOMNode *newNodePtr);
HRESULT childAt(/* [in] */ unsigned childIndex, /* [out] */ ISimpleDOMNode **newNodePtr);


Finally we provide a convenience method for getting the actual HTML within a DOM subtree. This only applies if the node is HTML.

HRESULT innerHTML([out, retval] BSTR *innerHTML);

Please look at the ISimpleDOMNode.idl file for parameter types and the definitions of the node type constants.


最終的に、DOM 従ツリー内に実際の HTML を取得するための便利なメソッドを提供します。このメソッドはノードが HTML であれば適用します。

HRESULT innerHTML([out, retval] BSTR *innerHTML);

ノードタイプの定数の定義とパラメータータイプとを調べるためにどうか ISimpleDOMNode.idl を見てください;//→パラメーターの型と、ノードタイプの定数の定義については ISimpleDOMNode.idl ファイルを見てください。//


本日はここまでにしましょうね。

Gecko Info for Windows Accessibility Vendors校正その11

2005-04-29 09:26:18 | InReview
それでは、本日も Gecko 仮面!、・・・・ではなくて、 Mozilla 対 Gecko 仮面 にようこそおいでやす。

Mozilla vs Gecko 仮面


原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示



ISimpleDOMNode

To get to the ISimpleDOMNode interface for an object, you start with an IAccessible*, and then you QueryService to the ISimpleDOMNode*:
IServiceProvider *pServProv = NULL;
pAccessible->QueryInterface(IID_IServiceProvider, (void**)&pServProv);
ISimpleDOMNode *pSimpleDOMNode;
if (pServProv) {
const GUID refguid = {0x0c539790, 0x12e4, 0x11cf, 0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8};
HRESULT result = pServProv->QueryService(refguid, IID_ISimpleDOMNode, (void**)&pSimpleDOMNode);
if (SUCCEEDED(hresult) && pSimpleDOMNode != NULL) {
/* This is a Mozilla node! Use special ISimpleDOMNode methods described in ISimpleDOMNode.idl. */
}
}


ISimpleDOMNode

オブジェクト用に ISimpleDOMNode を得るために//→オブジェクトに ISimpleDOMNode インターフェイスを得るには//、IAccessible* から開始して、ISimpleDOMNode* へ QueryService をします:
IServiceProvider *pServProv = NULL;
pAccessible->QueryInterface(IID_IServiceProvider, (void**)&pServProv);
ISimpleDOMNode *pSimpleDOMNode;
if (pServProv) {
const GUID refguid = {0x0c539790, 0x12e4, 0x11cf, 0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8};
HRESULT result = pServProv->QueryService(refguid, IID_ISimpleDOMNode, (void**)&pSimpleDOMNode);
if (SUCCEEDED(hresult) && pSimpleDOMNode != NULL) {
/* This is a Mozilla node! Use special ISimpleDOMNode methods described in ISimpleDOMNode.idl.//訳抜け→これは Mozilla ノードです。ISimpleDOMNode.idl. に記述されている特別な ISimpleDOMNode メソッドを使用してください// */
}
}


The get_nodeInfo method is used to get basic information about a node such as the tag name and namespace ID, node type (see ISimpleDOMNode.idl for definitions), node value (text held in the node), a unique ID for use in tracking where events occur, and the number of children. The namespace ID is meaningless until you get the namespace URI for it, through the ISimpleDOMDocument interface (see below).
HRESULT get_nodeInfo(
/* [out] */ BSTR *nodeName, // For elements, this is the tag name
/* [out] */ short *nameSpaceID,
/* [out] */ BSTR *nodeValue,
/* [out] */ unsigned int *numChildren,
/* [out] */ unsigned int *uniqueID, // see description of unique ID's in above section on events
/* [out] */ unsigned short *nodeType);


タグの名前、名前スペース ID、ノードタイプ(定義は ISimpleDOMNode.idl を参照)、ノード値(ノードに保持されるテキスト)、イベントの起こる場所や子の数を追跡するのに使われる一意の ID などのノードについて基本的情報を取得するために、get_nodeInfo が使用されます//→get_nodeInfo メソッドを使って、基本的情報を取得します。使用されるタグの名前、名前スペース ID、ノードタイプ(定義は ISimpleDOMNode.idl を参照)、ノード値(ノードに保持されるテキスト)、イベントの起こる場所を追跡するのに使う一意の ID 、子の数などの情報です//。ISimpleDOMDocument インターフェイス(下記を参照)通じて、ID 用に名前スペース URI を取得しないうちは、名前スペース ID は意味を持ちません//→によって、ID 用に名前スペース URI を取得して初めて、名前スペース ID は意味を持ちます//
HRESULT get_nodeInfo(
/* [out] */ BSTR *nodeName, // これはエレメント用にの//→の//タグの名前である。
/* [out] */ short *nameSpaceID,
/* [out] */ BSTR *nodeValue,
/* [out] */ unsigned int *numChildren,
/* [out] */ unsigned int *uniqueID, // イベントについての上記項目にある一意の ID の説明を参照のこと。
/* [out] */ unsigned short *nodeType);


The get_attributes method returns the set of attribute, value pairs for a given node, as well as the namespace ID for each attribute. The return value numAttribs specifies the number of attributes for this node, and the last 3 parameters return 3 arrays corresponding to attribute name, namespace ID, and attribute value.
HRESULT get_attributes(
/* [in] */ unsigned short maxAttribs,
/* [out] */ BSTR *attribNames,
/* [out] */ short *nameSpaceID,
/* [out] */ BSTR *attribValues,
/* [out] */ unsigned short *numAttribs);


get_attributes メソッドは各属性用の名前スペース ID に加えて、任意のノード用に属性と値のペアの組合せを返します。返された値の numAttribs はこのノード用に属性の数を決め、最後の 3 個のパラメーターは、属性、名前スペース ID 、属性値に対応する三つの配列を返します。
HRESULT get_attributes(
/* [in] */ unsigned short maxAttribs,
/* [out] */ BSTR *attribNames,
/* [out] */ short *nameSpaceID,
/* [out] */ BSTR *attribValues,
/* [out] */ unsigned short *numAttribs);


A variation on this method is get_attributesForNames, which lets turns the attribNames array into an [in] parameter, letting you specify only those attributes you're interested in. This helps minimize the cost of marshalling for those times in which you're interested in only a few attributes per node.
HRESULT get_attributesForNames(
/* [in] */ unsigned short numAttribs,
/* [in] */ BSTR __RPC_FAR *attribNames,
/* [in] */ short __RPC_FAR *nameSpaceID,
/* [out] */ BSTR __RPC_FAR *attribValues);


このメソッドの仲間のひとつは get_attributesForNames であり、興味のある属性だけを決定させることで、このメソッドは attribNames 配列をパラメーターへと変えさせます//→関心のある属性だけを決定させることで、このメソッドは attribNames の配列を [in] パラメーターへと変えさせます//。この事は、ノードあたり興味のあった属性の//→関心のあるごくわずかな属性の//回数分のみで済むので、マーシャリングのコストを最小限に抑えます。
HRESULT get_attributesForNames(
/* [in] */ unsigned short numAttribs,
/* [in] */ BSTR __RPC_FAR *attribNames,
/* [in] */ short __RPC_FAR *nameSpaceID,
/* [out] */ BSTR __RPC_FAR *attribValues);


長い節なので、続きはまた明日にします。フーツ・・・・・

Gecko Info for Windows Accessibility Vendors校正その10

2005-04-28 23:52:56 | InReview
あすから、GWですね。私は、GWにはどこにも行かず、のんびりと庭弄りにでも精を出すのがいいですね。外出は、GW 後と昔から決めています。どこに行っても、人人ですからね。・・・・・



原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

Additional DOM Support

There are a number of things available in the parsed HTML or XML of a document that MSAA will not tell you. For example, if you want to make available an outline view of the document to your users, how will you find out which paragraphs are headings? According to MSAA, they are all just text.

To solve this problem, we provide access to the content DOM for Gecko documents, through two interfaces:

* ISimpleDOMNode gives you the actual parsed structure of a document, by node.
* ISimpleDOMText supports scrolling and rectangular bounds information on a character by character basis
* ISimpleDOMDocument contains basic document information, such title, URL, doctype and mime type.


追加 DOM サポート//→ DOM サポートの追加//

MSAA によって明らかにされていない、ドキュメントの HTML や XML の解析でたくさんの役立つ事があります。例えば、ドキュメントの概要一覧//→ アウトライン表示*1//をユーザーに提供したいと思うならば、見出しになっている段落をどのように見分けるでしょうか。MSAA によればそれらの段落はすべてテキストだけになっています。

この問題を解決するために、2つのインターフェイスを通じて、Gecko ドキュメント用のコンテンツ DOM へのアクセスを提供します:

* ISimpleDOMNode はノードごとに、実際に解析されたドキュメントの構造を提供します。
* ISimpleDOMText はスクロールと文字ベースの文字についての四角い境界情報//→文字毎のベースに基づいたスクロールや四角い境界の情報//をサポートします。
* ISimpleDOMDocument はタイトル、URL、ドキュメントタイプ、MIME タイプなどの基本的ドキュメント情報を保持します。


*1→アウトライン表示 an outline view: 別文書からの訳語の統一による;アクセシビリティにおける UI の将来計画について

Compiling the .idl Files

To use these interfaces, you'll need to get the ISimpleDOMNode.idl, ISimpleDOMText.idl and ISimpleDOMDocument.idl file. You must make a header files for them, by running these commands:
MIDL ISimpleDOMNode.idl
MIDL ISimpleDOMText.idl
MIDL ISimpleDOMDocument.idl

That will generate ISimpleDOMNode.h and ISimpleDOMDocument.h, which define the interfaces. It will also create ISimpleDOMNode_i.c and ISimpleDOMDocument_i.c, which contain the necessary IID constants.


.idl ファイルをコンパイルする

これらのインターフェイスを使用するためには、 ISimpleDOMNode.idl、 ISimpleDOMText.idl と ISimpleDOMDocument.idl ファイルを取得する必要があります。これらのコマンドを実行してインターフェイス用のヘッダーファイルを作成しなければなりません//→以下のコマンドを実行してこれらのファイル用にヘッダーファイルを作成しなければなりません//:(草稿訳注:for them = these interfaces でいいか?)  
MIDL ISimpleDOMNode.idl
MIDL ISimpleDOMText.idl
MIDL ISimpleDOMDocument.idl

//→そうすると、//インターフェイスを定義する ISimpleDOMNode.h と ISimpleDOMDocument.h が作られます。必要な IID 定数を保持する ISimpleDOMNode_i.c と ISimpleDOMDocument_i.c もまた作られます。


以上



Gecko Info for Windows Accessibility Vendors 校正その9

2005-04-27 21:55:22 | InReview
もうあといくつ寝ると楽しいGWだ。でも今日も油断せずにがんばろう!



原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

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:


Internet Explorer との意図的な相違

IAccessible のメソッドをサポートするほとんどの部分では、Internet Explorer が IAccessible を使用することへの再現を試みています。ここに挙げられていない差異//→相違//に気付かれたならご連絡下さい:


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.


ページのロード//→読み込み//の追跡方法

現在の MSAA ツリーがもはや関係しなくなると//→との関係が切れると//、ルートペインオブジェクトに EVENT_OBJECT_STATE_CHANGE が発生します。STATE_SYSTEM_BUSY フラグが今や//→すると STATE_SYSTEM_BUSY フラグが//ルートペインオブジェクトのために設定されます。

新しいページが IAccessible ツリーによって表示され移動される準備が一度整うと、古いコンテンツのウィンドウは破壊され、新しいウィンドウが作られます。次に、 STATE_SYSTEM_BUSY フラグがクリアされた状態で、EVENT_OBJECT_STATE_CHANGE が新しいルートペインに投じられます


Enhancing Performance on the Client End via IEnumVARIANT

Mozilla trunk builds starting August 23 support IEnumVARIANT on non-leaf IAccessible's.

This means, whenever you get an IAccessible, you can QI it to IEnumVARIANT. If that succeeds, then it has children. You can then get the number of children via IAccessible::get_accNumChildren(), then allocate an array of VARIANT's to hold the children, and call IEnumVARIAINT::Next() to get all the children in one call. The VARIANT's we provide will always be VT_IDISPATCH.

Using IEnumVARIANT in this way is much faster than getting the children via get_accChild() or accNavigate(). See MSDN for more information.


IEnumVARIANT によってクライアントエンドの性能を向上する

8月23日に開始する Mozilla トランクビルドはリーフのない IAccessible の IEnumVARIANT をサポートします。

この事で、IAccessible が取得される時はいつも、IEnumVARIANT へ QI できます。それが上手く行けば、IAccessible は子を備えます。その時、IAccessible::get_accNumChildren() によって子の数を取得でき、それから子を保持する VARIANT の配列を割付けし、一度の呼出しですべの子を取得するために kbd>IEnumVARIAINT::Next() を呼び出すことができます。提供される VARIANT は必ず VT_IDISPATCH です。

このように IEnumVARIANT を使用すると get_accChild() や accNavigate() で子を得るよりははるかに速く得ることがでいます。もっと情報が必要であれば MSDN をご参照下さい。


そんなに難しい節ではないですね。



Gecko Info for Windows Accessibility Vendors 校正その8

2005-04-26 21:11:51 | InReview
昨日の続きです。



原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

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).


サポートしない MSAA 機能

これらの機能は将来開発の予定です:

* もっと多くの MSAA イベント//→さらに追加されるべき MSAA イベント//: EVENT_OBJECT_NAMECHANGE、EVENT_OBJECT_VALUECHANGE、EVENT_OBJECT_SELECTION、 EVENT_OBJECT_SELECTIONADD、EVENT_OBJECT_SELECTIONREMOVE、 EVENT_OBJECT_SELECTIONWITHIN
* XUL 用アクセシビリティ(eXtensible ユーザーインターフェイス言語)//→XUL (eXtensible User-interface Language: eXtensible ユーザーインターフェイス言語) のためのアクセシビリティ//とそれを使用するブラウザ (Netscape, Mozilla)。

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

だれにもまだ以下の機能は要請されていません//→以下の機能はだれにもまだ要請されていません//。(必要なものがあれば、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.


* 現在サポートしていない IAccessible //→の//メソッド:
get_accHelp get_accHelpTopic put_accName put_accValue
* IAccessible 用に Visual Basic (IDispatch) バインディングはサポートしていません//→ IAccessible に Visual Basic (IDispatch) のバインディングを現在サポートしていません//
* 方向ナビゲーション//→ 方向指定操作*1////→ 現在//サポートしていません。
* 下記に説明していますように、 EVENT_SYSTEM_SCROLLINGEND と ISimpleDOMNode::ScrollTo() はサポートしていますが、IAccessible オブジェクトとして現在スクロールバーはサポートしていません。
* MSAA アラートは//→ 現在//サポートしていません。
* STATE_SYSTEM_MOVEABLE、STATE_SYSTEM_SIZEABLE や STATE_SYSTEM_MARQUEED は現在サポートしていません。
* ROLE_SYSTEM_ROW、ROLE_SYSTEM_ROWHEADER や ROLE_SYSTEM_COLUMNHEADER は現在サポートしていません。//→これらは// Internet Explorer もサポートしていませんが、//→私たちは IE との//互換性を確保しようとしています。私たちが、DOM サポートを追加する事によってこの//→これらの*2//情報は取得可能です。


*1→ 方向指定操作=directional navigation:以下のリンクの訳語に従った; アクセシビリティにおける UI の将来計画について
*2→これらの情報: ROLE_SYSTEM_ROW、ROLE_SYSTEM_ROWHEADER や ROLE_SYSTEM_COLUMNHEADER

以上






Gecko Info for Windows Accessibility Vendors 校正その7

2005-04-21 20:46:15 | InReview
また花の話ですが、大半のチューリップの花弁が落ちた今、我が家の花壇で元気なのはノースポルという、白い花弁の素朴な花です。これはとても繁殖力が強く、瞬く間に根を広げて、次から次へと開花を継続します。多分野草から発達してきた花で、昔の生命力が今も分子構造に保持されているのでしょう。私は園芸愛好家ではありませんが、花壇になんらかの花を植えておきたいと考えるのは人情で、それほど時間もとれない事から、手間のかからない花を育てるようにしています。その代表格がノースポルとマリーゴールドです。マリーコールドは、予定ではノースポルの後に植えるつもりで、現在、種から苗を育成中です。立派な苗が沢山できて、花壇全部を黄色一色に染める一風情を思い浮かべると、今からわくわくとします。

と言ったところで、今日また例によって、作業を継続します。



原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

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.


オフスクリーンモデル内において、イベントが発生した場所を追跡する方法。

スクリーンリーダは自分自身のデーター構造//→内に//データーを保持する事があるので、イベントの可能性のある各標的に//→イベントのターゲットとなる事がある各対象に対して//一意の識別子を備える事が重要になります。こうしてイベントが発生する時、スクリーンリーダは自分自身のデーターモデル内のオブジェクトを MSAA のイベントが発生するオブジェクトと関連付ける事が可能になります。


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.


複数の方法でこの件はサポートされます:

1. ISimpleDOMNode に QueryService を使えます(下記を参照)、そして get_nodeInfo() method によって(ドキュメント内に)DOM ノード用の一意の//→DOM ノード用の(ドキュメント内で)一意の*1// 32 ビットの ID を取得できます。
2. イベントが発生する時、ウィンドウハンドルと子 ID が渡されます。渡される子 ID はイベントがルートで発生するなら CHILDID_SELF であるか、一意の ID であるかどちらかです//→CHILDID_SELF であり、そうでなければ、一意の ID であるかどちらかです*2//希望するならこの一意の ID を使って、メソッド #1 (ISimpleDOMNode::get_nodeInfo) によって得られた MSAA ツリーをロードする時に保持した一意の ID へと関連付け直す事が出来ます//→もしそうしたいならば、この一意の ID を使って、MSAA ツリーのロード時に、メソッド #1 (ISimpleDOMNode::get_nodeInfo) によって得られ、保持する一意の ID へと関連付け直す事が出来ます。//
3. どの直系の子を使いたいかを決めるために、get_accChild とその他の IAccessible メソッド//→ IAccessible のその他のメソッド//によって、普通は VARIANT 構造内の 1Val フィールドを使うことになります(草稿訳注:この場合 one と they は同じ代名詞のように思える)。現在の IAccessible を直接参照するなら可能な値は lVal=CHILDID_SELF (0) ですが、直下の子たちの一つを参照するなら lVal >=1 です。さらに、イベントが発生する時得る//→ 得られた//一意の子 ID を//→ すぐ//使うことが出来ます。そして、それをルートペインアクセシビリティの子 ID として扱って、ツリーをどれ程下ろうともイベントが発生する子孫のアクセシビリティをすべて得ることも可能です//→ イベントが発生する子孫のアクセシビリティは、ツリーをどれ程下ろうともすべて得ることができます//。(草稿訳注:decendant は descendant の typo?)


*1→unique なのは document 内と限定する。
*2→ルートである場合は CHILDID_SELF、それ以外は、任意の一意の ID ということか。

-To be continued till tomorrow-





Gecko Info for Windows Accessibility Vendors 校正その5

2005-04-20 20:49:30 | InReview
昨日の続きです。



原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

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.


Gecko ウィンドウを見つける方法

すべての Mozilla のウィンドウは "MozillaWindowClass" と呼ばれるウィンドウクラスを備えています。その上//→それに加えて、//ウィンドウがコンテンツウィンドウであるか、XUL UI ウィンドウであるかを見分けるのは可能です。これは、コントロール ID のロービットをチェックすることで分かります。Win32 API に controlId = ::GetWindowLong(hWnd, GWL_ID) & 1 を呼出しさせる時、ロービットは//→ロービットが//返されます。もし結果が 0 であると、UI ウィンドウであり、もし 1 だとコンテンツウィンドウです。この時点では、埋め込まれたクライアントは XUL を使用しません。そこでクライアントのために 先頭の Mozilla ウィンドウクラスウィンドウを見つけさえすればいい事になります。幸運なことに、すべての異なるクライアントのために別個のロジックは必要となりません。 Mozilla ウィンドウクラスウィンドウにフォーカスがある場合はいつも//→必ず//、コントロール ID 0 を備えていれば最初の子まで移動を続けて下さい。もし、コントロール ID 1 を備えていれば、同様に//→同じように//コントロール ID 1 を備えている最初の祖先を見つけて下さい。MSAA を Mozilla アプリケーションのためにコンテンツツリーを取得するために使用する時は、ここから始めます//→MSAA を使用している時は、Mozilla アプリケーションへここでコンテンツツリーの取得を開始すべきです*1//


→*1:最初の訳だと何を開始するか不明;start to get the content ..... とする。

Gecko Info for Windows Accessibility Vendors 校正その5

2005-04-19 06:54:05 | InReview
昨日の続きです。



原題: Gecko Info for Windows Accessibility Vendors

訳題: Windows アクセシビリティベンダー向け Gecko 情報

原文:  青色表示
訳文:  黒色表示
校正文: 赤色表示
校正対象範囲: 黒色太字表示
*n(=int)校正コメント:赤色表示

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.


Gecko ウィンドウを見つける方法

すべての Mozilla のウィンドウは "MozillaWindowClass" と呼ばれるウィンドウクラスを備えています。その上//→それに加えて、//ウィンドウがコンテンツウィンドウであるか、XUL UI ウィンドウであるかを見分けるのは可能です。これは、コントロール ID のロービットをチェックすることで分かります。Win32 API に controlId = ::GetWindowLong(hWnd, GWL_ID) & 1 を呼出しさせる時、ロービットは//→ロービットが//返されます。もし結果が 0 であると、UI ウィンドウであり、もし 1 だとコンテンツウィンドウです。この時点では、埋め込まれたクライアントは XUL を使用しません。そこでクライアントのために先頭の Mozilla ウィンドウクラス//→MozillaWindowClass//ウィンドウを見つけさえすればいい事になります。幸運なことに、すべての異なるクライアントのために別個のロジックは必要となりません。 Mozilla ウィンドウクラス//→MozillaWindowClass//ウィンドウにフォーカスがある場合はいつも//→必ず//、コントロール ID 0 を備えていれば最初の子まで移動を続けて下さい。もし、コントロール ID 1 を備えていれば、同様に//→同じように//コントロール ID 1 を備えている最初の祖先を見つけて下さい。MSAA を Mozilla アプリケーションのためにコンテンツツリーを取得するために使用する時は、ここから始めます//→MSAA を使用している時は、Mozilla アプリケーションへここでコンテンツツリーの取得を開始すべきです*1//


→*1:最初の訳だと何を開始するか不明;start to get the content when using MSAA..... とする。

今も花粉症は健在、Hay fever 負けないぞ、・・・・・・・・・・・・アチュ!