プロへの道 » フロントエンドコース » ユニット4

フロントエンドコース ユニット4 | 目安: 120時間 (約1.5ヶ月)

サイト制作実践 ― 「動く」と「仕事になる」の差

ここまでで、あなたのサイトは動きます。このユニットでは、その先 ― 誰でも使えるか (アクセシビリティ)、入力でイライラさせないか (フォーム)、待たせないか (速度)、増築に耐えるか (設計) ― を仕上げます。地味ですが、ジュニアの採用で一番見られるのは、実はこの品質です。

このユニットのゴール フォーム・アクセシビリティ・速度の検査を自分でかけながら、複数ページのサイトを「仕事の品質」で完成させられるようになる。

進め方の地図

やること 仕上がるもの
1週目 授業1: フォームとバリデーション 親切な問い合わせフォーム
2週目 授業2: アクセシビリティ ― 誰でも使える Lighthouse検査と手直し
3週目 授業3: 画像と表示速度 軽くなった過去作品
4週目 授業4: 多ページ設計 ― 増築に耐える フォルダ構成と命名のルール表
5〜6週目 月末制作: 架空のお店のフルサイト 4ページ + フォームの公開サイト

授業1: フォーム ― 入力でイライラさせない

フォームの良し悪しは、HTMLの正しさ + メッセージの親切さで決まります。HTMLには、JSを書かなくても働く検査機能が組み込まれています。まずそれを使い切り、足りない分だけJSで足します。

例題 (リードつき) | 問い合わせフォームを正しく組む
  1. ラベルと入力欄を正しくつなぐ
    <label for="email">メールアドレス (必須)</label>
    <input type="email" id="email" required>
    forid をそろえると、ラベルのクリックで入力欄が選ばれ、読み上げソフトにも正しく伝わります。
  2. typeとrequiredを使い切るtype="email" は形式チェックを、required は必須チェックを、ブラウザが無料でやってくれます。電話は type="tel"、日付は type="date" です。
  3. 送信を受け止める
    document.querySelector("form").addEventListener("submit", (e) => {
      e.preventDefault(); // ページの再読み込みを止める
      // ここで追加の検査と「送信しました」表示
    });
  4. エラーメッセージを「直し方つき」にするお名前が空のときは、欄のそばに「お名前を入力してください (例: 山田太郎)」。どこを・どう直すかまで言うのが親切なフォームです。
  5. 成功も伝える送信できたら「送信しました。3日以内に返信します」。利用者を結果がわからないまま放置しないのが、最後の品質です。
演習 1-A (ヒントだけ) | 検査ケース表を作ってテストする

お題: 自分のフォームに対して「空のまま送信 / メール形式の誤り / 全部正しい」など、試す操作の一覧表 (検査ケース表) を作り、1つずつ実行して結果を記録します。

ヒント: 表の列は「操作 / 期待する結果 / 実際の結果 / 合否」の4つで十分です。この表が書ける人は、現場で「テストできる人」と呼ばれて重宝されます。

授業2: アクセシビリティ ― 誰でも使えるか

アクセシビリティは「目が見えにくい人・マウスが使えない人・高齢の人も含めて、誰でも使えること」です。福祉とWebの両方を知るあなたには、一番腑に落ちる分野のはずです。しかも検査は自動化されています。ブラウザに入っているLighthouse (ライトハウス) が採点してくれます。

例題 (リードつき) | Lighthouseで検査して、直す
  1. 検査する自分の過去作品 (模写LPなど) を開き、F12 → 「Lighthouse」タブ → カテゴリで「Accessibility」を選んで「Analyze page load」をクリックします。
  2. 指摘を読む100点満点の点数と、減点の理由が一覧で出ます。よく出る指摘は「画像にaltがない」「コントラスト不足」「ラベルのないフォーム部品」です。
  3. altを書く<img src="pan.png" alt="焼きたてのメロンパン"> ― 画像が見えない人に読み上げられる説明文です。飾り画像なら alt="" (空) にして「読み飛ばしてよい」と伝えます。
  4. キーボードで一周するマウスを置いて、Tab キーだけでページの全リンク・全ボタンにたどり着けるか試します。たどり着けない部品は、divをボタン代わりにしている場所です。button タグに直しましょう。
  5. 再検査する直したらもう一度Lighthouseを回します。点数が上がる体験は、純粋に楽しいです。90点以上を目指しましょう。
演習 2-A (リードなし) | 過去作品を全部90点以上に

お題: ユニット1〜3で公開した自分の作品すべてにLighthouseのアクセシビリティ検査をかけ、90点以上にそろえます。直した内容はコミットメッセージに残しましょう。

授業3: 画像と表示速度 ― 待たせない

表示が3秒遅いだけで、見に来た人の半分は帰ってしまうと言われます。そして遅さの犯人は、ほとんどの場合画像です。

例題 (リードつき) | 画像を軽くする3点セット
  1. 現状を測るLighthouseの「Performance」で自分の作品を採点し、画像関連の指摘を確認します。
  2. サイズを合わせる幅400pxで表示する画像に、幅4000pxの写真はいりません。無料ツール「Squoosh」(squoosh.app、ブラウザで動きます) で、表示幅の2倍程度にリサイズ + 圧縮します。1枚やってみて、ファイルサイズが何分の1になるか記録しましょう。
  3. 遅延読み込みをつける画面の下の方にある画像には <img loading="lazy" …> をつけます。スクロールで近づくまで読み込まれなくなる、1単語の最適化です。
  4. 幅と高さを書く<img width="400" height="300" …> のように寸法を書いておくと、読み込み中にレイアウトがガタッとずれる現象 (これも減点対象です) を防げます。
  5. 再計測するLighthouseをもう一度回して、点数とファイルサイズの変化を記録します。数字で語れる改善は、ポートフォリオの良い材料になります。

授業4: 多ページ設計 ― 増築に耐える

1ページのアプリと4ページのサイトでは、難しさの種類が変わります。敵は「ばらばら」です ― ページごとに微妙に違うナビ、似て非なるクラス名、どこに何があるか分からないフォルダ。先にルールを決めれば、ばらばらは防げます。

例題 (リードつき) | サイトの骨組みルールを決める
  1. フォルダ構成を決める定番はこの形です。
    mysite/
      index.html
      menu.html
      access.html
      contact.html
      css/style.css
      js/app.js
      img/ (画像は全部ここ)
    CSSとJSは全ページでこの1つずつを共有します。
  2. 共通部品を最初に完成させるヘッダー・ナビ・フッターを最初の1ページで完成させ、他のページへコピーします。後から直すときは全ページ直すと決めておきます (ナビの正本はindex.htmlと宣言しておくと迷いません)。
  3. 命名規則を3行で決める例:「クラス名は英小文字とハイフン (menu-list)」「ページ固有の装飾には接頭辞 (contact-form)」「色とサイズはCSS変数 (:root) にまとめる」。決めたらメモとしてリポジトリに入れます (README.mdの始まりです)。
  4. リンク総点検の習慣ページを足したら、全ページのナビから新ページへ行けるか・新ページから帰れるかを一周して確かめます。

月末制作: 架空のお店のフルサイト

月末制作

このユニットの集大成です。架空のお店 (パン屋・喫茶店・雑貨店など、自分で設定してOK) の4ページサイトを、品質検査つきで作りきります。

  1. 構成: ホーム / メニュー (または商品紹介) / アクセス / 問い合わせ、の4ページ。授業4の骨組みルールで始めます。
  2. フォーム: 問い合わせページに、授業1の品質 (正しいラベル・親切なエラー・成功の表示) のフォームを置きます。
  3. レスポンシブ: モバイルファーストで、スマホ・PC両方で自然に見えるようにします。
  4. 品質検査: 全ページでLighthouseのアクセシビリティ90点以上・パフォーマンスの画像指摘ゼロ、検査ケース表でフォームのテスト、リンク総点検。検査結果はメモに残します。
  5. 公開と発表: GitHub Pagesで公開し、「どんな品質検査をどう通したか」を中心に発表します。見た目の自慢より検査の話ができる人は、確実に職業人に近づいています。
デザインに自信がないときは: デザインコースのユニット1 (pd-01) の「文字の階層・3色ルール・8の倍数の余白」だけ拝借しましょう。この3つを守るだけで、見た目は十分整います。

つまずきやすいポイント

品質作業が退屈に感じたら: 正常な感覚です。そこで思い出してほしいのは、品質は「優しさの実装」だということです。altを書く1分は、画像が見えない誰かの数分を救います。あなたのいる事業所は、その意味が一番よく分かる場所のはずです。
Lighthouseの点が上がりきらないとき: 100点は目標ではありません。外部の埋め込みなど、自分では直せない減点もあります。「直せる指摘をゼロにする」が実務の合格ラインです。

発展チャレンジ (余力のある方へ)

発展チャレンジ
  • お店サイトに「ダークモード対応」を足してみましょう (prefers-color-scheme を調べることになります。CSS変数にまとめた色設計が、ここで効いてきます)。
  • OGP (SNSでリンクを貼ったときに出る画像と説明文) を設定してみましょう。meta property="og:..." の3行で、共有されたときの見栄えが激変します。
  • 読み上げソフト (WindowsならナレーターやNVDA) で自分のサイトを聞いてみましょう。altとラベルの意味が、耳で理解できます。

できたチェック