進め方の地図
| 週 | やること | 仕上がるもの |
|---|---|---|
| 1週目 | 授業1: フォームとバリデーション | 親切な問い合わせフォーム |
| 2週目 | 授業2: アクセシビリティ ― 誰でも使える | Lighthouse検査と手直し |
| 3週目 | 授業3: 画像と表示速度 | 軽くなった過去作品 |
| 4週目 | 授業4: 多ページ設計 ― 増築に耐える | フォルダ構成と命名のルール表 |
| 5〜6週目 | 月末制作: 架空のお店のフルサイト | 4ページ + フォームの公開サイト |
授業1: フォーム ― 入力でイライラさせない
フォームの良し悪しは、HTMLの正しさ + メッセージの親切さで決まります。HTMLには、JSを書かなくても働く検査機能が組み込まれています。まずそれを使い切り、足りない分だけJSで足します。
- ラベルと入力欄を正しくつなぐ
<label for="email">メールアドレス (必須)</label> <input type="email" id="email" required>forとidをそろえると、ラベルのクリックで入力欄が選ばれ、読み上げソフトにも正しく伝わります。 - typeとrequiredを使い切る
type="email"は形式チェックを、requiredは必須チェックを、ブラウザが無料でやってくれます。電話はtype="tel"、日付はtype="date"です。 - 送信を受け止める
document.querySelector("form").addEventListener("submit", (e) => { e.preventDefault(); // ページの再読み込みを止める // ここで追加の検査と「送信しました」表示 }); - エラーメッセージを「直し方つき」にするお名前が空のときは、欄のそばに「お名前を入力してください (例: 山田太郎)」。どこを・どう直すかまで言うのが親切なフォームです。
- 成功も伝える送信できたら「送信しました。3日以内に返信します」。利用者を結果がわからないまま放置しないのが、最後の品質です。
お題: 自分のフォームに対して「空のまま送信 / メール形式の誤り / 全部正しい」など、試す操作の一覧表 (検査ケース表) を作り、1つずつ実行して結果を記録します。
授業2: アクセシビリティ ― 誰でも使えるか
アクセシビリティは「目が見えにくい人・マウスが使えない人・高齢の人も含めて、誰でも使えること」です。福祉とWebの両方を知るあなたには、一番腑に落ちる分野のはずです。しかも検査は自動化されています。ブラウザに入っているLighthouse (ライトハウス) が採点してくれます。
- 検査する自分の過去作品 (模写LPなど) を開き、F12 → 「Lighthouse」タブ → カテゴリで「Accessibility」を選んで「Analyze page load」をクリックします。
- 指摘を読む100点満点の点数と、減点の理由が一覧で出ます。よく出る指摘は「画像にaltがない」「コントラスト不足」「ラベルのないフォーム部品」です。
- altを書く
<img src="pan.png" alt="焼きたてのメロンパン">― 画像が見えない人に読み上げられる説明文です。飾り画像ならalt=""(空) にして「読み飛ばしてよい」と伝えます。 - キーボードで一周するマウスを置いて、Tab キーだけでページの全リンク・全ボタンにたどり着けるか試します。たどり着けない部品は、divをボタン代わりにしている場所です。
buttonタグに直しましょう。 - 再検査する直したらもう一度Lighthouseを回します。点数が上がる体験は、純粋に楽しいです。90点以上を目指しましょう。
お題: ユニット1〜3で公開した自分の作品すべてにLighthouseのアクセシビリティ検査をかけ、90点以上にそろえます。直した内容はコミットメッセージに残しましょう。
授業3: 画像と表示速度 ― 待たせない
表示が3秒遅いだけで、見に来た人の半分は帰ってしまうと言われます。そして遅さの犯人は、ほとんどの場合画像です。
- 現状を測るLighthouseの「Performance」で自分の作品を採点し、画像関連の指摘を確認します。
- サイズを合わせる幅400pxで表示する画像に、幅4000pxの写真はいりません。無料ツール「Squoosh」(
squoosh.app、ブラウザで動きます) で、表示幅の2倍程度にリサイズ + 圧縮します。1枚やってみて、ファイルサイズが何分の1になるか記録しましょう。 - 遅延読み込みをつける画面の下の方にある画像には
<img loading="lazy" …>をつけます。スクロールで近づくまで読み込まれなくなる、1単語の最適化です。 - 幅と高さを書く
<img width="400" height="300" …>のように寸法を書いておくと、読み込み中にレイアウトがガタッとずれる現象 (これも減点対象です) を防げます。 - 再計測するLighthouseをもう一度回して、点数とファイルサイズの変化を記録します。数字で語れる改善は、ポートフォリオの良い材料になります。
授業4: 多ページ設計 ― 増築に耐える
1ページのアプリと4ページのサイトでは、難しさの種類が変わります。敵は「ばらばら」です ― ページごとに微妙に違うナビ、似て非なるクラス名、どこに何があるか分からないフォルダ。先にルールを決めれば、ばらばらは防げます。
- フォルダ構成を決める定番はこの形です。
CSSとJSは全ページでこの1つずつを共有します。mysite/ index.html menu.html access.html contact.html css/style.css js/app.js img/ (画像は全部ここ) - 共通部品を最初に完成させるヘッダー・ナビ・フッターを最初の1ページで完成させ、他のページへコピーします。後から直すときは全ページ直すと決めておきます (ナビの正本はindex.htmlと宣言しておくと迷いません)。
- 命名規則を3行で決める例:「クラス名は英小文字とハイフン (menu-list)」「ページ固有の装飾には接頭辞 (contact-form)」「色とサイズはCSS変数 (:root) にまとめる」。決めたらメモとしてリポジトリに入れます (README.mdの始まりです)。
- リンク総点検の習慣ページを足したら、全ページのナビから新ページへ行けるか・新ページから帰れるかを一周して確かめます。
月末制作: 架空のお店のフルサイト
このユニットの集大成です。架空のお店 (パン屋・喫茶店・雑貨店など、自分で設定してOK) の4ページサイトを、品質検査つきで作りきります。
- 構成: ホーム / メニュー (または商品紹介) / アクセス / 問い合わせ、の4ページ。授業4の骨組みルールで始めます。
- フォーム: 問い合わせページに、授業1の品質 (正しいラベル・親切なエラー・成功の表示) のフォームを置きます。
- レスポンシブ: モバイルファーストで、スマホ・PC両方で自然に見えるようにします。
- 品質検査: 全ページでLighthouseのアクセシビリティ90点以上・パフォーマンスの画像指摘ゼロ、検査ケース表でフォームのテスト、リンク総点検。検査結果はメモに残します。
- 公開と発表: GitHub Pagesで公開し、「どんな品質検査をどう通したか」を中心に発表します。見た目の自慢より検査の話ができる人は、確実に職業人に近づいています。
つまずきやすいポイント
発展チャレンジ (余力のある方へ)
- お店サイトに「ダークモード対応」を足してみましょう (
prefers-color-schemeを調べることになります。CSS変数にまとめた色設計が、ここで効いてきます)。 - OGP (SNSでリンクを貼ったときに出る画像と説明文) を設定してみましょう。
meta property="og:..."の3行で、共有されたときの見栄えが激変します。 - 読み上げソフト (WindowsならナレーターやNVDA) で自分のサイトを聞いてみましょう。altとラベルの意味が、耳で理解できます。