メインコンテンツへスキップ

wafoo-css リファレンス

ホーム | README | GitHub

目次

よく使うコンポーネント

ボタン

クラス名 用途 使用例
wf-btn ベースボタン <button class="wf-btn">ボタン</button>
wf-btn-primary プライマリーボタン <button class="wf-btn wf-btn-primary">実行</button>
wf-btn-outline アウトラインボタン <button class="wf-btn wf-btn-outline">詳細</button>
wf-btn-danger 危険な操作 <button class="wf-btn wf-btn-danger">削除</button>
wf-btn-sm 小サイズ <button class="wf-btn wf-btn-sm">小</button>
wf-btn-lg 大サイズ <button class="wf-btn wf-btn-lg">大</button>
is-loading 読み込み中状態 <button class="wf-btn is-loading">処理中...</button>

カード

クラス名 用途 使用例
wf-card ベースカード <div class="wf-card">コンテンツ</div>
wf-card-washi 和紙風カード <div class="wf-card wf-card-washi">和風</div>

フォーム

クラス名 用途 使用例
wf-input テキスト入力 <input type="text" class="wf-input">
wf-textarea テキストエリア <textarea class="wf-textarea"></textarea>
wf-select セレクトボックス <select class="wf-select"><option>選択</option></select>
wf-checkbox チェックボックス <input type="checkbox" class="wf-checkbox">
wf-radio ラジオボタン <input type="radio" class="wf-radio">
wf-label ラベル <label class="wf-label">名前</label>
is-invalid エラー状態 <input class="wf-input is-invalid">

アラート・トースト

クラス名 用途 使用例
wf-alert アラートボックス <div class="wf-alert">お知らせ</div>
wf-alert-success 成功メッセージ <div class="wf-alert wf-alert-success">成功</div>
wf-alert-warning 警告メッセージ <div class="wf-alert wf-alert-warning">警告</div>
wf-alert-danger エラーメッセージ <div class="wf-alert wf-alert-danger">エラー</div>
wf-toast トースト通知 <div class="wf-toast">通知</div>
wf-toast--success 成功トースト <div class="wf-toast wf-toast--success">保存しました</div>
wf-toast--warning 警告トースト <div class="wf-toast wf-toast--warning">注意</div>
wf-toast--danger エラートースト <div class="wf-toast wf-toast--danger">失敗</div>

アラート詳細サンプル

重要な情報や状態を表示するメッセージコンポーネントです。

お知らせ
これは標準のアラートメッセージです。
成功
操作が正常に完了しました。
警告
注意が必要な操作です。
エラー
エラーが発生しました。もう一度お試しください。
<div class="wf-alert wf-alert-success">
  <strong>成功</strong><br>
  操作が正常に完了しました。
</div>

トースト詳細サンプル

一時的な通知を表示するコンポーネントです。画面隅に表示され、自動的に消滅させることができます。

お知らせ
新しいメッセージが届きました
保存完了
データが正常に保存されました
注意
一部の項目が未入力です
エラー
接続に失敗しました
<div class="wf-toast wf-toast--success">
  <div class="wf-toast__content">
    <div class="wf-toast__title">保存完了</div>
    データが正常に保存されました
  </div>
  <button class="wf-toast__close">×</button>
</div>

ヘッダー

クラス名 用途 使用例
wf-header デフォルトヘッダー(暖簾風) <header class="wf-header"><h1>タイトル</h1></header>
wf-header--no-stripe ストライプなしヘッダー <header class="wf-header wf-header--no-stripe">...</header>
wf-header-noren 暖簾風ヘッダー(エイリアス) <header class="wf-header-noren">...</header>

ヘッダー詳細

.wf-headerは墨色グラデーション背景とテーマカラーストライプ装飾を持つ暖簾(のれん)風デザインがデフォルトです。 日本の伝統的な店舗の暖簾をモチーフにしており、和風の雰囲気を演出します。

特徴:
  • 墨色(--wf-sumi)のグラデーション背景
  • 下部にテーマカラーのストライプ装飾(::after疑似要素)
  • テーマ変更に自動対応(var(--wf-color-accent)使用)
  • 中央揃えテキスト、2remの上下パディング
<!-- デフォルト(暖簾風) -->
<header class="wf-header">
  <h1>wafoo-css</h1>
  <p>和風CSSフレームワーク</p>
</header>

<!-- ストライプなし -->
<header class="wf-header wf-header--no-stripe">
  <h1>シンプルヘッダー</h1>
</header>

<!-- エイリアス(後方互換) -->
<header class="wf-header-noren">
  <h1>暖簾ヘッダー</h1>
</header>

注: .wf-header-noren.wf-headerのエイリアスで、後方互換性のために維持されています。 新規プロジェクトでは.wf-headerの使用を推奨します。

ナビゲーション

クラス名 用途 使用例
wf-navbar ナビゲーションバー <nav class="wf-navbar">...</nav>
wf-navbar-brand ブランドロゴ/タイトル <a class="wf-navbar-brand">wafoo</a>
wf-navbar-nav ナビゲーションリスト <ul class="wf-navbar-nav">...</ul>
wf-nav-item ナビゲーション項目 <li class="wf-nav-item">...</li>
wf-nav-link ナビゲーションリンク <a class="wf-nav-link">リンク</a>
wf-hamburger ハンバーガーメニュー <button class="wf-hamburger">...</button>
wf-hamburger__line ハンバーガーの線 <span class="wf-hamburger__line"></span>
wf-navbar-primary プライマリバリアント(テーマカラー) <nav class="wf-navbar wf-navbar-primary">...</nav>
is-active アクティブ状態 <a class="wf-nav-link is-active">現在地</a>

ナビバーバリアント

.wf-navbar-primaryバリアントを追加すると、テーマのプライマリカラー(--wf-primary-bg)を背景色として使用します。 テーマクラス(theme-sakuratheme-koubaiなど)と組み合わせることで、自動的にテーマカラーに対応したナビバーを作成できます。

<!-- デフォルト(白背景) -->
<nav class="wf-navbar">
  <a class="wf-navbar-brand" href="#">ブランド</a>
  <ul class="wf-navbar-nav">
    <li class="wf-nav-item"><a class="wf-nav-link is-active">ホーム</a></li>
  </ul>
</nav>

<!-- プライマリバリアント(テーマカラー背景) -->
<nav class="wf-navbar wf-navbar-primary">
  <a class="wf-navbar-brand" href="#">ブランド</a>
  <ul class="wf-navbar-nav">
    <li class="wf-nav-item"><a class="wf-nav-link is-active">ホーム</a></li>
  </ul>
</nav>

モバイル対応

ナビバーはモバイルファースト設計により、デフォルトでモバイル端末に対応しています(768px以下で自動調整):

ハンバーガーメニュー詳細サンプル

モバイル対応のナビゲーションメニューです。ハンバーガーアイコンはモバイル(768px以下)で自動表示されます。

<nav class="wf-navbar">
  <a class="wf-navbar-brand" href="#">ブランド</a>

  <button class="wf-hamburger" aria-label="メニュー" aria-expanded="false" aria-controls="main-nav">
    <span class="wf-hamburger__line"></span>
    <span class="wf-hamburger__line"></span>
    <span class="wf-hamburger__line"></span>
  </button>

  <ul id="main-nav" class="wf-navbar-nav">
    <li class="wf-nav-item"><a class="wf-nav-link is-active">ホーム</a></li>
    <li class="wf-nav-item"><a class="wf-nav-link">ドキュメント</a></li>
    <li class="wf-nav-item"><a class="wf-nav-link">お問い合わせ</a></li>
  </ul>
</nav>

<script>
// JavaScript で開閉を制御
const hamburger = document.querySelector('.wf-hamburger');
const navMenu = document.querySelector('.wf-navbar-nav');

hamburger.addEventListener('click', () => {
  hamburger.classList.toggle('is-active');
  navMenu.classList.toggle('is-open');
  const isOpen = navMenu.classList.contains('is-open');
  hamburger.setAttribute('aria-expanded', isOpen);
});
</script>

モーダル

クラス名 用途 使用例
wf-modal-overlay モーダルオーバーレイ <div class="wf-modal-overlay">...</div>
wf-modal モーダル本体 <div class="wf-modal">...</div>
wf-modal-sm 小サイズモーダル <div class="wf-modal wf-modal-sm">...</div>
wf-modal-lg 大サイズモーダル <div class="wf-modal wf-modal-lg">...</div>
wf-modal__header モーダルヘッダー <div class="wf-modal__header">...</div>
wf-modal__title モーダルタイトル <h2 class="wf-modal__title">タイトル</h2>
wf-modal__body モーダル本文 <div class="wf-modal__body">...</div>
wf-modal__footer モーダルフッター <div class="wf-modal__footer">...</div>
wf-modal__close 閉じるボタン <button class="wf-modal__close">×</button>
is-open 開いた状態 <div class="wf-modal-overlay is-open">...</div>

動作デモ

以下のボタンをクリックすると、デモ用のモーダルが開きます(テスト用)。

テーブル

クラス名 用途 使用例
wf-table ベーステーブル <table class="wf-table">...</table>
wf-table-striped ストライプテーブル <table class="wf-table wf-table-striped">...</table>
wf-table-bordered ボーダー付き <table class="wf-table wf-table-bordered">...</table>
wf-table-hover ホバー効果 <table class="wf-table wf-table-hover">...</table>

CSS変数リファレンス

全87個のCSS変数の詳細なリファレンスは、専用ページをご覧ください。

CSS変数リファレンスを見る

視覚的なプレビュー付きで、カラー、スペーシング、タイポグラフィ、アニメーション、ブレークポイントなどを確認できます。

ユーティリティクラス

スペーシング

クラス名 用途
wf-m-{0,2,4,6,8,10,12} 全方向マージン 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-mt-{0,2,4,6,8,10,12} マージントップ 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-mr-{0,2,4,6,8,10,12} マージンライト 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-mb-{0,2,4,6,8,10,12} マージンボトム 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-ml-{0,2,4,6,8,10,12} マージンレフト 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-mx-{0,2,4,6,8,10,12} 左右マージン 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-my-{0,2,4,6,8,10,12} 上下マージン 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-p-{0,2,4,6,8,10,12} 全方向パディング 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-pt-{0,2,4,6,8,10,12} パディングトップ 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-pr-{0,2,4,6,8,10,12} パディングライト 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-pb-{0,2,4,6,8,10,12} パディングボトム 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-pl-{0,2,4,6,8,10,12} パディングレフト 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-px-{0,2,4,6,8,10,12} 左右パディング 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-py-{0,2,4,6,8,10,12} 上下パディング 0, 8px, 16px, 24px, 32px, 40px, 48px
wf-gap-{0,2,4,6,8,10,12} Flexbox/Grid gap 0, 8px, 16px, 24px, 32px, 40px, 48px

テキスト

クラス名 用途
wf-text-xs 極小テキスト
wf-text-sm 小さいテキスト
wf-text-md 中サイズテキスト
wf-text-lg 大きいテキスト
wf-text-xl 特大テキスト
wf-text-muted 薄いテキスト色
wf-text-left 左揃え
wf-text-center 中央揃え
wf-text-right 右揃え
wf-text-justify 両端揃え
wf-font-bold 太字(font-weight: 700)

表示

クラス名 用途
wf-hidden 非表示
wf-block ブロック表示
wf-inline-block インラインブロック
wf-flex フレックス表示
wf-grid グリッド表示

アクセシビリティ

クラス名 用途
wf-sr-only スクリーンリーダー専用(視覚的に非表示)

Gridレイアウト

クラス名 用途
wf-grid-cols-1 1列グリッド
wf-grid-cols-2 2列グリッド
wf-grid-cols-3 3列グリッド
wf-grid-cols-4 4列グリッド
wf-grid-cols-6 6列グリッド
wf-grid-cols-12 12列グリッド

全コンポーネント一覧

レイアウト

  1. コンテナ ( .wf-container ) - コンテンツ幅制限
  2. グリッド ( .wf-grid ) - CSS Grid レイアウト

ナビゲーション

  1. ナビバー ( .wf-navbar ) - ナビゲーションバー
  2. ハンバーガーメニュー ( .wf-hamburger ) - モバイルメニュー
  3. ヘッダー ( .wf-header ) - 暖簾風デザインのヘッダー
  4. ブレッドクラム ( .wf-breadcrumb ) - パンくずリスト
  5. ステップ ( .wf-steps ) - 進捗ステップ
  6. タブ ( .wf-tablist , .wf-tab ) - タブナビゲーション

コンテンツ

  1. カード ( .wf-card ) - コンテンツカード
  2. 和紙カード ( .wf-card-washi ) - 和紙風カード
  3. アコーディオン ( .wf-accordion ) - 折りたたみコンテンツ
  4. 判子(スタンプ) ( .wf-stamp ) - 和風スタンプ

フォーム

  1. 入力フィールド ( .wf-input ) - テキスト入力
  2. テキストエリア ( .wf-textarea ) - 複数行入力
  3. セレクト ( .wf-select ) - ドロップダウン選択
  4. チェックボックス ( .wf-checkbox ) - チェックボックス
  5. ラジオボタン ( .wf-radio ) - ラジオボタン
  6. スイッチ ( .wf-switch ) - トグルスイッチ
  7. ラベル ( .wf-label ) - フォームラベル

ボタン・インタラクション

  1. ボタン ( .wf-btn ) - ボタン各種
  2. バッジ ( .wf-badge ) - バッジ・ラベル

フィードバック

  1. アラート ( .wf-alert ) - アラートメッセージ
  2. トースト ( .wf-toast ) - トースト通知
  3. モーダル ( .wf-modal ) - モーダルダイアログ
  4. オフキャンバス ( .wf-offcanvas ) - サイドパネル
  5. ツールチップ ( .wf-tooltip ) - ツールチップ
  6. ポップオーバー ( .wf-popover ) - ポップオーバー

データ表示

  1. テーブル ( .wf-table ) - データテーブル
  2. リストグループ ( .wf-list-group , .wf-list-item ) - リスト表示
  3. スケジュール ( .wf-schedule ) - スケジュール表示
  4. カレンダー ( .wf-calendar ) - カレンダー表示

その他

  1. ドロップダウン ( .wf-dropdown ) - ドロップダウンメニュー
  2. ディバイダー ( .wf-divider ) - 区切り線
  3. スピナー ( .wf-spinner ) - ローディングスピナー

追加コンポーネント詳細

コードブロック

クラス名 用途
wf-code インラインコード
wf-code-block コードブロック(複数行)
wf-kbd キーボードキー表示

アバター

クラス名 用途
wf-avatar アバター(32px)
wf-avatar-sm 小サイズ(24px)
wf-avatar-lg 大サイズ(48px)
wf-avatar-square 四角形
wf-avatar-status ステータスドット付き

プログレスバー

クラス名 用途
wf-progress プログレスバー(12px)
wf-progress-sm 小サイズ(8px)
wf-progress-lg 大サイズ(16px)
wf-progress-success 成功色(緑)
wf-progress-warning 警告色(黄)
wf-progress-danger エラー色(赤)

ページネーション

クラス名 用途
wf-pagination ページネーションコンテナ
wf-page-link ページリンク
.is-active アクティブページ
.is-disabled 無効状態

ドロップダウン

クラス名 用途
wf-dropdown ドロップダウンコンテナ
wf-dropdown__toggle トグルボタン
wf-dropdown__menu ドロップダウンメニュー
wf-dropdown__item メニューアイテム
.is-open 開いた状態

オフキャンバス

クラス名 用途
wf-offcanvas-overlay 背景オーバーレイ
wf-offcanvas オフキャンバスパネル
wf-offcanvas-start 左から表示
wf-offcanvas-end 右から表示
wf-offcanvas-top 上から表示
wf-offcanvas-bottom 下から表示
.is-open 開いた状態

バッジ

クラス名 用途
wf-badge バッジ(標準)
wf-badge-success 成功バッジ(緑)
wf-badge-warning 警告バッジ(黄)
wf-badge-danger エラーバッジ(赤)

評価

星評価コンポーネント。整数評価と0.5刻みの半星評価に対応。

クラス名 説明
wf-rating 評価コンテナ(ベース)
wf-rating__star 個別の星
wf-rating__star.is-filled 塗りつぶし星
wf-rating__star.is-half 半星表示
wf-rating__value 評価値テキスト
wf-rating-sm 小サイズ(14px)
wf-rating-lg 大サイズ(20px)
wf-rating.is-interactive インタラクティブ版(クリック可能)
wf-rating.is-disabled 無効状態

基本的な使用例

<!-- 4つ星評価 -->
<div class="wf-rating">
  <span class="wf-rating__star is-filled" aria-hidden="true">◆</span>
  <span class="wf-rating__star is-filled" aria-hidden="true">◆</span>
  <span class="wf-rating__star is-filled" aria-hidden="true">◆</span>
  <span class="wf-rating__star is-filled" aria-hidden="true">◆</span>
  <span class="wf-rating__star" aria-hidden="true">◆</span>
  <span class="wf-rating__value" aria-label="評価: 5つ星中4">4.0</span>
</div>

<!-- 半星評価 -->
<div class="wf-rating">
  <span class="wf-rating__star is-filled" aria-hidden="true">◆</span>
  <span class="wf-rating__star is-filled" aria-hidden="true">◆</span>
  <span class="wf-rating__star is-filled" aria-hidden="true">◆</span>
  <span class="wf-rating__star is-half" aria-hidden="true">◆</span>
  <span class="wf-rating__star" aria-hidden="true">◆</span>
  <span class="wf-rating__value">3.5</span>
</div>

<!-- サイズバリエーション -->
<div class="wf-rating wf-rating-sm">...</div>  <!-- 小 -->
<div class="wf-rating">...</div>           <!-- 標準 -->
<div class="wf-rating wf-rating-lg">...</div>  <!-- 大 -->

インタラクティブ評価(JavaScript必要)

整数評価(1-5)の実装例:

<div class="wf-rating is-interactive" role="radiogroup" aria-label="評価を選択">
  <input type="radio" name="rating" value="1" class="wf-rating__input">
  <span class="wf-rating__star" role="radio" aria-checked="false"
        aria-label="1つ星" tabindex="0" data-value="1">◆</span>

  <input type="radio" name="rating" value="2" class="wf-rating__input">
  <span class="wf-rating__star" role="radio" aria-checked="false"
        aria-label="2つ星" tabindex="-1" data-value="2">◆</span>
  <!-- ...5つ星まで繰り返し... -->

  <span class="wf-rating__value">未評価</span>
</div>

半星評価(0.5-5.0)の実装例:

<div class="wf-rating is-interactive" id="half-rating" role="radiogroup">
  <input type="radio" name="rating-half" value="0.5" class="wf-rating__input">
  <input type="radio" name="rating-half" value="1" class="wf-rating__input">
  <span class="wf-rating__star" role="radio" aria-label="1つ星"
        tabindex="0" data-index="1">◆</span>

  <input type="radio" name="rating-half" value="1.5" class="wf-rating__input">
  <input type="radio" name="rating-half" value="2" class="wf-rating__input">
  <span class="wf-rating__star" role="radio" aria-label="2つ星"
        tabindex="-1" data-index="2">◆</span>
  <!-- ...5つ星まで繰り返し... -->

  <span class="wf-rating__value">未評価</span>
</div>

<script>
// 星の左半分クリック = 0.5、右半分クリック = 1.0
document.querySelectorAll('#half-rating .wf-rating__star').forEach(star => {
  star.addEventListener('click', function(e) {
    const rect = this.getBoundingClientRect();
    const clickX = e.clientX - rect.left;
    const starIndex = parseInt(this.dataset.index);
    const isLeftHalf = clickX < rect.width / 2;
    const value = isLeftHalf ? starIndex - 0.5 : starIndex;
    // 評価値を更新する処理...
  });
});
</script>

詳細な実装例は examples/rating.html を参照してください。

テーマ

wafoo-cssには10種類の和風カラーテーマが用意されています。

クラス名 テーマ名 由来
theme-sakura 春の桜色
theme-koubai 紅梅 紅梅の花色
theme-moe 萌黄 春の新芽色
theme-kiku 菊の花色
theme-koori 氷の透明感
theme-yanagi 柳の葉色
theme-momiji 紅葉 秋の紅葉色
theme-fuji 藤の花色
theme-uguisu 鶯の羽色
theme-yuki 雪の白さ

使用方法:

<body class="theme-sakura">
  <!-- コンテンツ -->
</body>

アクセシビリティ&JavaScript初期化

自動初期化(推奨)

wafoo.jsを読み込むと、 data-wf-* 属性を持つ要素が自動的に初期化されます:

コンポーネント データ属性 必要なARIA属性
ツールチップ data-wf-tooltip="tip-id" 自動設定
ポップオーバー data-wf-popover="popover-id" role="dialog"aria-labelledby
モーダル data-wf-modal="modal-id" role="dialog"aria-modal="true"
オフキャンバス data-wf-offcanvas="oc-id" role="dialog"
タブ data-wf-tabs role="tablist"role="tab"role="tabpanel"
カレンダー data-wf-calendar role="grid"aria-label
スケジュール data-wf-schedule role="application"aria-label

使用例

ツールチップ

<button data-wf-tooltip="tip-1">ホバーしてください</button>
<div id="tip-1" class="wf-tooltip" hidden>ツールチップの内容</div>

モーダル

<button data-wf-modal="modal-1">開く</button>
<div id="modal-1" class="wf-modal-overlay" hidden>
  <div class="wf-modal" role="dialog" aria-modal="true" aria-labelledby="modal-title">
    <h2 id="modal-title">タイトル</h2>
    <p>内容</p>
    <button class="wf-modal__close">閉じる</button>
  </div>
</div>

タブ(ARIAパターン)

<div class="wf-tablist" role="tablist" data-wf-tabs>
  <button class="wf-tab" role="tab" aria-selected="true" aria-controls="panel-1">タブ1</button>
  <button class="wf-tab" role="tab" aria-selected="false" aria-controls="panel-2">タブ2</button>
</div>
<div id="panel-1" class="wf-tabpanel" role="tabpanel">内容1</div>
<div id="panel-2" class="wf-tabpanel" role="tabpanel" hidden>内容2</div>

動作デモ

以下のタブをクリックして切り替えてください(テスト用)。

タブ1の内容です。これはテスト用のタブパネルです。

手動初期化(高度な使用)

動的に生成された要素には、WFUIオブジェクトを直接使用できます:

// ツールチップ
WFUI.tooltip(triggerElement, tooltipElement);

// モーダル
WFUI.modal(triggerButton, overlayElement);

// タブ
WFUI.tabs(containerElement);

// カレンダー
WFUI.calendar(containerElement, { selectedDate: '2025-11-10' });

// スケジュール
WFUI.schedule(containerElement, { mode: 'daily', timeInterval: 60 });

使用上の注意

スケジュールコンポーネント

日付選択後に表示される要素(時間レンジ選択、時間刻み選択など)は、初期状態で display: none または hidden 属性を設定してください。日付が選択されるまでこれらの要素を非表示にすることで、より良いユーザー体験を提供できます。

<!-- 日付選択後に表示される要素 -->
<div id="schedule-time-interval-wrapper" style="display: none;">
  <!-- 時間レンジや時間刻みの選択UI -->
</div>

<script>
// 日付選択時に表示制御
function updateScheduleVisibility() {
  const hasDate = dateInput && dateInput.value;
  const wrapper = document.getElementById('schedule-time-interval-wrapper');
  if (wrapper) {
    wrapper.style.display = hasDate ? 'block' : 'none';
  }
}
</script>

デモページでのフォーム使用

デモページやサンプルでフォームコンポーネントを使用する際は、ページ遷移を防ぐため onsubmit イベントで preventDefault() を呼び出してください。実際のアプリケーションでは、適切なフォーム送信処理を実装してください。

<form onsubmit="event.preventDefault(); return false;">
  <!-- フォーム要素 -->
  <button type="submit" class="wf-btn wf-btn-primary">送信</button>
</form>

キーボード対応

  • Esc : モーダル/ポップオーバー/ツールチップを閉じる
  • Tab : フォーカストラップ(モーダル/オフキャンバス内)
  • 矢印キー : タブ、ドロップダウン、カレンダーのナビゲーション
  • Enter/Space : ボタンの実行、選択の確定
  • Home/End : タブの最初/最後へ移動

スクリーンリーダー対応

  • ソート可能テーブル: aria-live リージョンで並び替えを通知
  • タブ: aria-selected で現在のタブを示す
  • モーダル:背景に aria-hidden="true" を自動設定
  • フォーカス管理:開閉時に前のフォーカス位置を保存・復元