Accordion Item

アコーディオン(jui-accordion)内の個別の折りたたみ項目を定義するコンポーネント。jui-accordion の子要素として使用します。

Basic

jui-accordion-item は単独でも動作しますが、基本的には親である jui-accordion の中に入れ子にして使用します。

アコーディオン項目の内容テキストです。

関連コンポーネント

  • Accordion — 親のアコーディオンコンテナ

ブラウザ対応

このコンポーネントが使用しているブラウザ機能と対応状況です。

機能用途ChromeFirefoxSafariステータス
<details> / <summary>開閉動作全ver全ver全verBaseline
::details-content開閉アニメーション131+143+18.4+Baseline 2025
interpolate-size: allow-keywords高さ auto トランジション129+17.2+Limited

💡 ::details-contentinterpolate-size は開閉時のスムーズなアニメーションに使用しています。未対応ブラウザでもアコーディオンの開閉動作自体は正常に機能します。

Baseline 情報

機能Baseline 達成Widely Available 予定
<details> / <summary>太古の昔から対応WA 済み ✅
::details-content2025年初頭2027年後半
interpolate-size部分的対応(Chrome 129+, Safari 17.2+、Firefox 未対応)

アクセシビリティ

  • WAI-ARIA:
    • 項目はネイティブの <details> / <summary> 要素で構成されており、ヘッダー(<summary>)の開閉状態(aria-expanded 相当)やパネルとの関連付けはブラウザが標準で提供します。コンポーネント側で追加の aria-* 属性を付与する必要はありません。
    • open Prop の値はネイティブ <details>open 属性に反映され、開閉状態が DOM 上で正しく表現されます。
    • disabledtrue の場合、<summary>aria-disabled="true"tabindex="-1" が付与され、無効状態であることが支援技術に伝わるとともに、キーボードフォーカスの順序から除外されます(クリックによるトグルも抑制されます)。
    • 開閉インジケーターのシェブロン SVG には aria-hidden="true" が指定されており、装飾要素として支援技術から無視されます。
  • キーボードナビゲーション:
    • Tab キーでヘッダー(<summary>)へフォーカスを移動でき、Enter または Space キーで開閉を切り替えられます。これらはネイティブの <details> / <summary> の挙動に委ねています。
    • disabled 状態では tabindex="-1" によりキーボードフォーカスの対象外となります。

プロパティ

コンポーネントが受け付ける属性(Props)の一覧と詳細仕様です。

PropertyAttributeDescriptionTypeDefault
disableddisabled無効状態booleanfalse
keyId (required)key-id項目キー(複数展開制限などの状態識別に使用)stringundefined
openopen展開状態booleanfalse
titleText (required)title-text見出しstringundefined
variantvariantバリアント"bordered" | "default" | "splitted"'default'

イベント

コンポーネントから発火するカスタムイベントの一覧です。

EventDescriptionType
juiItemToggle展開/折りたたみ要求イベント(親にトグルを通知)CustomEvent<{ key: string; open: boolean; }>

スロット

コンポーネント内に子要素を挿入するためのスロット一覧です。

SlotDescription
コンテンツ本文(展開パネル内に表示)

Built with StencilJS