ASP.NET コントロールとユーザー補助

更新 : 2007 年 11 月

ASP.NET を使用すると、ユーザー補助ガイドラインに準拠した Web ページを作成できます。詳細については、「ASP.NET におけるユーザー補助のサポート」を参照してください。

ASP.NET でユーザー補助 Web アプリケーションを作成するには、ASP.NET サーバー コントロールがユーザー補助をサポートする方法について理解する必要があります。多くの場合、ユーザー補助ガイドラインに準拠するマークアップを作成するコントロールを設定する必要があります。ただし一部の ASP.NET サーバー コントロールは、Web Content Accessibility Guidelines 1.0 (WCAG) の優先度 1 ガイドラインに完全に準拠する必要のあるアプリケーションで使用できません。このような場合、そうしたコントロールの使用を避ける必要があります。

ユーザー補助に関する ASP.NET コントロールのガイドライン

ASP.NET サーバー コントロールの一覧とそのコントロールのユーザー補助サポートについての説明を次の表に示します。コントロールがこの表に示されていない場合、その出力は構成要件のないユーザー補助ガイドラインに準拠します。

コントロール

ユーザー補助のサポート

AppearanceEditorPart

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

すべての動詞が同じリンク テキストを生成します。

リンクの代替テキストが表示されますが、カスタマイズできません。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

BehaviorEditorPart

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

すべての動詞が同じリンク テキストを生成します。

リンクの代替テキストが表示されますが、カスタマイズできません。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

BulletedList

このコントロールの DisplayMode プロパティが LinkButton に設定されている場合、コントロールでクライアント スクリプトが機能する必要があります。クライアント スクリプトを不要にするには、テンプレートを作成し、これらの機能を持つ Button コントロールを追加します。

コントロールの BulletStyle プロパティを CustomImage に設定する場合は、グラフィックを見ることのできないユーザーが利用できない意味や効果をグラフィックで伝えないようにします。

リンク用の Target プロパティを設定すると、新しいウィンドウが開きます。この方法は、ユーザー補助ガイドラインでは推奨していません。

Button

OnClientClick プロパティを設定すると、ボタンでクライアント スクリプトが使用されます。

Calendar

このコントロールは列に header を表示しませんが、見出し用の scope を持つ th 要素を表示します。

コントロールのレイアウトは HTML テーブルを使用して表示されます。これは一部のガイドランでは推奨していません。コントロールの Caption プロパティおよび CaptionAlign プロパティを設定し、ユーザー補助ガイドラインで推奨しているように、テーブルのキャプションを表示します。

コントロールは、ナビゲーション用の LinkButton コントロールを表示しますが、クライアント スクリプトが機能する必要があります。クライアント スクリプトを不要にするには、テンプレートを作成し、これらの機能を持つ Button コントロールを追加します。

CatalogZone

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

すべての動詞が同じリンク テキストを生成します。

リンクの代替テキストが表示されますが、カスタマイズできません。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

ChangePassword

このコントロールでクライアント スクリプトが機能する必要があります。

イメージを使用するようにコントロールを設定する場合、対応するテキスト プロパティを適切な代替テキストに設定します。たとえば、ChangePasswordButtonType プロパティを Image に設定する場合、ChangePasswordButtonText プロパティを代替テキストに設定します。

CheckBox

AutoPostBack プロパティを true に設定すると、このコントロールにクライアント スクリプトが必要になります。

CheckBoxList

AutoPostBack プロパティを true に設定すると、このコントロールにクライアント スクリプトが必要になります。

CreateUserWizard

イメージを使用するようにコントロールを設定する場合、対応するテキスト プロパティを適切な代替テキストに設定します。たとえば、CancelButtonType プロパティを Image に設定する場合、CancelButtonText プロパティを代替テキストに設定します。

コントロールの [送信] などのボタンとリンクはステップ間を移動し、クライアント スクリプトが必要です。

DataPager

QueryStringField プロパティを設定せずに NumericPagerField オブジェクトまたは NextPreviousPagerField オブジェクトを使用する場合は、DataPager コントロールでクライアント スクリプトが必要になります。ページャ フィールド オブジェクトがイメージを使用するように構成されている場合、イメージの代替テキストは明示的に指定できません。イメージは、テキスト プロパティ (NextPageText など) を代替テキストとして使用します。代わりに、ページャで何を表示するかを厳密に定義できる TemplatePagerField オブジェクトを使用してください。

DetailsView

ButtonField 列を作成してボタンのイメージを指定する場合、そのイメージの代替テキストは明示的に指定できません。イメージは、そのオブジェクトの Text プロパティを代替テキストとして使用します。

このコントロールのレイアウトは HTML テーブルを使用して表示されます。これにはテーブル ヘッダー情報が含まれないため、一部のガイドランでは推奨していません。

ページングを有効にして NextPageImageUrl プロパティと PreviousPageImageUrl プロパティを設定する場合、ページング ボタンとして使用するイメージの代替テキストは明示的に設定できません。代わりに、ページャで何を表示するかを厳密に定義できる PagerTemplate プロパティを使用します。

既定では、このコントロールは LinkButton コントロールを使用します。これには、編集モードやページングなどに切り替える機能を持つクライアント スクリプトが必要です。クライアント スクリプトを不要にするには、テンプレートを作成し、これらの機能を持つ Button コントロールを追加します。

このコントロールの AutoGenerateEditButton プロパティを true に設定すると自動的に生成されるテキスト ボックスは、関連する label 要素を持ちません。これを避けるには、テンプレート フィールドを作成して独自の Label コントロールおよび TextBox コントロールを追加し、これらを手動で関連付けます。コントロールの Caption プロパティおよび CaptionAlign プロパティを設定し、ユーザー補助ガイドラインで推奨しているように、テーブルのキャプションを表示します。

DropDownList

このコントロールは、リストを複数のセクションにサブ区分化できる、推奨の ListItemGroup をサポートしません。

AutoPostBack プロパティを true に設定すると、コントロールにクライアント スクリプトが必要になります。

EditorZone

アイコンを表示すると、すべての動詞が同じ代替テキストを表示します。

このコントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

リンクの代替テキストが表示されますが、カスタマイズできません。

FormView

このコントロールのレイアウトは HTML テーブルを使用して表示されます。これにはテーブル ヘッダー情報が含まれないため、一部のガイドランでは推奨していません。

既定では、このコントロールは、編集モードやページングなどに切り替える機能用にクライアント スクリプトを必要とする LinkButton コントロールを使用します。クライアント スクリプトを不要にするには、PagerTemplate プロパティを使用して、これらの機能を持つ Button コントロールを追加します。

コントロールの Caption プロパティおよび CaptionAlign プロパティを設定し、ユーザー補助ガイドラインで推奨しているように、テーブルのキャプションを表示します。

GridView

RowHeaderColumn プロパティをデータ フィールドの名前に設定し、UseAccessibleHeader プロパティを true に設定して、ユーザー補助ガイドラインを満たすテーブル ヘッダー情報をコントロールで表示します。

ButtonField オブジェクトを作成してボタンのイメージを指定する場合、そのイメージの代替テキストは明示的に指定できません。イメージは、そのオブジェクトの Text プロパティを代替テキストとして使用します。

コントロールの Caption プロパティおよび CaptionAlign プロパティを設定し、ユーザー補助ガイドラインで推奨しているように、テーブルのキャプションを表示します。

既定では、このコントロールは、編集モードやページングなどに切り替える機能用にクライアント スクリプトを必要とする LinkButton コントロールを使用します。クライアント スクリプトを不要にするには、テンプレートを作成し、これらの機能を持つ Button コントロールを追加します。

ページングを有効にして NextPageImageUrl プロパティと PreviousPageImageUrl プロパティを設定する場合、ページング ボタンとして使用するイメージの代替テキストは明示的に設定できません。代わりに、ページャで何を表示するかを厳密に定義できる PagerTemplate プロパティを使用します。

編集、選択、ページング、およびその他の更新機能を実装するために使用する既定のコントロールには、クライアント スクリプトが必要です。これを回避するには、テンプレート列を作成し、手動で Button コントロールを追加します。

このコントロールの AutoGenerateEditButton プロパティを true に設定すると自動的に生成されるテキスト ボックスは、関連する label 要素を持ちません。これを避けるには、テンプレート列を作成して独自の Label コントロールおよび TextBox コントロールを追加し、これらを手動で関連付けます。

並べ替えを有効にする場合、列ヘッダー内のリンクは LinkButton になり、クライアント スクリプトが機能する必要があります。クライアント スクリプトを不要にするには、テンプレートを作成し、これらの機能を持つ Button コントロールを追加します。

HyperLink

ImageUrl プロパティをグラフィック ファイルの URL に設定する場合、Text プロパティを設定し、生成されるグラフィックの代替テキストを指定します。

リンク用の Target プロパティを設定すると、新しいウィンドウが開きます。この方法は、ユーザー補助ガイドラインでは推奨していません。

Image

既定では、このコントロールは代替テキストを表示しません。AlternateText プロパティを設定します。グラフィックが機能目的を持たない場合、GenerateEmptyAlternateText プロパティを true に設定し、空の文字列 ("") が設定された alt を表示します。これにより、スクリーン リーダーはそのグラフィックをスキップします。

ImageButton

このコントロールでクライアント スクリプトが機能する必要があります。

既定では、このコントロールは代替テキストを表示しません。AlternateText プロパティを設定します。

ImageButton コントロールは独自の代替テキストのある領域をサポートしないため、これをイメージ マップとして使用しないでください。代わりに、ImageMap コントロールを使用します。

ImageMap

既定では、このコントロールは代替テキストを表示しません。AlternateText プロパティを設定します。

このコントロールまたは個々のホット スポットの HotSpotMode プロパティを PostBack に設定する場合、コントロールでクライアント スクリプトが機能する必要があります。

リンク用の Target プロパティを設定すると、新しいウィンドウが開きます。この方法は、ユーザー補助ガイドラインでは推奨していません。

Label

このコントロールを使用してテキスト ボックスまたは他のコントロールの label を表示する場合、AssociatedControlID プロパティをコントロールの ID に設定し、ラベルに関連付けます。

LayoutEditorPart

ページにユーザー補助機能を備えるには、他の Web パーツ コントロールに LayoutEditorPart コントロールを常に組み込みます。組み込まないと、ユーザーは Web パーツ コントロールのドラッグにマウスしか使用できません。

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

すべての動詞が同じリンク テキストを生成します。

リンクの代替テキストが表示されますが、カスタマイズできません。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

LinkButton

このコントロールでクライアント スクリプトが機能する必要があります。

複数の LinkButton コントロールの Text プロパティに同じ文字列を設定しないでください。これは、スクリーン リーダーを使用するユーザーが、ボタンを識別できなくなるためです。

ListBox

このコントロールは、リストを複数のセクションにサブ区分化できる、推奨の ListItemGroup をサポートしません。

AutoPostBack プロパティを true に設定すると、コントロールにクライアント スクリプトが必要になります。

Login

LoginButtonType プロパティを Image に設定すると、LoginButtonText プロパティの値が代替テキストとして使用されます。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

LoginName

スクリーン リーダーがコントロールのテキストを正しく解釈するように、ToolTip プロパティを "ユーザー名としてログイン" などのテキストに設定します。

LoginStatus

このコントロールは、LinkButton コントロールを使用して [ログアウト] リンクを表示します。このため、クライアント スクリプトが機能する必要があります。クライアント スクリプトを不要にするには、テンプレートを作成し、これらの機能を持つ Button コントロールを追加します。

Menu

コントロールの SkipLinkText プロパティを文字列に設定し、推奨されるスキップ ナビゲーション リンクをコントロールで表示します。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールの一部のクライアント側機能をサポートしないブラウザでは、ブラウザがウィンドウを更新して 2 番目のナビゲーションを表示します。このため、スクリーン リーダーがもう一度ページの読み取りを開始する場合があります。

リンク用の Target プロパティを設定すると、新しいウィンドウが開きます。この方法は、ユーザー補助ガイドラインでは推奨していません。

コントロールのレイアウトは HTML テーブルを使用して表示されます。これは一部のガイドランでは推奨していません。

コントロールがマウス ポインタの副次効果 (ショートカット メニューの作成など) を持つように設定することは、ユーザー補助ガイドランでは推奨していません。

PageCatalogPart

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

すべての動詞が同じリンク テキストを生成します。

リンクの代替テキストが表示されますが、カスタマイズできません。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

PasswordRecovery

このページの ClientTarget プロパティが Downlevel に設定されている場合、コントロールでクライアント スクリプトが機能する必要があります。

SubmitButtonType プロパティを Image に設定すると、SubmitButtonText プロパティの値が代替テキストとして使用されます。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

PropertyGridEditorPart

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

すべての動詞が同じリンク テキストを生成します。

リンクの代替テキストが表示されますが、カスタマイズできません。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

RadioButton

AutoPostBack プロパティを true に設定すると、コントロールにクライアント スクリプトが必要になります。

RadioButtonList

AutoPostBack プロパティを true に設定すると、コントロールにクライアント スクリプトが必要になります。

SiteMapPath

コントロールの SkipLinkText プロパティを文字列に設定し、推奨されるスキップ ナビゲーション リンクをコントロールで表示します。

サイト マップ XML ファイルで、スクリーン リーダーがナビゲーション リンクの識別に使用できるタイトルが提供されるように、各サイト マップ ノードの description 属性を設定します。

TableTableRowTableCellTableHeaderCellTableHeaderRow、および TableFooterRow

コントロールの Caption プロパティおよび CaptionAlign プロパティを設定し、ユーザー補助ガイドラインで推奨しているように、テーブルのキャプションを表示します。

Table オブジェクトを作成する場合は、TableHeaderRow コントロールおよび TableHeaderCell コントロールを含めます。

TableHeaderRowTable、および TableFooterRow の各コントロールで、TableSection プロパティを TableBody、TableHeader、または TableFooter に設定します。これにより、各コントロールで、thead、tbody、および tfoot の要素がそれぞれ表示されます。

TableCell コントロールで AssociatedHeaderCellID プロパティを設定し、セルを見出しに関連付ける header が表示されるようにします。

コントロールの Scope プロパティを設定し、ヘッダーを対応するデータ列に関連付けます。

TextBox

AutoPostBack プロパティを true に設定すると、コントロールにクライアント スクリプトが必要になります。

TreeView

コントロールの SkipLinkText プロパティを文字列で設定し、推奨されるスキップ ナビゲーション リンクをコントロールで表示します。

ノードの PopulateOnDemand プロパティを true に設定すると、コントロールがユーザー補助ガイドラインに準拠しない方法で動作します。

コントロールでクライアント スクリプトが機能する必要があります。

TreeView コントロールまたは個々のノードの Target プロパティを _blank に設定すると、コントロールが新しいウィンドウを開きます。これは、ユーザー補助ガイドランでは推奨していません。

WebPartZone

このコントロールは、ラベルをコントロールに関連付ける label 要素を生成しません。

すべての動詞が同じリンク テキストを生成します。

リンクの代替テキストが表示されますが、カスタマイズできません。

コントロールでクライアント スクリプトが機能する必要があります。

コントロールは、アクセス キー設定またはタブ インデックス設定を表示しません。

HelpMode プロパティを Modal または Modeless に設定すると、コントロールが新しいウィンドウを開きます。これは、ユーザー補助ガイドラインでは推奨していません。

Wizard

コントロールは、ナビゲーション用の LinkButton コントロールを表示します。これには、クライアント スクリプトが機能する必要があります。クライアント スクリプトを不要にするには、テンプレートを作成し、これらの機能を持つ Button コントロールを追加します。

検証コントロール

既定では、検証コントロールはクライアント スクリプトを表示してクライアント側の検証を実行します。ただし、組み込みの検証コントロール (CustomValidator コントロールを除く) は、サーバー コードの冗長検証チェックを自動的に実行するため、EnableClientScript プロパティを false に設定すると、検証コントロールのクライアント スクリプトの表示を回避できます。

Text プロパティおよび ErrorMessage プロパティを意味のあるエラー メッセージに設定します。これらをアスタリスク (*) に設定しないでください。

参照

概念

ASP.NET におけるユーザー補助のサポート