Accordion Item
アコーディオン(jui-accordion)内の個別の折りたたみ項目を定義するコンポーネント。jui-accordion の子要素として使用します。
Basic
jui-accordion-item は単独でも動作しますが、基本的には親である jui-accordion の中に入れ子にして使用します。
アコーディオン項目の内容テキストです。
関連コンポーネント
- Accordion — 親のアコーディオンコンテナ
ブラウザ対応
このコンポーネントが使用しているブラウザ機能と対応状況です。
| 機能 | 用途 | Chrome | Firefox | Safari | ステータス |
|---|---|---|---|---|---|
<details> / <summary> | 開閉動作 | 全ver | 全ver | 全ver | Baseline |
::details-content | 開閉アニメーション | 131+ | 143+ | 18.4+ | Baseline 2025 |
interpolate-size: allow-keywords | 高さ auto トランジション | 129+ | ❌ | 17.2+ | Limited |
💡
::details-contentとinterpolate-sizeは開閉時のスムーズなアニメーションに使用しています。未対応ブラウザでもアコーディオンの開閉動作自体は正常に機能します。
Baseline 情報
| 機能 | Baseline 達成 | Widely Available 予定 |
|---|---|---|
<details> / <summary> | 太古の昔から対応 | WA 済み ✅ |
::details-content | 2025年初頭 | 2027年後半 |
interpolate-size | 部分的対応(Chrome 129+, Safari 17.2+、Firefox 未対応) | — |
アクセシビリティ
- WAI-ARIA:
- 項目はネイティブの
<details>/<summary>要素で構成されており、ヘッダー(<summary>)の開閉状態(aria-expanded相当)やパネルとの関連付けはブラウザが標準で提供します。コンポーネント側で追加のaria-*属性を付与する必要はありません。 openProp の値はネイティブ<details>のopen属性に反映され、開閉状態が DOM 上で正しく表現されます。disabledがtrueの場合、<summary>にaria-disabled="true"とtabindex="-1"が付与され、無効状態であることが支援技術に伝わるとともに、キーボードフォーカスの順序から除外されます(クリックによるトグルも抑制されます)。- 開閉インジケーターのシェブロン SVG には
aria-hidden="true"が指定されており、装飾要素として支援技術から無視されます。
- 項目はネイティブの
- キーボードナビゲーション:
Tabキーでヘッダー(<summary>)へフォーカスを移動でき、EnterまたはSpaceキーで開閉を切り替えられます。これらはネイティブの<details>/<summary>の挙動に委ねています。disabled状態ではtabindex="-1"によりキーボードフォーカスの対象外となります。
プロパティ
コンポーネントが受け付ける属性(Props)の一覧と詳細仕様です。
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
disabled | disabled | 無効状態 | boolean | false |
keyId (required) | key-id | 項目キー(複数展開制限などの状態識別に使用) | string | undefined |
open | open | 展開状態 | boolean | false |
titleText (required) | title-text | 見出し | string | undefined |
variant | variant | バリアント | "bordered" | "default" | "splitted" | 'default' |
イベント
コンポーネントから発火するカスタムイベントの一覧です。
| Event | Description | Type |
|---|---|---|
juiItemToggle | 展開/折りたたみ要求イベント(親にトグルを通知) | CustomEvent<{ key: string; open: boolean; }> |
スロット
コンポーネント内に子要素を挿入するためのスロット一覧です。
| Slot | Description |
|---|---|
| コンテンツ本文(展開パネル内に表示) |
Built with StencilJS