フォーカスでWebサイトの使いやすさを向上!HTMLとアクセシビリティの重要性

2024-05-15

HTMLでフォーカスを受けられる要素

デフォルトでフォーカスを受けられる要素

  • フォーム要素:
    • <input>: テキスト入力、チェックボックス、ラジオボタン、パスワード入力など
    • <select>: ドロップダウンリスト
    • <textarea>: テキストエリア
  • ボタン: <button>
  • リンク: <a> (ただし、href 属性が空または javascript: スキームの場合は除く)
  • その他:
    • <audio>: 音声再生コントロール

フォーカスを受けられるように設定できる要素

一部のHTML要素は、属性を追加することでフォーカスを受けられるように設定できます。

  • <div>: tabindex 属性を設定

フォーカスを受けられない要素

以下のような要素は、デフォルトではフォーカスを受けられません。

  • <p>: 段落
  • <h1> ... <h6>: 見出し
  • <img>: 画像
  • <hr>: 仕切り線

フォーカスは、アクセシビリティを考える上で重要な要素です。キーボードのみで操作できるWebサイトを作るためには、適切な要素にフォーカスを設定することが重要です。

以下の例は、<div> 要素に tabindex 属性を設定してフォーカスを受けられるようにする方法を示しています。

<div tabindex="0">この要素はフォーカスを受けられます。</div>

このコードを実行すると、ユーザーはTabキーを押してこの <div> 要素にフォーカスを移動することができます。フォーカスされると、要素の背景色が青くなります。




HTML フォーカス サンプルコード

フォーム要素にフォーカスを当てる

この例では、<input> 要素にフォーカスを当てる方法を示します。ページがロードされると、カーソルが自動的にこの入力フィールドに移動します。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>フォーカスサンプル</title>
</head>
<body>
  <label for="name">名前:</label>
  <input type="text" id="name" name="name" autofocus>
</body>
</html>

JavaScriptを使用してフォーカスを設定する

この例では、JavaScriptを使用してボタンをクリックしたときに別の入力フィールドにフォーカスを設定する方法を示します。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>フォーカスサンプル</title>
</head>
<body>
  <label for="name">名前:</label>
  <input type="text" id="name" name="name">
  <br>
  <label for="email">メールアドレス:</label>
  <input type="text" id="email" name="email">
  <br>
  <button onclick="document.getElementById('email').focus()">メールアドレスにフォーカス</button>
</body>
</html>

tabindex 属性を使用してフォーカス可能にする

この例では、<div> 要素に tabindex 属性を追加してフォーカス可能にする方法を示します。ユーザーはTabキーを押してこの要素にフォーカスを移動することができます。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>フォーカスサンプル</title>
</head>
<body>
  <div tabindex="0">この要素はフォーカスを受けられます。</div>
</body>
</html>

フォーカス状態を取得する

この例では、JavaScriptを使用して要素がフォーカスされているかどうかを確認する方法を示します。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>フォーカスサンプル</title>
</head>
<body>
  <input type="text" id="myInput" onfocus="alert('フォーカスされました!')">
</body>
</html>

これらの例は、HTMLでフォーカスを操作する基本的な方法を示しています。フォーカスに関する詳細については、以下のリソースを参照してください。




HTMLでフォーカスを設定するその他の方法

autofocus 属性は、<input>, <textarea>, <button> 要素にのみ使用できます。この属性が設定された要素は、ページがロードされると自動的にフォーカスされます。

<input type="text" autofocus>
<textarea autofocus></textarea>
<button autofocus>送信</button>

tabindex 属性は、任意のHTML要素に使用できます。この属性の値は、要素のフォーカス順序を決定します。値が大きいほど、フォーカスされるのが遅くなります。0 を指定すると、キーボード操作でフォーカスできるようになりますが、自動フォーカスはされません。

<div tabindex="1">この要素は Tab キーでフォーカスできます。</div>
document.getElementById('myElement').focus();

CSSを使用して、フォーカスされた要素のスタイルを変更することができます。

:focus {
  outline: 2px solid blue;
}

アクセシビリティの考慮


html focus


Prism.js vs Highlight.js:JavaScriptにおける構文強調表示ライブラリの比較

JavaScriptを使って構文強調表示を行う方法はいくつかありますが、ここでは最も一般的な方法である「Prism. js」ライブラリを使った方法を紹介します。まず、以下のファイルをプロジェクトにダウンロードします。ダウンロードしたファイルをプロジェクトの適切な場所に配置します。...


jQueryでドロップダウンリストに関するトラブルシューティング

show() メソッドは、ドロップダウンリストを隠れている状態から表示状態に切り替えるために使用できます。以下のコードは、#my-dropdown というIDを持つドロップダウンリストを開く例です。上記以外にも、slideDown() メソッドや fadeIn() メソッドなどを使って、ドロップダウンリストを開くことができます。これらのメソッドは、ドロップダウンリストを開く際のアニメーション効果を設定することができます。...


jQueryで入力変更を検知してリアルタイム処理を実現!サンプルコード付き

changeイベント概要: フォーム要素の値が確定したときに発生するイベントです。利点: 入力完了後のみ処理を実行したい場合に適しています。欠点: キー入力を検知できないため、入力途中の処理には不向きです。keyupイベント利点: 入力途中の処理にも対応できます。...


【保存版】削除前に確認ダイアログを表示する方法3選!JavaScript & HTML & ライブラリ

必要なものHTMLファイルJavaScriptファイル手順HTMLで削除ボタンを作成する上記のコードは、deleteConfirm()というJavaScript関数が呼び出されるように、onclickイベントにdeleteConfirm()関数を割り当てた削除ボタンを作成します。...


【保存版】Electronでプリロードスクリプトを使いこなす!nodeIntegration設定不要でモジュールを安全に読み込む方法

Electron アプリケーション開発において、レンダラープロセスで require() 関数を使用しようとすると、ReferenceError: require is not defined エラーが発生することがあります。これは、Electron v12 以降でレンダラープロセスでデフォルトで Node...