primitives · @awesome-ds/react
IconButton
必ずアクセシブルな名前を持つアイコン専用ボタン。
状態マトリクス
通常
無効
読み込み中
構造
- button要素
- 装飾アイコン
- アクセシブルな名前
キーボード操作契約
EnterまたはSpaceで実行し、フォーカスリングを常に表示します。
スクリーンリーダー契約
labelを操作名として公開し、アイコン自体は装飾として扱います。
コンテンツ規則
- 一つの目的に対応する見慣れたアイコンを使います。
- 形ではなく実行される操作をlabelにします。
公開API
| プロパティ | 型 | 必須 | 説明 |
|---|---|---|---|
label | string | 必須 | 利用者と支援技術へ示す名前。 |
loading | boolean | — | 重複操作を防ぐ処理中状態。 |
children | ReactNode | 必須 | 表示または読み上げ対象となる内容。 |
…native | ButtonHTMLAttributes<HTMLButtonElement> | — | 対応するネイティブ要素の標準属性。 |
環境適応契約
- RTL
- 論理方向の余白と配置を使い、DOMとフォーカスの順序を保ちます。方向を持つアイコンだけを反転します。
- ハイコントラスト
- 背景色だけに頼らず、境界・フォーカス・状態をシステムカラーでも判別可能にします。
- 動きを減らす設定
- 状態とフォーカスの連続性を残し、移動や装飾的な遷移を取り除きます。
検証ID
ライブ表示
ライブ表示
コピー可能な実装例
import { IconButton } from "@awesome-ds/react";
<IconButton label="Close">×</IconButton>