HTMLを適当に書いてませんか?マークアップはとても大事です!
HTMLを扱うとき、「とりあえず見た目さえ整えばいい」という思いで書かれているコードに出会うことがあります。しかし、マークアップを適当に書いてしまうと、SEOやアクセシビリティの面で大きな問題が発生することがあります。適当なマークアップがもたらす影響も考えて記述する必要があります。
HTMLのマークアップとは?
HTML(Hypertext Markup Language)は、Webページの構造や内容を定義するためのマークアップ言語です。<h1>
や<p>
、<div>
などのタグを使って、Webページの構成をブラウザに伝えます。正しいマークアップを施すことで、ブラウザや検索エンジン、アクセシビリティツールがコンテンツを正確に解釈できます。
適当なマークアップが引き起こす問題
HTMLを適当に書くと、さまざまな問題が発生します。
- SEO(検索エンジン最適化)
正しいマークアップを使わないと、検索エンジンがページの内容を適切に評価できなくなります。特に見出しタグ(<h1>
〜<h6>
)を適切に使わないと、検索エンジンにとって何が重要な情報なのかが分かりづらくなり、検索順位が下がる可能性があります。 - アクセシビリティ
画面リーダーなどの支援技術を使っているユーザーが、ページの内容をうまく理解できなくなります。たとえば、画像にalt
属性を設定していないと、視覚障害者は画像の内容を知る手段がなくなってしまいます。 - メンテナンス性の低下
適当にマークアップが施されたHTMLは、コードが複雑化してしまい、後から見直したり、修正するのが難しくなります。コードがシンプルで論理的に書かれていると、チームメンバーや後任者も理解しやすくなり、開発効率が向上します。
HTMLマークアップの基本的なガイドライン
適切なHTMLのマークアップのために、次の基本的なガイドラインが必要です。
- セマンティックなタグを使う
例えば、<div>
ではなく、見出しには<h1>
〜<h6>
、段落には<p>
、リストには<ul>
や<ol>
など、意味に合ったタグを使いましょう。 - alt属性を設定する
画像には必ずalt
属性をつけ、視覚障害者のユーザーや、画像が表示されない環境でも内容が伝わるようにします。 - HTMLの構造をシンプルに保つ
必要のない<div>
や<span>
タグを乱用せず、コードの構造をシンプルに保ちましょう。 - ランディングページのテキスト要素をまとめる
長いテキストがある場合、適切に段落や見出しを配置し、読みやすい構成にします。
悪いマークアップの例
<div> <div>会社概要</div> <div>会社の概要をここに記載します。</div> <div> <div>サービス</div> <ul> <li>Web開発</li> <li>アプリ開発</li> </ul> </div> </div>
上記のよくない点
- セマンティックなタグの欠如
すべての要素に<div>
タグが使われており、どの部分が「見出し」なのか「内容」なのかが分かりづらくなっています。これでは、検索エンジンや支援技術がページ構造を正しく理解できません。 - 見出しタグの不使用
「会社概要」や「サービス」は見出しとして機能するべき箇所ですが、適切な<h1>
〜<h6>
タグが使われていません。
正しいマークアップの例
<section> <h1>会社概要</h1> <p>会社の概要をここに記載します。</p> </section> <section> <h2>サービス</h2> <ul> <li>Web開発</li> <li>アプリ開発</li> </ul> </section>
改善点
- セマンティックなタグの使用
<section>
タグで内容を分け、<h1>
や<h2>
タグで見出しを示しています。これにより、各セクションの目的が明確になり、検索エンジンやスクリーンリーダーも構造を理解しやすくなります。 - 見出しタグの使用
見出しには<h1>
および<h2>
タグを使用し、内容の階層が明確に示されています。<h1>
が最も重要な見出しで、<h2>
がそのサブ見出しとなり、読み手にも伝わりやすい構造になっています。
セマンティックな要素(タグ)
セマンティックな要素(semantic elements)は、HTML5で導入された概念で、その要素の名前から内容や目的が明確に分かるタグのことを指します。これにより、コードの可読性やアクセシビリティが向上し、検索エンジンや支援技術(例:スクリーンリーダー)がページ内容をより正確に理解できるようになります。
主なセマンティック要素
<header>
- ページやセクションのヘッダーを定義。
- 通常、ロゴ、ナビゲーション、見出しなどが含まれる。
<header> <h1>ウェブサイトタイトル</h1> <nav> <ul> <li><a href="#">ホーム</a></li> <li><a href="#">サービス</a></li> </ul> </nav> </header>
<nav>
- ナビゲーションリンクのグループを定義。
- サイト全体やセクション間を移動するリンクを含む。
- <header>や<footer>内に入る場合もある。
<nav> <ul> <li><a href="#about">About</a></li> <li><a href="#services">Services</a></li> </ul> </nav>
<main>
- ページの主要な内容を定義。
- 同じページ内で重複しない唯一の要素として使用。
<main> <article> <h2>記事タイトル</h2> <p>この記事の内容...</p> </article> </main>
<section>
- トピックごとのセクションを定義。
- 通常、セクションには見出し<h2>が含まれる。
<section> <h2>セクションタイトル</h2> <p>このセクションの説明...</p> </section>
<article>
- 独立したコンテンツや再利用可能な内容を定義。
- 一般的に、<header>や<h1>が入ることが可能。
- 例: ブログ記事、ニュース、製品情報など。
<article> <h2>記事タイトル</h2> <p>この記事の内容...</p> </article>
<aside>
- 補足情報やサイドバーを定義。
- 主な内容に関連した情報(例:広告、リンク、参考資料)を表示。
<aside> <h3>関連リンク</h3> <ul> <li><a href="#">関連ページ1</a></li> </ul> </aside>
<footer>
- セクションやページのフッターを定義。
- 著作権情報や連絡先、サイトマップなどが含まれる。
<footer> <p>© 2024 ウェブサイト名</p> </footer>
セマンティック要素の利点
- 可読性の向上
- 開発者がコードを理解しやすくなる。
- チーム開発や将来的な保守が容易。
- SEO(検索エンジン最適化)の向上
- 検索エンジンがコンテンツの意味を正確に解析できる。
- 重要な情報が優先的に認識されやすくなる。
- アクセシビリティの向上
- スクリーンリーダーがページ構造を正確に読み取れる。
- ユーザーがコンテンツをナビゲートしやすくなる。
- 一貫性と標準化
- 共通の命名規則により、他の開発者やツールとの互換性が高まる。
非セマンティックな要素との比較
非セマンティック要素には、<div>
や <span>
などがあります。これらは汎用的な要素で、名前からはその内容や目的が分かりません。
<div class="header"> <h1>ウェブサイトタイトル</h1> </div>
セマンティック要素を適切に使用することで、コードの構造がより直感的になり、ユーザー体験、検索エンジン対策、アクセシビリティが大幅に向上します。可能な限りセマンティック要素を使い、非セマンティック要素は最小限に留めることが必要です。
バリデーションサービス
バリデーションサービスは、HTMLやCSSなどのウェブサイトのコードが、Web標準(W3C標準など)に準拠しているかどうかをチェックするツールやサービスのことを指します。このサービスを利用することで、正しい構文で書かれているか、閉じるべきタグが抜けていないか?スペルミスなどの誤りがないかを確認でき、ウェブサイトの品質向上や互換性の確保に役立ちます。
主なバリデーションサービス
- W3C Markup Validation Service
- HTML、XHTML、SVG、MathMLの構文チェックを行うサービス。
- 使用方法:
- URLを入力、ファイルをアップロード、またはコードを直接貼り付けて検証。
- 問題がある箇所が一覧表示される。
- URL: https://validator.w3.org/
- W3C CSS Validation Service
- CSSコードの構文チェックを行うサービス。
- 使用方法はHTMLのバリデーションと同様。
- URL: https://jigsaw.w3.org/css-validator/
- Nu HTML Checker
- HTML5やWebアプリケーション向けのモダンなバリデーションツール。
- 非推奨なタグの使用や、新しいHTML5の構文エラーをチェックできる。
- URL: https://validator.w3.org/nu/
- アクセシビリティバリデーションツール(例:WAVE)
- HTMLやCSSだけでなく、アクセシビリティ基準(WCAG)に準拠しているかを検証。
- URL: https://wave.webaim.org/
マークアップエンジニアとは?
「マークアップエンジニア」は、主にHTMLやCSS、場合によってはJavaScriptを使用してWebページの構造やデザインを構築するエンジニアです。求人などでよく見かけるポジションであり、Webサイトのフロントエンド開発において重要な役割を担います。
マークアップエンジニアの主な役割
- Webページのマークアップ作成
デザイナーが作成したデザインをもとに、HTMLやCSSを使ってWebページの構造を作成します。セマンティックなマークアップを心がけ、検索エンジンやアクセシビリティツールが理解しやすい構造を提供します。 - CSSによるデザインの実装
ページ全体のレイアウトや色・フォントなどのスタイルをCSSで設定し、デザイン通りにWebページが表示されるように調整します。特に最近では、レスポンシブデザイン(異なるデバイスで見たときに最適なレイアウトにする設計)が求められることが多いです。 - JavaScriptによる動的な効果の追加
ページの動きを豊かにするために、JavaScriptでインタラクティブな機能を追加することもあります。たとえば、ボタンのクリックでモーダルウィンドウを表示する、アコーディオンメニューを開閉するなど、ユーザー体験を向上させるためのスクリプトを実装します。 - SEOやアクセシビリティを考慮したコーディング
検索エンジン最適化(SEO)やアクセシビリティの観点からも、マークアップエンジニアは適切なタグの使い方や、画像のalt
属性設定などを意識してコーディングします。これにより、Webサイトが多くのユーザーにとって利用しやすくなります。
マークアップエンジニアの重要性
マークアップエンジニアは、デザインを正確にWeb上で表現しつつ、SEOやアクセシビリティを考慮する重要な役割を果たしています。正しいマークアップやスタイルの実装が、ユーザーの体験を向上させ、サイトの評価を高めるため、Web制作において欠かせない存在です。