Hatena::ブログ(Diary)

TRANS

2008-11-11

alt属性が空なら、CSSで背景画像として扱うべきなの?

Web制作者ってとりあえずalt属性は空にしておけばいいって思ってるよね?のはてブコメントで何名かの方が「alt属性が空ならCSS指定」というような意見があったので、そのへんのお話。

きっかけ

上記エントリーでは実際に視覚障害者からの一つの意見としてこういう考え方もあるんだよ、ということを紹介しました。

ただ、何名かの方からはてブで「alt属性が空ならCSSで指定」、もしくは「空のalt属性はあまり増やしたくない」というコメントがちらほら見受けられました。

またもや西村あさひ法律事務所より

その一方で、西村あさひ法律事務所のソースを読んでいると、次のようなコードが出現することが分かります。

<ul id="endof-content-area">
  <li>
    <a href="#header-area" class="rollover">ページの先頭へ戻る
      <img src="/common/img/icon_001.png" width="11" height="10" alt="" />
    </a>
  </li>
</ul>
<ul class="link-list-D01">
  <li class="pseudo-first-child pseudo-odd">
    <span>
      <a class="rollover wasting-span-inserted" href="/ja/attorney/partners.html">
        <img class="icon-A01" height="12" width="15" alt="" src="http://www.jurists.co.jp/common/img/icon_005.png"/>
        <span class="wasting-span">パートナー</span>
      </a>
    </span>
  </li>
</ul>
<h1>
  <img id="content-title-pic" height="319" width="256" alt="" src="/ja/attorney/img/content-title_pic_E1.jpg"/>
  <img height="40" width="256" alt="弁護士等紹介" src="/ja/attorney/img/content-title_heading_E1.png" title="弁護士等紹介"/>
</h1>

1つ目、2つ目のコードは三角のアイコン、3つ目はカテゴリトップのイメージ画像とでも説明すればよいでしょうか。

コーダーの方からすると、特に1つ目、2つ目の書き方には違和感を感じるかと思います。モダンなCSSの書き方[謎]では大体このように教えられるはずです。1つ目のコードを参考にCSSを紹介すると、

ul#endof-content-area li {
  padding-left: 20px;
  background: transparent url(hoge.png) left center no-repeat;
}

値は適当ですが、このような三角アイコンは背景画像として指定されることが一般的になっています。このあたりのことを考慮すると、西村あさひ法律事務所は変わったコーディングだといっても差し支えないと思います。

CSSで背景画像を使わないメリット

alt属性が空でも画像をHTMLで書く際のメリットは、いろいろと妄想するとこのあたりかなと思います。

  • クリック領域が広がり、ユーザビリティが向上しそう(ページの先頭へ戻るなど)。
  • 印刷の際に「背景画像を印刷しない」の設定でも印刷される(カテゴリトップのイメージ画像など)。つまりはブランディング。

うーん、ちょっと思い付きが弱いですかねー。いや、bAの中の人たちはもっと異なる動機だったのかもしれないですが。

で、みんなはどうしてるの?

CSS Nite in Osaka, Vol.12 「alt属性考」では取り上げなかったテーマなのですが、みなさんはどうしていますか?alt属性が空の画像はCSSで背景画像?それともHTMLで書きますか?もちろん、ケースバイケースという考え方もありだと思います。

ぜひコメント、TB、ブクマコメントなどみなさんの意見をお聞かせください。

先に書いておきますが、画像置換の是非について問うてるわけではないので、お間違いありませんように。

hayakawahayakawa 2008/11/11 12:43 ケースバイケースというのが、無難な答えだと思いますが、空のalt属性は基本的に、装飾用になりますよね?
視覚ブラウザでは、装飾効果はありますが、非視覚ブラウザでは何も効果が無いので、言ってしまえば、有っても無くても良いということだと思います。
ですので、理想は、CSSで背景画像で設置してやるのが、良いのでは無いかと思います。(そのほうが、無駄なHTMLタグを書く必要も無く、ユーザビ的にも良いのではないかとも同時に思います。)

kennsukennsu 2008/11/11 16:36 altが空の画像はほぼ背景にしていますねえ。
その方が管理的にもいい気がして。

クリックの面積とか都度都度アイコンが違うとかって事情は、マークアップの工夫でなんとかなる範囲かなあと。

ただ印刷っていわれるとキツイですね。

あ、あと写真とか人物とかの場合はalt空でもimgで入れますね。

aratako0aratako0 2008/11/12 00:28 > hayakawaさん
コメントありがとうございます。TBももらっていますけど、MTのやつパスワード忘れてしまったので(おい

空のalt属性も図があって、その次にすぐその図の説明文がp要素でマークアップするときなどはそのalt属性は空にもしたりしますね。そのへんが難しいところ。

図をわざわざCSSでマークアップするのはなーと思ったりしたので、最後にケースバイケースと書いたんですね。

非視覚ブラウザの件はおっしゃるとおりだと思います。あとは携帯や印刷などの多様なデバイスにおいて背景画像指定がどう影響するのかは個人的にはちゃんと調べておきたいところです。

aratako0aratako0 2008/11/12 00:31 > kennsuさん
コメントありがとうございます。kennsuさんがWebにいるところ久々に見ました(違

管理の件はおっしゃるとおりですね。HTMLで書いてしまうと検索置換で一気に変換できるものの、ちょっとしんどそうな印象。

ちなみに、上の西村あさひの事例ではそのためか画像のファイル名のネーミングが非常に緩やかになっています。そのへんの工夫は必要なんでしょうね。

西畑一馬西畑一馬 2008/11/12 12:37 僕はボタンなどでも装飾要因が入ってるものはすべて画像置換ですね。

プレーンなXHTMLで携帯対応しますっていうとお客さんに喜ばれるんですよね。(僕何もしてないのに)

ボタンや見出し文字なんかで装飾要因がはいってると携帯で見苦しいので画像置換ってます。

aratako0aratako0 2008/11/12 13:32 > 西畑さん
こんにちは、どうもです。そういえば、ボタンあたりってそうでしょうね。確かクロスブラウザ対応だけでもえらい苦労したような気がします。

あまりアプリ系の案件ないので、ボタンも使うことも少ないのですが(使うとしたら問い合わせフォームくらい)、参考にさせてください。

HiGaHiGa 2008/11/13 10:59 初めまして。とても興味深いエントリーでした。
西村あさひ法律事務所の「矢印」についてですが、確かに普通は背景画像にしますよね。僕もこういう要素は背景画像にすると思います。
でも、この場合は画像のロールオーバーをJavaScriptでやっているから、っていう理由もあるのかな、と思いました。CSSの背景画像でロールオーバー効果を作ってもよいわけですが、制作者が複数いる場合はどの要素がCSSでロールオーバーで、どの要素がJavaScriptでロールオーバーか、っていう細かな取り決めは難しい(煩わしい)場合もありますよね。
画像のロールオーバーはJavaScriptでやろう、っていうふうに方針を1本化したほうが制作する際に迷わなくてすむし、技術的に楽ってことも影響しているのではないでしょうか。
ちなみに僕はこういう場合に空のaltを使うのが悪いとは思わないです。無駄に無意味なaltを指定するよりは空のaltのほうが正しいと思います。

aratako0aratako0 2008/11/13 20:16 > HiGaさん
コメントありがとうございます。
おお、やはりJSでロールオーバーなんですね。なるほどなー。仕様次第ではこういう実装も全然ありですよね。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証