Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC


ウィジェットのデザイン

基本的なウィジェットの組み立て方法を理解している方は、自分のウィジェットに追加したい、より高度な機能について検討し始めることができます。先に進む前に、ウィジェットをユーザにどのように見せるかを考える必要があります。

一般的にいえば、ウィジェットのインターフェイスデザインには、CocoaやCarbonアプリケーションのように、Appleのヒューマンインターフェイスガイドラインの制約がありません。このような自由はありますが、従うべき基本的なソフトウェアデザインの原則はあります。本章では、ウィジェットの作成時に考慮すべきいくつかのガイドラインを示します。

注: 効果的なユーザインターフェイスのデザインの詳細については、『Apple Human Interface Guidelines』の「Human Interface Design Principles」をお読みください。

In this section:

メインインターフェイスのデザインガイドライン
ウィジェットの裏面のデザインガイドライン
ウィジェットバーアイコン
その他のヒント


メインインターフェイスのデザインガイドライン

ウィジェットの表の面が、ウィジェットの主要な顔となります(ウィジェットは、その裏面に環境設定が表示されます)。ウィジェットの表の面は、ユーザが認識し、最も多くやり取りをする面です。

ウィジェットの表面をデザインするときには、次のガイドラインに従う必要があります:


Figure 1  機能を雑多に寄せ集めたウィジェットは、何でも揃っているけれどもすべて中途半端

A cluttered widget is a jack of all trades, master of none


Figure 2  それぞれが単独のタスクを専門に実行する、3つのシンプルなウィジェット

Three simple widgets, each focused on a single task


Figure 3  大きなウィジェットは貴重な画面スペースを独占する

A large widget monopolizes valuable screen space


Figure 4  小さなウィジェットは、情報を提供し、他のウィジェット用にスペースも残す

A small widget provides information and leaves room for other widgets


Figure 5  色によってウィジェットを目立たせることができる。「カレンダー」を見分けられますか?

Color makes your widget stand out—can you spot the Calendar?


Figure 6  不快感を与えるウィジェット―色は慎重に

An offensive widget–be careful with color!


Figure 7  Aquaコントロールはウィジェットの表面には使用しない

Aqua controls don’t belong on the face of your widget


Figure 8  カスタムコントロールを使用したウィジェット

A widget with custom controls


Figure 9  ウィジェットの貴重なスペースを宣伝で無駄にしない

Don’t waste valuable space in your widget with advertising


Figure 10  ウィジェットに不可欠ではない情報は裏面に配置する

Put information not vital to the widget on the back

ウィジェットの裏面のデザインガイドライン

注: ウィジェットの裏面でのコントロールと要素の配置に関する指標については、『Apple Human Interface Guidelines』の「Layout Examples」を参照してください。

ウィジェットが設定を必要とする場合は、ウィジェットの裏面に環境設定を表示することができます。以下に、ウィジェットの裏面のデザインについてのヒントをいくつか示します:


Figure 11  ウィジェットの裏面を示す標準でないコントロール

A non-standard control for showing your widget’s back


Figure 12  標準の情報ボタン―ユーザにはこのボタンの意味が分かる

The standard info button—users know what this means


Figure 13  情報ボタンの適切な配置

Proper info button placement


Figure 14  ウィジェットの裏面のAquaコントロール

Aqua controls on a widget’s back


Figure 15  背景を変えて表と裏を区別する

Different backgrounds distinguish between front and back


Figure 16  ブランド表示は、ウィジェットの裏面の配置が適している

Branding is appropriate on a widget’s back

ウィジェットバーアイコン

ウィジェットは、ウィジェットバーにはアイコンとして表示されます。以下の寸法は、ウィジェットバーアイコンの標準的なサイズとシャドウを定義したものです:

その他のヒント

ウィジェットのデザインと実装を行う際に、次のヒントを参考にしてください。

ウィジェットのプログラミング

ドロップシャドウ

ウィジェットの背景はドロップシャドウを特徴にする傾向があります。以下の寸法は、ウィジェットの標準的なドロップシャドウを定義したものです:

調和したメニュー

先に述べたとおり、標準のAquaコントロールを使うのではなく、自分のウィジェットのデザイン全体にうまく溶け込む、固有のカスタムコントロールをデザインする必要があります。この文脈において、メニューを表示するのは一般的なことであり、やや特殊ですが難しい作業ではない実装を扱っています。

まず、Voicesサンプルコードにあるような、ポップアップメニューに似たカスタムコントロールをデザインする必要があります。


Figure 17  Voiceのポップアップメニューは、そのデザインにうまく溶け込んでいる

Voice’s popup menu fits in with its design

Aquaのポップアップメニューとここで使われているカスタムコントロールに共通の特徴に注目してください。すなわち、矢印アイコン、左揃えのテキスト、コントロールの境界を示す明確なアウトラインです。また、色の変化とウィジェットの背景との対比にも注目してください。これらが、自分自身のカスタムメニューコントロールを作成するときに考慮する必要のある項目です。

次の3つの要素(1つはここには示されていません)がこのメニューを機能させています。すなわち、ポップアップメニューを表す画像、現在のメニューオプションを示す1行のテキスト、そしてここには示されていませんが、オプションの選択に使われる実際のメニューを提供する、隠されている<select>ポップアップメニュー要素です。

カスタムメニューコントロールの実装

ポップアップメニューをデザインしたら、次の3つの要素をHTMLで用意する必要があります。すなわち、デザインしたポップアップ画像、現在選択されているメニューオプションを示すテキスト要素、および実際のメニューを保持する<select>要素です。

<img class="popupMenuImage" src="Images/Menu.png" />
<div id="popupMenuText">Available Voices</div>
<select id='popupMenu' onchange='popupChanged(this);'>
        <option value="One">One</option>
        <option value="Two">Two</option>
</select>

要素が整ったので、次にCSSを使ってこれらを配置します。最初に、メニュー画像とその上のテキストが配置されます。固定ピンは<select>要素であり、クリックされたときにメニューを提示します。これはテキストと画像の上に配置されますが、不透明度はゼロに設定されます。

.popupMenuImage {
    position:absolute;
    left: 28px;
    top: 169px;
    z-index: 18;
}
 
#popupMenuText {
    font: 13px "Helvetica Neue";
    font-weight: Bold;
    color: white;
    text-shadow: black 0px 1px 0px;
    position:absolute;
    left: 44px;
    top: 176px;
    z-index: 19;
}
 
#popupMenu {
    position:absolute;
    top: 169px;
    left: 28px;
    width: 163px;
    height: 30px;
    opacity: 0.0;
    z-index: 20;
}

このようにすることで、カスタム画像はクリックされているコントロールのように見えますが、実際は、<select>がクリックを受け取り、そのメニューを表示させています。ポップアップメニュー自体は透明ですが、示されるメニューは不透明であるため問題ありません。

最後のコードでは、ユーザがメニュー内のオプションを選んだときに、カスタムポップアップメニューのテキストを変更しています。HTMLで、ポップアップの選択内容が変わると呼び出される関数が設定されています。この関数は、新しい選択内容を反映するようにメニューテキストを変更します。

function popupChanged(elem)
{
    var chosenOption = elem.options[elem.selectedIndex].value;
    document.getElementById("popupMenuText").innerText = chosenOption;
 
    // メニューの選択内容の変化を処理するほかのコード
}

検索フィールド

多くのウィジェットには、そのウィジェットが表示しているコンテンツをユーザが検索できる、検索フィールドの機能があります。Web Kitは、ウィジェット用に標準的な検索フィールドの外見と動作を提供する、searchという<input>型の新しい型を提供しています。

<input type="search">

<input>要素のsearch型に加えて、この型が使われるときには次の属性を使用できます。

placeholder

検索フィールドのプレースホルダテキストを指定できます。このテキストは検索フィールドにキーフォーカスがないときにフィールド内に表示され、フィールドが想定している入力の種類を示すラベル表示となる必要があります。

results

保存される結果数を指定できます。保存された検索語は、検索フィールドの虫眼鏡をクリックしたときに表示されるメニュー上に現れます。

onsearch

EnterキーまたはReturnキーを押したときに呼び出されるハンドラを指定できます。

incremental

この属性を含めると、検索フィールドに1文字入力されるたびに、onsearchハンドラを呼び出すという意味になります。

onkeypress

任意のキーを押したときに呼び出されるハンドラを指定できます。

ヘルプタグ

多くのアプリケーションは、ユーザがある要素の上にカーソルを置いたときに表示されるヘルプタグを持っています。ウィジェットは、詳細説明が役立つと考えられるコントロールやそれ以外の要素へのヘルプタグを表示するべきです。要素のヘルプタグを指定するには、title属性を使います。

<div id="helloText" title="This is a helpful explanation of this element">Hello, World!</div>

ユニバーサルアクセス

Mac OS X v.10.4、すなわち"Tiger"には、VoiceOverという新しい機能が追加されています。VoiceOverはシステム全体を対象とする画面読み上げ機能であり、視覚障害を持つユーザのために、現在のウインドウを音声で説明します。

VoiceOverで自分のウィジェットが正しく説明されるようにするには、作成時に次の2つのことを考慮する必要があります。

<img src="sun.png" alt="Sunny">




Last updated: 2006-08-07




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice