A要素

A要素とは始点アンカー、つまりハイパーリンクの開始点のことであると考えて差し支えない。href属性に終点アンカーのURIを与えることでハイパーリンクを形成する。A要素の「A」はAnchorを意味する。

意味始点アンカー
用例<a href="URI">内容</a>
開始タグ必須
終了タグ必須
属性下表参照
内容(#PCDATA|インライン要素)* -(A要素)
更なる制約内容は終点アンカーを文脈に沿って的確に表現したもの

逆にhref属性のないA要素はハイパーリンクの機能を提供できず、始点アンカーとはならない。このようなhref属性のないA要素は殆ど存在価値がないものといって良いだろう。例外は、スクリプト等によって動的にhref属性を割り当てるといった使い方である。

id属性との併用によってA要素自身を終点アンカーとすることも可能だが、A要素に限らずid属性を許された殆どの要素が終点アンカーとなることができるようになったため、最早終点アンカーはA要素の特性ではない。

A要素の内容

仕様上A要素の内容に許されるのは解析される文字データ(#PCDATA)インライン要素であり、どのような順番で何回登場してもよい。但しA要素をA要素の子孫内容に持ってはいけない。いわゆる「A要素の入れ子」は禁止されている。

より良いハイパーテキストを作成するには、A要素の内容即ちリンクテキストは、ハイパーリンクをアクティブにする前に終点アンカーの性質、関係性を簡潔に表し、アクティブにする行為とその結果を論理的に結びつけるものでなければならない。具体的にはリンクテキストを考えるを参照。

A要素の属性

A要素で最も重要な属性href属性である。この属性で終点アンカーのURIを示すと、A要素は始点アンカーとなり、ハイパーリンクを形成する。次に重要なのは先に挙げたtitle属性で、A要素の内容が終点アンカーを適切に表現したものにならないとき、補足情報的に使用することができる。仕様において非推奨とされる不要な属性及び文書指向アプローチにおいて必要のない属性を除いた一覧を以下に示す。

表1/1. A要素の属性
属性名属性値型省略初期値簡単な 説明
hrefURI終点アンカーのURI
titleCDATA人が読むための、このA要素が形成するハイパーリンクに関する補足的な情報
charset%Charset;終点アンカーの文字符号化方式
type%ContentType;終点アンカーのMIMEタイプを助言
hreflang言語コード終点アンカーの言語コード
relリンクタイプの列挙体この文書からみた終点アンカーとの関係をキーワードで示す
revリンクタイプの列挙体終点アンカーからみたこの文書との関係をキーワードで示す
shape( rect | circle | poly | default )rectクライアントサイド画像マップで使用
coords位置/形状クライアントサイド画像マップで使用
onfocus%Script;フォーカスされた時のイベントハンドラ
onblur%Script;フォーカスを失ったときのイベントハンドラ

次の属性もA要素に使用可能である。これらは他の多くの要素にも共通の意味で使用できる:

HTML4.01の仕様書ではtitle属性もこの共通属性の一覧に加えられているが、A要素においては特に重要である為、A要素の属性と同列に扱った。

表1. 共通属性
属性名属性値型省略初期値説明
idID文書を通じて一意のID
classCDATAスペースで区切られたクラス名のリスト
style%StyleSheet;関連付けられたスタイル情報
lang%LanguageCode;言語コード
dir(ltr|rtl)文字や表の方向性を指定]
国際
イベントハンドラ%Script;
type
終点アンカーがあまり一般的でないメディア型であった場合、この属性にそれを示すとダウンロード開始前にユーザにそれを示すことができる、という建前だが、サーバの応答ヘッダで判断しても遅くはないと思われる。他人のリソースの場合、変更に合わせなければならないため管理が大変である。ただ、メディア毎にスタイルシートを利用してアイコンを用意するなどの応用ができるだろう。
href
終点アンカーのURIを指定する。この属性がないとA要素は始点アンカーとならず、ハイパーリンクが形成されないので注意が必要。URIはフラグメント識別子付きのURI参照を含む概念である。
charset
終点アンカーの文字符号化方式を助言する、とあるが、レスポンスヘッダできちんと示すべきである。それができないということは他者のサーバ上のリソースであると思われるが、その場合文字符号化方式の変更に対応しなければならない。仕様書に書かれているような利便は事実上皆無といっていいだろう。URI(主にクエリ)にASCII文字以外が含まれる場合、その符号化方式をcharset属性に指定しておけば、URIをアンエスケープする際に役立つかもしれないが、終点アンカーの符号化がURIをエスケープしている符号化と一致しているかは事前に確認しなければならない。
hreflang
href属性で示された終点アンカーの言語コードを助言する。
rel
このA要素が存在する文書からみた、href属性で示された終点アンカーとの関係を説明する為のキーワード、またはそのキーワードを空白で区切った列挙体。
rev
href属性で示された終点アンカーから見た、このA要素が存在する文書との関係を説明するためのキーワード、またはそのキーワードを空白で区切った列挙体。
shape
MAP要素内に当該A要素を置いた場合に指定する、画像で表現した始点アンカーの形状。クライアントサイド画像マップ以外では使用しない。詳しくはMAP要素の項を参照。
coords
MAP要素内に当該A要素をおいた場合に指定する、画像で表現した始点アンカーの座標位置。shape属性の値によって意味が異なってくる。クライアントサイド画像マップ以外では使用しない。詳しくはMAP要素の項を参照。
onfocus
この始点アンカーがフォーカスを受けた時のイベントハンドラ
onblur
この始点アンカーがフォーカスを失った時のイベントハンドラ

その他不要と判断した属性

accesskey
不定の数の始点アンカーが存在しうるハイパーテキストのなかで、わざわざアクセスキーを設定する必要があるのはその文書と極めて関係の深い文書であろう。そのような文書は必ず、rel、あるいはrev属性を指定可能であって、それならば、アクセスキーというものはrel、またはrev属性に基づいて本来ブラウザが自動的に割り振ることが十分に可能である。キーのバッティングの問題が起こる必然性に十分留意し、ユーザーエージェントが既知の「ウェブアプリケーション」以外では使わないようにしたい。アクセスキーは極めてメディア依存性が高いものなので、本来メディア依存のスタイルシート等で指定すべき性質のものであろう。HTMLの仕様に盛り込む意図がまったく理解できない。
tabindex
この属性に数値を指定することでタブ移動順位を指定できる。数値は0から32767の間でなければならない。「001」の「00」のような冒頭のゼロは無視される。キーボード操作によるフォーカスを受ける順番は、1以上の値のうち、tabindexのより小さなものが先になり、順位が同じならば文書順に前に登場する要素が先になる。tabindexを指定された要素のうち、0の値を持つものが最後にフォーカスされ、それ以降はtabindexを持たない被フォーカス要素が文書順にフォーカスされる。しかしこの属性の指定によって、タブ移動の順序がユーザの期待とは異なるものになる可能性が高い。期待を裏切らないようにするのがウェブユーザビリティの基本であるから、これはウェブ上のハイパーテキストではない「ウェブアプリケーション」以外では使わないほうが良い。
webmaster@jintrick.net
Published: ,Updated: