ツールチップ
ツールチップは、マウスの下にあるコントロールについて説明するヘルプをユーザに提供するために使用されます。例えば、ツールバーボタンの上にマウスを動かして少し待つと、そのボタンの機能について説明するテキストが格納された小さなポップアップが表示されます。マウスを再び動かすと、ツールチップは消えます。ツールチップは、メインインターフェイスを複雑なものにすることなくユーザインターフェイスについての追加説明を提供する手段として便利です。
ツールチップはマウスを使わないと表示させることができないので、他の方法で見ることのできない重要な情報は決して含まないように注意してください。
tooltip 属性
ほとんどの場合、ツールチップは 1 つのラベルのみを表示します。これは全ての XUL 要素に適用できる tooltiptext
属性を使って可能になります。この属性の値にはツールチップに表示するテキストを設定します。
<toolbarbutton label="Back" tooltiptext="Go back one page"/>
この例では、ツールバー上の「戻る」ボタンにツールチップに表示するためのテキストを追加しています。これはツールバーがラベルを表示しないように設定されている場合にも便利でしょう。
もしある要素が tooltiptext
属性を持っておらず、その親要素が持っている場合、親のツールチップが適用されます。例えば次の例では、ツールバーにツールチップが設定されています。
<toolbar tooltiptext="File Buttons"> <toolbarbutton label="Open" tooltiptext="Open a File"/> <toolbarbutton label="Close"/> </toolbar>
「Open」ボタンには tooltiptext
属性があるので、独自のツールチップを持っています。しかし、「Close」ボタンにはツールチップが付加されていませんが、親のツールバーには付加されています。このため、「Close」ボタンのうえにマウスが移動すると、ツールバーの空の部分と同じように、ツールバーのツールチップが適用されます。
この例の「File Buttons」というツールチップテキストはあまり良いツールチップではありません。これはユーザに対して何も付加的な情報を伝えていないので、この例のような使い方はするべきではありません。
tooltip 要素
ツールチップは tooltip 要素を使って表示させる事もできます。これはポップアップの一種ですが、違った見た目を持っています。tooltiptext
属性を使った要素は、内部のテキストに合った大きさの小さな黄色いボックスのような見た目を一般的に持つ、デフォルトの tooltip 要素の中にツールチップを表示します。このデフォルトのツールチップは自動的に作成されるので、普通は tooltip
要素を使う必要はありません。
しかし、普通とは違った見た目を持っていたり、1 つのテキストラベルに加えて他の要素をサポートするツールチップを使う事も可能です。
このツールチップは tooltip 要素を使って作成できます。tooltip 要素は、その内容をツールチップの中に表示します。
<tooltip id="iconic"> <image src="help.png"/> <label value="Save a file to a remote site"/> </tooltip> <button label="Save" tooltip="iconic"/>
この例では、「iconic」という id のツールチップに画像とラベルが格納されています。tooltip
属性によってボタンがそのツールチップに関連付けられています。tooltip 属性の値は tooltip 要素の id に設定しなければならず、この場合は「iconic
」に設定しています。これによりこのツールチップが button 要素のツールチップとして表示されます。
このように、要素にツールチップを設定するには、ラベルを表示するための tooltiptext
属性を使う方法と、より複雑な内容を表示するための tooltip 属性を使うという 2 つの方法があります。ある要素が両方の属性を使っていた場合には、 tooltiptext 属性の方が使用され、デフォルトのツールチップが表示されます。
もし tooltip 要素の中に何も要素が置かれなければ、tooltip 要素は標準のツールチップと同様にふるまい、表示されます。
特殊なツールチップである tooltip 要素を使う場合には、その中のラベルはツールチップが適用される要素に基づいて変更されません。そのため、いくつかの要素に同じツールチップを使いたい場合には、ツールチップの内容をそれに応じて設定しなければなりません。popupshowing イベントリスナを使えば、必要に応じてツールチップを調節する事ができます。popupshowing イベントはツールチップが現れる直前に tooltip 要素で発生します。例えば、
<tooltip id="iconic" onpopupshowing="this.lastChild.value = document.tooltipNode.label;"/>
document の tooltipNode
プロパティは現在マウスが上に乗っている要素を保持します。この例では、マウスが上に乗っている要素の label を取得するためにこのプロパティが調べられています。そしてその label が tooltip の最後の子要素の value として設定されています。前の例では、tooltip の最後の子要素は label でした。こうすると、tooltip 内の label 要素の value が、マウスが上に移動した要素に基づいて変更されるようになります。
ツリーにおけるツールチップ
ツリーは全体が単一の要素によって表示されるので、tooltip
属性と tooltiptext
属性はツリーの個々の行 (row)やセル (cell)には適用されません。しかし、ツリーは値が切り詰められたセルに対して自動的にツールチップを表示します。例えば、セルが長いラベルを持っており、そのラベルの長さよりも列 (column)が短ければ、そのセルの上にマウスが移動した時に、ユーザが全体の値を見られるようにツールチップが表示されます。