- ベストアンサー
グローバルナビゲーションのエラー対処方法
- グローバルナビゲーションのタグ内の<a>と</a>の間が空ですエラーについて、CSSとの重複問題が発生してしまう対応方法を教えてください。
- 初めて文法チェックのサイトでトップページのHTMLファイルをチェックしましたが、グローバルナビゲーションのコードで<span class='highlight'>エラーが発生しました</span>。<a>と</a>の間が空ですエラーの対処方法を教えてください。
- グローバルナビゲーションのコードでエラーが発生しました。<a>と</a>の間が空ですエラーが起きる理由と対処方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、Validatorはチェックすることでよいです。 よく初心者は仕様とデザインは両立できないと考えてる方がいらっしゃいますが、それはまったく逆です。そもそもHTMLのプレゼンテーション能力には限界があるのでHTMLの文書構造を無視したマークアップが行われてきました。それではHTMLの理念・目的と反するために、HTMLは文書構造を記述し、HTMLよりもはるかに能力のあるスタイルシートにプレゼンテーションを任すことになったのです。 ⇒14.1 スタイルシートの概説 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 ) HTMLさえ、きちんと書かれていれば、そうでないHTMLよりも、はるかに簡単に様々なデザインが可能になるのです。 ★a内にテキストを書かない一番の問題は、サイトを訪問するのはscreen端末だけではないということです。スタイルシートを読まない携帯電話や点字端末、スクリーンリーダー、テキストブラウザ・・・そして何よりも検索エンジンがそれを利用してクロールできません。 『Lynx などのテキスト ブラウザを使用して、サイトを確認します(ほとんどの検索エンジンのスパイダーには Lynx で見えるようにサイトが映ります)。 ( http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=35769#2 )』 添付図は上記サイトをLynxで表示したものです。 【対策】 ★colorをtransparent(透明)にする。 ★text-indentを大きくしてoverflowで消す。 ★contentプロパティで画像を追加する。 ★画像として配置しalt属性で代替文字を記述する。 :hoverで画像をhiddenにしてもよい など、方法はたくさんあります。 HTML4.01strict、XHTML1.0strict、XHTML1.1で正しいHTMLを作成する。Validatorで必ずチェックする。そのうえで、スタイルシートでプレゼンテーションを指定するという方向でよいですよ。 『HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 )』 それが実際は一番楽です。(^^)
その他の回答 (3)
- shockatz
- ベストアンサー率80% (153/191)
これ、liタグとaタグの扱いが逆じゃないすか? 普通よくあるパターンだと、aタグを"display:block"にして、widthとheightを持たせ、background-imageで画像を指定する。 そのうえで、正しくテキストノードをセットし、text-indentで-1000emとかの値をセットするなりして、ブロック外にテキストを吹っ飛ばしたり、とにかく不可視状態にします。 要は、テキストだけでもメニューが作成できるようにしておいて、背面に画像を出し、テキストを消すと。 <ul id="menu"> <li><a id="menu1" href="http://www.test.com/">トップページ</a> <li>...</li> </ul> a#menu1 { display:block; width:120px; height:32px; text-indent:-1000px; background-image:url('../images/menu1.png') } <a>内部へメニュー画像を直貼りするは昔の話。今はSEO的に不利な手法は常識的にとりません。 まあ、メニューに画像を使う時点で、マークアップ厨から見たらSEOもクソもないですが。
お礼
ありがとうございます。 いろいろと混乱しておりまして・・・ でも、なんとか改善できそうです!!
- Gotthold
- ベストアンサー率47% (396/832)
a要素の中に画像をimg要素で入れて、テキストはalt属性に書けば良い。
お礼
わかりました。試してみます!
どこのサイトでチェックされているか分かりませんが、そのサイトのチェックでエラーをなくすことの意味を考えてください。 そのサイトに解説等ないでしょうか? CSSでボタンの画像を出している時点で、一部のブラウザ、音声読み上げソフトなどに対応できない状態であることは認識されていますか? それを良しとするならエラーは無視してください。 (もちろん対応しないブラウザからはアクセスできない可能性があります) 無理矢理するなら・・・ <a> </a> <a> </a><!-- 全角スペース --> というごまかしも出来るかもしれませんが、そのサイトが対応しているか不明ですし、リンクが踏めないブラウザが残るのは変わりません。
お礼
文法チェックのサイトはここです! http://cetus.sakura.ne.jp/htmllint/htmllint.html >CSSでボタンの画像を出している時点で、一部のブラウザ、音声読み上げソフトなどに対応できない状態であることは認識されていますか? 一応、認識はしてます。 しかし、今の状態から変えるのが面倒なので、後回しで考えていました。
お礼
Validatorを使ってみます。 わかりました。a内にテキストを表示するようにします。