HTML講座 / HTMLアクセシビリティの基本を確認する

HTMLのアクセシビリティは、内容の意味、分かる名前、必要な代替情報、キーボードで操作できる構造をそろえることから始まります。正しい要素を使い、実際に操作して確認することが重要で、自動検査でエラーがないだけでは十分とは限りません。

見出しで内容の階層を伝える

ページの主題、大きな節、その下位の話題を見出しの階層で表します。文字を小さくしたいだけでh4へ飛ばず、見た目をCSSで変えます。見出しだけ読んでも内容の流れが分かるようにします。

例えば「配送について」の下に「配送地域」「配送時間」があるなら、同じ親の下に同じレベルで並べます。空の見出しや直後の説明と合わない文言を避けます。具体的な構造は見出しと段落で比較できます。

リンクと画像を文脈に合う言葉にする

「こちら」だけのリンクを並べず、移動先や操作の目的が分かる文章にします。ダウンロードならファイルの種類なども必要に応じて伝えます。画像のaltはその場所で伝える情報や役割に合わせ、装飾だけなら空にする場合があります。

画像だけがリンクなら、景色の形だけでなく行き先の目的が分かる代替情報が必要です。すべての色や形を列挙するのではなく、読者が判断するために必要な内容を伝えます。画像とaltとW3C WAIの画像の判断フローを参照できます。

マウスなしで操作する

Tabでリンク、入力欄、ボタンへ移動し、どこにフォーカスがあるか見えることを確認します。通常、リンクはEnter、ボタンはEnterやSpaceで操作できます。移動にはa、操作にはbuttonなど、目的に合う標準要素を選びます。

クリック処理を付けたdivだけではボタンの意味やキーボード操作は得られません。メニューや説明が開閉するときは、フォーカスが見えない内容へ入ってしまわないかも確認します。フォームではラベルを認識し、エラーから欄へ戻って修正できるかを試します。関連付けはlabelとinputの実習でも確認できます。

手動確認用の小さなページ

次をaccessible-page.htmlとして保存し、画像講座の960ピクセル版を同じフォルダーへ置きます。このフォームは検証とGET値の確認用で、メッセージ受信サービスではありません。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Keyboard-testing practice</title>
  <style>
    body { margin: 1rem; font-family: sans-serif; line-height: 1.6; }
    img { max-width: 100%; height: auto; }
    input { max-width: 100%; font: inherit; }
    :focus-visible { outline: 3px solid #005fcc; outline-offset: 3px; }
  </style>
</head>
<body>
  <a href="#main-content">Skip to main content</a>
  <header>
    <nav aria-label="On this page">
      <a href="#guide">Visitor guide</a>
      <a href="#contact">Contact practice</a>
    </nav>
  </header>
  <main id="main-content" tabindex="-1">
    <h1>Small Garden guide</h1>
    <section id="guide">
      <h2>Visitor guide</h2>
      <p>Bring comfortable shoes and water.</p>
      <img src="html-image-sample-lake-tree-960-v1.webp"
           alt="A tree on a small island in a lake with mountains beyond" width="960" height="540">
    </section>
    <section id="contact">
      <h2>Practice a contact field</h2>
      <form method="get">
        <label for="practice-email">Email (required)</label>
        <input id="practice-email" name="email" type="email"
               aria-describedby="email-help" required>
        <p id="email-help">Use name@example.com instead of a real address.</p>
        <button type="submit">Inspect entered values</button>
      </form>
    </section>
  </main>
</body>
</html>

最初のTabでスキップリンクにフォーカスし、Enterで主要な内容へ移動します。mainのtabindex="-1"は通常のTab移動先を増やさず、移動先としてフォーカスを受けられるようにします。その後のTabの順序も確認してください。

メールを空、abc、正しいテスト形式の順に入力して比較し、入力中もラベルと説明が残るかを見ます。390ピクセル程度の幅とズームでも試します。画像を一時的に別名にして代替情報を確認したら、元の名前に戻します。W3C WAIのページ構造にも確認観点があります。

検査で分かる範囲を区別する

自動ツールは構文上の問題の一部を見つけられますが、リンク文が分かりやすいか、画像の説明が文脈に合うかを常に判断できるわけではありません。キーボード、拡大、必要に応じたスクリーンリーダーの確認と組み合わせます。

この実習に通ったことだけで、すべてのアクセシビリティ要件を満たすとは言えません。重要な利用経路を優先して確認し、HTML、CSS、独自スクリプトで追加した状態やフォーカスを分けて調べます。MDNのHTMLとアクセシビリティで標準要素のパターンを確認できます。

같은 카테고리의 다른 글
HTML講座 / HTMLのエラーを探して文書を検査する

HTML講座 / HTMLのエラーを探して文書を検査する

Nu HTML Checkerの使い方と、重複IDを含む失敗例の修正を学びます。エラー位置の読み方、保存したファイルとサーバーの出力、構文と実際の操作の違いも解説します。

HTML講座 / placeholderと入力中も残る案内文を付ける

HTML講座 / placeholderと入力中も残る案内文を付ける

label、placeholder、valueの違いを学びます。inputとtextareaの例、aria-describedbyによる説明の関連付け、フォームデータで送られる値の確認方法も紹介します。

HTML講座 / 要素・タグ・属性とHTMLの基本文法

HTML講座 / 要素・タグ・属性とHTMLの基本文法

開始タグと終了タグ、空要素、属性、入れ子、コメントの書き方を学びます。真偽属性や特殊文字の注意点と、ブラウザー表示だけでは判断できない文法エラーも説明します。

HTML講座 / fieldset・legend・autocompleteでフォームを説明する

HTML講座 / fieldset・legend・autocompleteでフォームを説明する

関連する入力をfieldsetでまとめ、legendで質問を示す方法を学びます。ラジオグループを独立させるnameと、自動入力の目的を示すautocompleteの違いも解説します。

HTML講座 / divとspanはいつ使うのか

HTML講座 / divとspanはいつ使うのか

divとspanの内容モデルと使い分けを学びます。CSSのdisplayを変えてもHTMLの親子関係の規則は変わらないことや、意味のある要素を優先する基準も説明します。

HTML講座 / ol・ul・dlと入れ子のリスト

HTML講座 / ol・ul・dlと入れ子のリスト

順序付きリスト、箇条書き、用語と説明のリストを使い分けます。番号の開始位置や逆順表示、リスト項目の中にサブリストを置く正しい構造も学びます。

HTML講座 / テキストの意味を表すem・strong・引用・コード

HTML講座 / テキストの意味を表すem・strong・引用・コード

emとstrong、qとblockquote、abbr、code、kbdの違いを学びます。太字や斜体という見た目ではなく、文章中の役割に合わせて要素を選ぶ方法を説明します。

HTML講座 / 複数ページで小さなWebサイトを作る

HTML講座 / 複数ページで小さなWebサイトを作る

ホーム・紹介・問い合わせ練習の三ページを作り、共通メニューと現在位置を設定します。フォームは送信値の確認用とし、相対リンク、入力制約、キーボード、文法を点検します。

HTML講座 / 見出しと段落を正しく使う

HTML講座 / 見出しと段落を正しく使う

h1〜h6で見出しの階層を表し、pで段落、brで段落内の改行を作る方法を学びます。文字サイズと文書構造を区別し、見出しの飛び級を修正する練習も行います。

HTML講座 / リンクの作成、相対パスとページ内移動

HTML講座 / リンクの作成、相対パスとページ内移動

aとhrefによるリンク、絶対URLと相対URL、ページ内の移動を学びます。新しいタブ、メール、ダウンロードの条件と、三つのファイルでパスを確認する実習も紹介します。